Skip to content

Commit 0500719

Browse files
feat: Int.{even_sub_one,even_mul_pred_self} (#9859)
Also rename `Nat.even_mul_self_pred` for consistency with `Nat.even_mul_succ_self`.
1 parent 970a1ab commit 0500719

File tree

4 files changed

+14
-9
lines changed

4 files changed

+14
-9
lines changed

Mathlib/Algebra/GroupPower/NegOnePow.lean

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -88,11 +88,6 @@ lemma negOnePow_eq_iff (n₁ n₂ : ℤ) :
8888

8989
@[simp]
9090
lemma negOnePow_mul_self (n : ℤ) : (n * n).negOnePow = n.negOnePow := by
91-
suffices Even (n * (n - 1)) by
92-
simpa [mul_sub, mul_one, negOnePow_eq_iff] using this
93-
rw [even_mul]
94-
by_cases h : Even (n - 1)
95-
· exact Or.inr h
96-
· exact Or.inl (by simpa using Int.even_add_one.2 h)
91+
simpa [mul_sub, negOnePow_eq_iff] using n.even_mul_pred_self
9792

9893
end Int

Mathlib/Data/Int/Parity.lean

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,10 @@ theorem even_add_one : Even (n + 1) ↔ ¬Even n := by
135135
simp [even_add]
136136
#align int.even_add_one Int.even_add_one
137137

138+
@[parity_simps]
139+
theorem even_sub_one : Even (n - 1) ↔ ¬Even n := by
140+
simp [even_sub]
141+
138142
@[parity_simps]
139143
theorem even_mul : Even (m * n) ↔ Even m ∨ Even n := by
140144
cases' emod_two_eq_zero_or_one m with h₁ h₁ <;>
@@ -196,6 +200,9 @@ theorem even_mul_succ_self (n : ℤ) : Even (n * (n + 1)) := by
196200
simpa [even_mul, parity_simps] using n.even_or_odd
197201
#align int.even_mul_succ_self Int.even_mul_succ_self
198202

203+
theorem even_mul_pred_self (n : ℤ) : Even (n * (n - 1)) := by
204+
simpa [even_mul, parity_simps] using n.even_or_odd
205+
199206
@[simp, norm_cast]
200207
theorem even_coe_nat (n : ℕ) : Even (n : ℤ) ↔ Even n := by
201208
rw_mod_cast [even_iff, Nat.even_iff]

Mathlib/Data/Nat/Parity.lean

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -217,10 +217,13 @@ theorem even_mul_succ_self (n : ℕ) : Even (n * (n + 1)) := by
217217
exact em _
218218
#align nat.even_mul_succ_self Nat.even_mul_succ_self
219219

220-
theorem even_mul_self_pred : ∀ n : ℕ, Even (n * (n - 1))
220+
theorem even_mul_pred_self : ∀ n : ℕ, Even (n * (n - 1))
221221
| 0 => even_zero
222222
| (n + 1) => mul_comm (n + 1 - 1) (n + 1) ▸ even_mul_succ_self n
223-
#align nat.even_mul_self_pred Nat.even_mul_self_pred
223+
#align nat.even_mul_self_pred Nat.even_mul_pred_self
224+
225+
@[deprecated] -- 2024-01-20
226+
alias even_mul_self_pred := even_mul_pred_self
224227

225228
theorem two_mul_div_two_of_even : Even n → 2 * (n / 2) = n := fun h =>
226229
Nat.mul_div_cancel_left' (even_iff_two_dvd.mp h)

Mathlib/RingTheory/Discriminant.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ theorem discr_powerBasis_eq_prod'' [IsSeparable K L] (e : Fin pb.dim ≃ (L →
215215
have hn : n = pb.dim := by
216216
rw [← AlgHom.card K L E, ← Fintype.card_fin pb.dim]
217217
exact card_congr (Equiv.symm e)
218-
have h₂ : 2 ∣ pb.dim * (pb.dim - 1) := even_iff_two_dvd.1 (Nat.even_mul_self_pred _)
218+
have h₂ : 2 ∣ pb.dim * (pb.dim - 1) := pb.dim.even_mul_pred_self.two_dvd
219219
have hne : ((2 : ℕ) : ℚ) ≠ 0 := by simp
220220
have hle : 1 ≤ pb.dim := by
221221
rw [← hn, Nat.one_le_iff_ne_zero, ← zero_lt_iff, FiniteDimensional.finrank_pos_iff]

0 commit comments

Comments
 (0)