Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit 2648e68

Browse files
committed
chore(int/*): dedup lemma (#10583)
1 parent 0453320 commit 2648e68

File tree

3 files changed

+10
-14
lines changed

3 files changed

+10
-14
lines changed

src/data/int/basic.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -343,7 +343,7 @@ by { rw [sq, sq], exact nat_abs_lt_iff_mul_self_lt }
343343
lemma nat_abs_le_iff_sq_le {a b : ℤ} : a.nat_abs ≤ b.nat_abs ↔ a ^ 2 ≤ b ^ 2 :=
344344
by { rw [sq, sq], exact nat_abs_le_iff_mul_self_le }
345345

346-
@[simp] lemma nat_abs_dvd_iff_dvd (a b : ℤ) : a.nat_abs ∣ b.nat_abs ↔ a ∣ b :=
346+
@[simp] lemma nat_abs_dvd_iff_dvd {a b : ℤ} : a.nat_abs ∣ b.nat_abs ↔ a ∣ b :=
347347
begin
348348
refine ⟨_, λ ⟨k, hk⟩, ⟨k.nat_abs, hk.symm ▸ nat_abs_mul a k⟩⟩,
349349
rintro ⟨k, hk⟩,

src/data/int/gcd.lean

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -158,10 +158,6 @@ begin
158158
... = nat_abs a / nat_abs b : by rw int.div_mul_cancel H,
159159
end
160160

161-
theorem nat_abs_dvd_abs_iff {i j : ℤ} : i.nat_abs ∣ j.nat_abs ↔ i ∣ j :=
162-
⟨assume (H : i.nat_abs ∣ j.nat_abs), dvd_nat_abs.mp (nat_abs_dvd.mp (coe_nat_dvd.mpr H)),
163-
assume H : (i ∣ j), coe_nat_dvd.mp (dvd_nat_abs.mpr (nat_abs_dvd.mpr H))⟩
164-
165161
lemma succ_dvd_or_succ_dvd_of_succ_sum_dvd_mul {p : ℕ} (p_prime : nat.prime p) {m n : ℤ} {k l : ℕ}
166162
(hpm : ↑(p ^ k) ∣ m)
167163
(hpn : ↑(p ^ l) ∣ n) (hpmn : ↑(p ^ (k+l+1)) ∣ m*n) : ↑(p ^ (k+1)) ∣ m ∨ ↑(p ^ (l+1)) ∣ n :=
@@ -201,7 +197,7 @@ theorem gcd_dvd_right (i j : ℤ) : (gcd i j : ℤ) ∣ j :=
201197
dvd_nat_abs.mp $ coe_nat_dvd.mpr $ nat.gcd_dvd_right _ _
202198

203199
theorem dvd_gcd {i j k : ℤ} (h1 : k ∣ i) (h2 : k ∣ j) : k ∣ gcd i j :=
204-
nat_abs_dvd.1 $ coe_nat_dvd.2 $ nat.dvd_gcd (nat_abs_dvd_abs_iff.2 h1) (nat_abs_dvd_abs_iff.2 h2)
200+
nat_abs_dvd.1 $ coe_nat_dvd.2 $ nat.dvd_gcd (nat_abs_dvd_iff_dvd.2 h1) (nat_abs_dvd_iff_dvd.2 h2)
205201

206202
theorem gcd_mul_lcm (i j : ℤ) : gcd i j * lcm i j = nat_abs (i * j) :=
207203
by rw [int.gcd, int.lcm, nat.gcd_mul_lcm, nat_abs_mul]
@@ -246,7 +242,7 @@ end
246242
theorem gcd_div {i j k : ℤ} (H1 : k ∣ i) (H2 : k ∣ j) :
247243
gcd (i / k) (j / k) = gcd i j / nat_abs k :=
248244
by rw [gcd, nat_abs_div i k H1, nat_abs_div j k H2];
249-
exact nat.gcd_div (nat_abs_dvd_abs_iff.mpr H1) (nat_abs_dvd_abs_iff.mpr H2)
245+
exact nat.gcd_div (nat_abs_dvd_iff_dvd.mpr H1) (nat_abs_dvd_iff_dvd.mpr H2)
250246

251247
theorem gcd_div_gcd_div_gcd {i j : ℤ} (H : 0 < gcd i j) :
252248
gcd (i / gcd i j) (j / gcd i j) = 1 :=
@@ -275,7 +271,7 @@ gcd_dvd_gcd_of_dvd_right _ (dvd_mul_right _ _)
275271

276272
theorem gcd_eq_left {i j : ℤ} (H : i ∣ j) : gcd i j = nat_abs i :=
277273
nat.dvd_antisymm (by unfold gcd; exact nat.gcd_dvd_left _ _)
278-
(by unfold gcd; exact nat.dvd_gcd dvd_rfl (nat_abs_dvd_abs_iff.mpr H))
274+
(by unfold gcd; exact nat.dvd_gcd dvd_rfl (nat_abs_dvd_iff_dvd.mpr H))
279275

280276
theorem gcd_eq_right {i j : ℤ} (H : j ∣ i) : gcd i j = nat_abs j :=
281277
by rw [gcd_comm, gcd_eq_left H]
@@ -300,10 +296,10 @@ let ⟨m', n', h⟩ := exists_gcd_one H in ⟨_, m', n', H, h⟩
300296
theorem pow_dvd_pow_iff {m n : ℤ} {k : ℕ} (k0 : 0 < k) : m ^ k ∣ n ^ k ↔ m ∣ n :=
301297
begin
302298
refine ⟨λ h, _, λ h, pow_dvd_pow_of_dvd h _⟩,
303-
apply int.nat_abs_dvd_abs_iff.mp,
299+
apply int.nat_abs_dvd_iff_dvd.mp,
304300
apply (nat.pow_dvd_pow_iff k0).mp,
305301
rw [← int.nat_abs_pow, ← int.nat_abs_pow],
306-
exact int.nat_abs_dvd_abs_iff.mpr h
302+
exact int.nat_abs_dvd_iff_dvd.mpr h
307303
end
308304

309305
/-! ### lcm -/
@@ -340,7 +336,7 @@ begin
340336
rw int.lcm,
341337
intros hi hj,
342338
exact coe_nat_dvd_left.mpr
343-
(nat.lcm_dvd (nat_abs_dvd_abs_iff.mpr hi) (nat_abs_dvd_abs_iff.mpr hj))
339+
(nat.lcm_dvd (nat_abs_dvd_iff_dvd.mpr hi) (nat_abs_dvd_iff_dvd.mpr hj))
344340
end
345341

346342
end int

src/ring_theory/int/basic.lean

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -345,7 +345,7 @@ end
345345
namespace multiplicity
346346

347347
lemma finite_int_iff_nat_abs_finite {a b : ℤ} : finite a b ↔ finite a.nat_abs b.nat_abs :=
348-
by simp only [finite_def, ← int.nat_abs_dvd_abs_iff, int.nat_abs_pow]
348+
by simp only [finite_def, ← int.nat_abs_dvd_iff_dvd, int.nat_abs_pow]
349349

350350
lemma finite_int_iff {a b : ℤ} : finite a b ↔ (a.nat_abs ≠ 1 ∧ b ≠ 0) :=
351351
by rw [finite_int_iff_nat_abs_finite, finite_nat_iff, pos_iff_ne_zero, int.nat_abs_ne_zero]
@@ -378,8 +378,8 @@ lemma int.prime_iff_nat_abs_prime {k : ℤ} : prime k ↔ nat.prime k.nat_abs :=
378378

379379
theorem int.associated_iff_nat_abs {a b : ℤ} : associated a b ↔ a.nat_abs = b.nat_abs :=
380380
begin
381-
rw [←dvd_dvd_iff_associated, ←int.nat_abs_dvd_abs_iff, ←int.nat_abs_dvd_abs_iff,
382-
dvd_dvd_iff_associated],
381+
rw [←dvd_dvd_iff_associated, ←int.nat_abs_dvd_iff_dvd,
382+
←int.nat_abs_dvd_iff_dvd, dvd_dvd_iff_associated],
383383
exact associated_iff_eq,
384384
end
385385

0 commit comments

Comments
 (0)