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

Commit c0dbeca

Browse files
committed
chore(data/{int,nat}/modeq): Rationalise lemma names (#17902)
Quite a few `modeq` lemmas are still called `nat.modeq.modeq_something` or `int.modeq.modeq_something`. I'm deleting the duplicated `modeq`, so that lemmas (usually) become `nat.modeq.something` and `int.modeq.something`. Also add `nat.modeq.eq_of_lt_of_lt` as a corollary to `nat.modeq.eq_of_abs_lt`.
1 parent ed005a8 commit c0dbeca

File tree

3 files changed

+68
-65
lines changed

3 files changed

+68
-65
lines changed

src/data/int/modeq.lean

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -66,15 +66,14 @@ begin
6666
exact exists_congr (λ t, sub_eq_iff_eq_add'),
6767
end
6868

69-
theorem modeq.dvd : a ≡ b [ZMOD n] → n ∣ b - a := modeq_iff_dvd.1
70-
theorem modeq_of_dvd : n ∣ b - a → a ≡ b [ZMOD n] := modeq_iff_dvd.2
69+
alias modeq_iff_dvd ↔ modeq.dvd modeq_of_dvd
7170

7271
theorem mod_modeq (a n) : a % n ≡ a [ZMOD n] := mod_mod _ _
7372

7473
namespace modeq
7574

76-
protected theorem modeq_of_dvd (d : m ∣ n) (h : a ≡ b [ZMOD n]) : a ≡ b [ZMOD m] :=
77-
modeq_iff_dvd.2 $ d.trans h.dvd
75+
protected lemma of_dvd (d : m ∣ n) (h : a ≡ b [ZMOD n]) : a ≡ b [ZMOD m] :=
76+
modeq_of_dvd $ d.trans h.dvd
7877

7978
protected theorem mul_left' (hc : 0 ≤ c) (h : a ≡ b [ZMOD n]) : c * a ≡ c * b [ZMOD (c * n)] :=
8079
or.cases_on hc.lt_or_eq (λ hc,
@@ -124,9 +123,9 @@ h.sub modeq.rfl
124123

125124
protected theorem mul_left (c : ℤ) (h : a ≡ b [ZMOD n]) : c * a ≡ c * b [ZMOD n] :=
126125
or.cases_on (le_total 0 c)
127-
(λ hc, (h.mul_left' hc).modeq_of_dvd (dvd_mul_left _ _) )
126+
(λ hc, (h.mul_left' hc).of_dvd (dvd_mul_left _ _) )
128127
(λ hc, by rw [← neg_neg c, neg_mul, neg_mul _ b];
129-
exact ((h.mul_left' $ neg_nonneg.2 hc).modeq_of_dvd (dvd_mul_left _ _)).neg)
128+
exact ((h.mul_left' $ neg_nonneg.2 hc).of_dvd (dvd_mul_left _ _)).neg)
130129

131130
protected theorem mul_right (c : ℤ) (h : a ≡ b [ZMOD n]) : a * c ≡ b * c [ZMOD n] :=
132131
by { rw [mul_comm a, mul_comm b], exact h.mul_left c }
@@ -141,11 +140,11 @@ begin
141140
exact h.mul hd,
142141
end
143142

144-
theorem of_modeq_mul_left (m : ℤ) (h : a ≡ b [ZMOD m * n]) : a ≡ b [ZMOD n] :=
143+
theorem of_mul_left (m : ℤ) (h : a ≡ b [ZMOD m * n]) : a ≡ b [ZMOD n] :=
145144
by rw [modeq_iff_dvd] at *; exact (dvd_mul_left n m).trans h
146145

147-
theorem of_modeq_mul_right (m : ℤ) : a ≡ b [ZMOD n * m] → a ≡ b [ZMOD n] :=
148-
mul_comm m n ▸ of_modeq_mul_left _
146+
theorem of_mul_right (m : ℤ) : a ≡ b [ZMOD n * m] → a ≡ b [ZMOD n] :=
147+
mul_comm m n ▸ of_mul_left _
149148

150149
end modeq
151150

@@ -163,7 +162,7 @@ lemma modeq_and_modeq_iff_modeq_mul {a b m n : ℤ} (hmn : m.nat_abs.coprime n.n
163162
refine hmn.mul_dvd_of_dvd_of_dvd _ _;
164163
rw [← coe_nat_dvd, nat_abs_dvd, dvd_nat_abs]; tauto
165164
end,
166-
λ h, ⟨h.of_modeq_mul_right _, h.of_modeq_mul_left _⟩⟩
165+
λ h, ⟨h.of_mul_right _, h.of_mul_left _⟩⟩
167166

168167
lemma gcd_a_modeq (a b : ℕ) : (a : ℤ) * nat.gcd_a a b ≡ nat.gcd a b [ZMOD b] :=
169168
by { rw [← add_zero ((a : ℤ) * _), nat.gcd_eq_gcd_ab],
@@ -197,9 +196,9 @@ let ⟨z, hz1, hz2, hz3⟩ := exists_unique_equiv a hb in
197196

198197

199198
@[simp] lemma mod_mul_right_mod (a b c : ℤ) : a % (b * c) % b = a % b :=
200-
(mod_modeq _ _).of_modeq_mul_right _
199+
(mod_modeq _ _).of_mul_right _
201200

202201
@[simp] lemma mod_mul_left_mod (a b c : ℤ) : a % (b * c) % c = a % c :=
203-
(mod_modeq _ _).of_modeq_mul_left _
202+
(mod_modeq _ _).of_mul_left _
204203

205204
end int

src/data/nat/modeq.lean

Lines changed: 50 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,7 @@ theorem modeq_iff_dvd : a ≡ b [MOD n] ↔ (n:ℤ) ∣ b - a :=
6161
by rw [modeq, eq_comm, ← int.coe_nat_inj', int.coe_nat_mod, int.coe_nat_mod,
6262
int.mod_eq_mod_iff_mod_sub_eq_zero, int.dvd_iff_mod_eq_zero]
6363

64-
protected theorem modeq.dvd : a ≡ b [MOD n] → (n:ℤ) ∣ b - a := modeq_iff_dvd.1
65-
theorem modeq_of_dvd : (n:ℤ) ∣ b - a → a ≡ b [MOD n] := modeq_iff_dvd.2
64+
alias modeq_iff_dvd ↔ modeq.dvd modeq_of_dvd
6665

6766
/-- A variant of `modeq_iff_dvd` with `nat` divisibility -/
6867
theorem modeq_iff_dvd' (h : a ≤ b) : a ≡ b [MOD n] ↔ n ∣ b - a :=
@@ -72,14 +71,14 @@ theorem mod_modeq (a n) : a % n ≡ a [MOD n] := mod_mod _ _
7271

7372
namespace modeq
7473

75-
protected theorem modeq_of_dvd (d : m ∣ n) (h : a ≡ b [MOD n]) : a ≡ b [MOD m] :=
74+
protected theorem of_dvd (d : m ∣ n) (h : a ≡ b [MOD n]) : a ≡ b [MOD m] :=
7675
modeq_of_dvd ((int.coe_nat_dvd.2 d).trans h.dvd)
7776

7877
protected theorem mul_left' (c : ℕ) (h : a ≡ b [MOD n]) : c * a ≡ c * b [MOD (c * n)] :=
7978
by unfold modeq at *; rw [mul_mod_mul_left, mul_mod_mul_left, h]
8079

8180
protected theorem mul_left (c : ℕ) (h : a ≡ b [MOD n]) : c * a ≡ c * b [MOD n] :=
82-
(h.mul_left' _ ).modeq_of_dvd (dvd_mul_left _ _)
81+
(h.mul_left' _ ).of_dvd (dvd_mul_left _ _)
8382

8483
protected theorem mul_right' (c : ℕ) (h : a ≡ b [MOD n]) : a * c ≡ b * c [MOD (n * c)] :=
8584
by rw [mul_comm a, mul_comm b, mul_comm n]; exact h.mul_left' c
@@ -128,6 +127,9 @@ by { rw [add_comm a, add_comm b] at h₂, exact h₁.add_left_cancel h₂ }
128127
protected theorem add_right_cancel' (c : ℕ) (h : a + c ≡ b + c [MOD n]) : a ≡ b [MOD n] :=
129128
modeq.rfl.add_right_cancel h
130129

130+
/-- Cancel left multiplication on both sides of the `≡` and in the modulus.
131+
132+
For cancelling left multiplication in the modulus, see `nat.modeq.of_mul_left`. -/
131133
protected theorem mul_left_cancel' {a b c m : ℕ} (hc : c ≠ 0) :
132134
c * a ≡ c * b [MOD c * m] → a ≡ b [MOD m] :=
133135
by simp [modeq_iff_dvd, ←mul_sub, mul_dvd_mul_iff_left (by simp [hc] : (c : ℤ) ≠ 0)]
@@ -136,6 +138,9 @@ protected theorem mul_left_cancel_iff' {a b c m : ℕ} (hc : c ≠ 0) :
136138
c * a ≡ c * b [MOD c * m] ↔ a ≡ b [MOD m] :=
137139
⟨modeq.mul_left_cancel' hc, modeq.mul_left' _⟩
138140

141+
/-- Cancel right multiplication on both sides of the `≡` and in the modulus.
142+
143+
For cancelling right multiplication in the modulus, see `nat.modeq.of_mul_right`. -/
139144
protected theorem mul_right_cancel' {a b c m : ℕ} (hc : c ≠ 0) :
140145
a * c ≡ b * c [MOD m * c] → a ≡ b [MOD m] :=
141146
by simp [modeq_iff_dvd, ←sub_mul, mul_dvd_mul_iff_right (by simp [hc] : (c : ℤ) ≠ 0)]
@@ -144,26 +149,27 @@ protected theorem mul_right_cancel_iff' {a b c m : ℕ} (hc : c ≠ 0) :
144149
a * c ≡ b * c [MOD m * c] ↔ a ≡ b [MOD m] :=
145150
⟨modeq.mul_right_cancel' hc, modeq.mul_right' _⟩
146151

147-
theorem of_modeq_mul_left (m : ℕ) (h : a ≡ b [MOD m * n]) : a ≡ b [MOD n] :=
152+
/-- Cancel left multiplication in the modulus.
153+
154+
For cancelling left multiplication on both sides of the `≡`, see `nat.modeq.mul_left_cancel'`. -/
155+
theorem of_mul_left (m : ℕ) (h : a ≡ b [MOD m * n]) : a ≡ b [MOD n] :=
148156
by { rw [modeq_iff_dvd] at *, exact (dvd_mul_left (n : ℤ) (m : ℤ)).trans h }
149157

150-
theorem of_modeq_mul_right (m : ℕ) : a ≡ b [MOD n * m] → a ≡ b [MOD n] :=
151-
mul_comm m n ▸ of_modeq_mul_left _
158+
/-- Cancel right multiplication in the modulus.
159+
160+
For cancelling right multiplication on both sides of the `≡`, see `nat.modeq.mul_right_cancel'`. -/
161+
theorem of_mul_right (m : ℕ) : a ≡ b [MOD n * m] → a ≡ b [MOD n] := mul_comm m n ▸ of_mul_left _
152162

153163
end modeq
154164

155-
theorem modeq_one : a ≡ b [MOD 1] := modeq_of_dvd (one_dvd _)
165+
lemma modeq_sub (h : b ≤ a) : a ≡ b [MOD a - b] := (modeq_of_dvd $ by rw [int.coe_nat_sub h]).symm
156166

157-
lemma modeq_sub (h : b ≤ a) : a ≡ b [MOD a - b] :=
158-
(modeq_of_dvd $ by rw [int.coe_nat_sub h]).symm
167+
lemma modeq_one : a ≡ b [MOD 1] := modeq_of_dvd $ one_dvd _
159168

160-
@[simp] lemma modeq_zero_iff {a b : ℕ} : a ≡ b [MOD 0] ↔ a = b :=
161-
by rw [nat.modeq, nat.mod_zero, nat.mod_zero]
169+
@[simp] lemma modeq_zero_iff : a ≡ b [MOD 0] ↔ a = b := by rw [modeq, mod_zero, mod_zero]
162170

163-
@[simp] lemma add_modeq_left {a n : ℕ} : n + a ≡ a [MOD n] :=
164-
by rw [nat.modeq, nat.add_mod_left]
165-
@[simp] lemma add_modeq_right {a n : ℕ} : a + n ≡ a [MOD n] :=
166-
by rw [nat.modeq, nat.add_mod_right]
171+
@[simp] lemma add_modeq_left : n + a ≡ a [MOD n] := by rw [modeq, add_mod_left]
172+
@[simp] lemma add_modeq_right : a + n ≡ a [MOD n] := by rw [modeq, add_mod_right]
167173

168174
namespace modeq
169175

@@ -174,33 +180,36 @@ lemma le_of_lt_add (h1 : a ≡ b [MOD m]) (h2 : a < b + m) : a ≤ b :=
174180
lemma add_le_of_lt (h1 : a ≡ b [MOD m]) (h2 : a < b) : a + m ≤ b :=
175181
le_of_lt_add (add_modeq_right.trans h1) (add_lt_add_right h2 m)
176182

177-
lemma dvd_iff_of_modeq_of_dvd {a b d m : ℕ} (h : a ≡ b [MOD m]) (hdm : d ∣ m) :
178-
d ∣ a ↔ d ∣ b :=
183+
lemma dvd_iff (h : a ≡ b [MOD m]) (hdm : d ∣ m) : d ∣ a ↔ d ∣ b :=
179184
begin
180185
simp only [←modeq_zero_iff_dvd],
181-
replace h := h.modeq_of_dvd hdm,
186+
replace h := h.of_dvd hdm,
182187
exact ⟨h.symm.trans, h.trans⟩,
183188
end
184189

185-
lemma gcd_eq_of_modeq {a b m : ℕ} (h : a ≡ b [MOD m]) : gcd a m = gcd b m :=
190+
lemma gcd_eq (h : a ≡ b [MOD m]) : gcd a m = gcd b m :=
186191
begin
187192
have h1 := gcd_dvd_right a m,
188193
have h2 := gcd_dvd_right b m,
189194
exact dvd_antisymm
190-
(dvd_gcd ((dvd_iff_of_modeq_of_dvd h h1).mp (gcd_dvd_left a m)) h1)
191-
(dvd_gcd ((dvd_iff_of_modeq_of_dvd h h2).mpr (gcd_dvd_left b m)) h2),
195+
(dvd_gcd ((h.dvd_iff h1).mp (gcd_dvd_left a m)) h1)
196+
(dvd_gcd ((h.dvd_iff h2).mpr (gcd_dvd_left b m)) h2),
192197
end
193198

194-
lemma eq_of_modeq_of_abs_lt {a b m : ℕ} (h : a ≡ b [MOD m]) (h2 : | (b:ℤ) - a | < m) : a = b :=
199+
lemma eq_of_abs_lt (h : a ≡ b [MOD m]) (h2 : |(b - a : ℤ)| < m) : a = b :=
195200
begin
196201
apply int.coe_nat_inj,
197202
rw [eq_comm, ←sub_eq_zero],
198203
exact int.eq_zero_of_abs_lt_dvd (modeq_iff_dvd.mp h) h2,
199204
end
200205

206+
lemma eq_of_lt_of_lt (h : a ≡ b [MOD m]) (ha : a < m) (hb : b < m) : a = b :=
207+
h.eq_of_abs_lt $ abs_sub_lt_iff.2
208+
⟨(sub_le_self _ $ int.coe_nat_nonneg _).trans_lt $ cast_lt.2 hb,
209+
(sub_le_self _ $ int.coe_nat_nonneg _).trans_lt $ cast_lt.2 ha⟩
210+
201211
/-- To cancel a common factor `c` from a `modeq` we must divide the modulus `m` by `gcd m c` -/
202-
lemma modeq_cancel_left_div_gcd {a b c m : ℕ} (hm : 0 < m) (h : c * a ≡ c * b [MOD m]) :
203-
a ≡ b [MOD m / gcd m c] :=
212+
lemma cancel_left_div_gcd (hm : 0 < m) (h : c * a ≡ c * b [MOD m]) : a ≡ b [MOD m / gcd m c] :=
204213
begin
205214
let d := gcd m c,
206215
have hmd := gcd_dvd_left m c,
@@ -217,35 +226,30 @@ begin
217226
nat.div_self (gcd_pos_of_pos_left c hm)] },
218227
end
219228

220-
lemma modeq_cancel_right_div_gcd {a b c m : ℕ} (hm : 0 < m) (h : a * c ≡ b * c [MOD m]) :
221-
a ≡ b [MOD m / gcd m c] :=
222-
by { apply modeq_cancel_left_div_gcd hm, simpa [mul_comm] using h }
229+
lemma cancel_right_div_gcd (hm : 0 < m) (h : a * c ≡ b * c [MOD m]) : a ≡ b [MOD m / gcd m c] :=
230+
by { apply cancel_left_div_gcd hm, simpa [mul_comm] using h }
223231

224-
lemma modeq_cancel_left_div_gcd' {a b c d m : ℕ} (hm : 0 < m) (hcd : c ≡ d [MOD m])
225-
(h : c * a ≡ d * b [MOD m]) :
232+
lemma cancel_left_div_gcd' (hm : 0 < m) (hcd : c ≡ d [MOD m]) (h : c * a ≡ d * b [MOD m]) :
226233
a ≡ b [MOD m / gcd m c] :=
227-
modeq_cancel_left_div_gcd hm (h.trans (modeq.mul_right b hcd).symm)
234+
(h.trans (modeq.mul_right b hcd).symm).cancel_left_div_gcd hm
228235

229-
lemma modeq_cancel_right_div_gcd' {a b c d m : ℕ} (hm : 0 < m) (hcd : c ≡ d [MOD m])
230-
(h : a * c ≡ b * d [MOD m]) :
236+
lemma cancel_right_div_gcd' (hm : 0 < m) (hcd : c ≡ d [MOD m]) (h : a * c ≡ b * d [MOD m]) :
231237
a ≡ b [MOD m / gcd m c] :=
232-
by { apply modeq_cancel_left_div_gcd' hm hcd, simpa [mul_comm] using h }
238+
hcd.cancel_left_div_gcd' hm $ by simpa [mul_comm] using h
233239

234240
/-- A common factor that's coprime with the modulus can be cancelled from a `modeq` -/
235-
lemma modeq_cancel_left_of_coprime {a b c m : ℕ} (hmc : gcd m c = 1) (h : c * a ≡ c * b [MOD m]) :
236-
a ≡ b [MOD m] :=
241+
lemma cancel_left_of_coprime (hmc : gcd m c = 1) (h : c * a ≡ c * b [MOD m]) : a ≡ b [MOD m] :=
237242
begin
238243
rcases m.eq_zero_or_pos with rfl | hm,
239244
{ simp only [gcd_zero_left] at hmc,
240245
simp only [gcd_zero_left, hmc, one_mul, modeq_zero_iff] at h,
241246
subst h },
242-
simpa [hmc] using modeq_cancel_left_div_gcd hm h
247+
simpa [hmc] using h.cancel_left_div_gcd hm
243248
end
244249

245250
/-- A common factor that's coprime with the modulus can be cancelled from a `modeq` -/
246-
lemma modeq_cancel_right_of_coprime {a b c m : ℕ} (hmc : gcd m c = 1) (h : a * c ≡ b * c [MOD m]) :
247-
a ≡ b [MOD m] :=
248-
by { apply modeq_cancel_left_of_coprime hmc, simpa [mul_comm] using h }
251+
lemma cancel_right_of_coprime (hmc : gcd m c = 1) (h : a * c ≡ b * c [MOD m]) : a ≡ b [MOD m] :=
252+
cancel_left_of_coprime hmc $ by simpa [mul_comm] using h
249253

250254
end modeq
251255

@@ -306,22 +310,22 @@ lemma modeq_and_modeq_iff_modeq_mul {a b m n : ℕ} (hmn : coprime m n) :
306310
rw [nat.modeq_iff_dvd, ← int.dvd_nat_abs, int.coe_nat_dvd],
307311
exact hmn.mul_dvd_of_dvd_of_dvd h.1 h.2
308312
end,
309-
λ h, ⟨h.of_modeq_mul_right _, h.of_modeq_mul_left _⟩⟩
313+
λ h, ⟨h.of_mul_right _, h.of_mul_left _⟩⟩
310314

311315
lemma coprime_of_mul_modeq_one (b : ℕ) {a n : ℕ} (h : a * b ≡ 1 [MOD n]) : coprime a n :=
312316
begin
313317
obtain ⟨g, hh⟩ := nat.gcd_dvd_right a n,
314318
rw [nat.coprime_iff_gcd_eq_one, ← nat.dvd_one, ← nat.modeq_zero_iff_dvd],
315-
calc 1 ≡ a * b [MOD a.gcd n] : nat.modeq.of_modeq_mul_right g (hh.subst h).symm
319+
calc 1 ≡ a * b [MOD a.gcd n] : nat.modeq.of_mul_right g (hh.subst h).symm
316320
... ≡ 0 * b [MOD a.gcd n] : (nat.modeq_zero_iff_dvd.mpr (nat.gcd_dvd_left _ _)).mul_right b
317321
... = 0 : by rw zero_mul,
318322
end
319323

320324
@[simp] lemma mod_mul_right_mod (a b c : ℕ) : a % (b * c) % b = a % b :=
321-
(mod_modeq _ _).of_modeq_mul_right _
325+
(mod_modeq _ _).of_mul_right _
322326

323327
@[simp] lemma mod_mul_left_mod (a b c : ℕ) : a % (b * c) % c = a % c :=
324-
(mod_modeq _ _).of_modeq_mul_left _
328+
(mod_modeq _ _).of_mul_left _
325329

326330
lemma div_mod_eq_mod_mul_div (a b c : ℕ) : a / b % c = a % (b * c) / b :=
327331
if hb0 : b = 0 then by simp [hb0]
@@ -414,11 +418,11 @@ by rw [mul_add, two_mul_odd_div_two hm1, mul_left_comm, two_mul_odd_div_two hn1,
414418
tsub_add_cancel_of_le (le_mul_of_one_le_right (nat.zero_le _) hn0)]
415419

416420
lemma odd_of_mod_four_eq_one {n : ℕ} : n % 4 = 1 → n % 2 = 1 :=
417-
by simpa [modeq, show 2 * 2 = 4, by norm_num] using @modeq.of_modeq_mul_left 2 n 1 2
421+
by simpa [modeq, show 2 * 2 = 4, by norm_num] using @modeq.of_mul_left 2 n 1 2
418422

419423
lemma odd_of_mod_four_eq_three {n : ℕ} : n % 4 = 3 → n % 2 = 1 :=
420424
by simpa [modeq, show 2 * 2 = 4, by norm_num, show 3 % 4 = 3, by norm_num]
421-
using @modeq.of_modeq_mul_left 2 n 3 2
425+
using @modeq.of_mul_left 2 n 3 2
422426

423427
/-- A natural number is odd iff it has residue `1` or `3` mod `4`-/
424428
lemma odd_mod_four_iff {n : ℕ} : n % 2 = 1 ↔ n % 4 = 1 ∨ n % 4 = 3 :=

src/number_theory/pell.lean

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -313,7 +313,7 @@ theorem xy_modeq_yn (n) :
313313
(hx.mul_right _ ).add $ modeq_zero_iff_dvd.2 $
314314
by rw pow_succ'; exact
315315
mul_dvd_mul_right (dvd_mul_of_dvd_right (modeq_zero_iff_dvd.1 $
316-
(hy.modeq_of_dvd $ by simp [pow_succ']).trans $ modeq_zero_iff_dvd.2 $
316+
(hy.of_dvd $ by simp [pow_succ']).trans $ modeq_zero_iff_dvd.2 $
317317
by simp [-mul_comm, -mul_assoc]) _) _,
318318
have R : xn (n * k) * yn n + yn (n * k) * xn n ≡
319319
xn n^k * yn n + k * xn n^k * yn n [MOD yn n^3], from
@@ -327,7 +327,7 @@ theorem xy_modeq_yn (n) :
327327

328328
theorem ysq_dvd_yy (n) : yn n * yn n ∣ yn (n * yn n) :=
329329
modeq_zero_iff_dvd.1 $
330-
((xy_modeq_yn n (yn n)).right.modeq_of_dvd $ by simp [pow_succ]).trans
330+
((xy_modeq_yn n (yn n)).right.of_dvd $ by simp [pow_succ]).trans
331331
(modeq_zero_iff_dvd.2 $ by simp [mul_dvd_mul_left, mul_assoc])
332332

333333
theorem dvd_of_ysq_dvd {n t} (h : yn n * yn n ∣ yn t) : yn n ∣ t :=
@@ -337,7 +337,7 @@ let ⟨k, ke⟩ := nt in
337337
have yn n ∣ k * (xn n)^(k-1), from
338338
nat.dvd_of_mul_dvd_mul_right (strict_mono_y n0l) $ modeq_zero_iff_dvd.1 $
339339
by have xm := (xy_modeq_yn a1 n k).right; rw ← ke at xm; exact
340-
(xm.modeq_of_dvd $ by simp [pow_succ]).symm.trans h.modeq_zero_nat,
340+
(xm.of_dvd $ by simp [pow_succ]).symm.trans h.modeq_zero_nat,
341341
by rw ke; exact dvd_mul_of_dvd_right
342342
(((xy_coprime _ _).pow_left _).symm.dvd_of_dvd_mul_right this) _
343343

@@ -641,7 +641,7 @@ theorem matiyasevic {a k x y} : (∃ a1 : 1 < a, xn a1 k = x ∧ yn a1 k = y)
641641
have 4 * y ∣ b - 1, from int.coe_nat_dvd.1 $
642642
by rw int.coe_nat_sub (le_of_lt b1);
643643
exact bm1.symm.dvd,
644-
(yn_modeq_a_sub_one _ _).modeq_of_dvd this,
644+
(yn_modeq_a_sub_one _ _).of_dvd this,
645645
⟨ky, or.inr ⟨u, v, s, t, b,
646646
pell_eq _ _, pell_eq _ _, pell_eq _ _, b1, bm1, ba, vp, yv, sx, tk⟩⟩,
647647
λ⟨a1, ky, o⟩, ⟨a1, match o with
@@ -666,7 +666,7 @@ theorem matiyasevic {a k x y} : (∃ a1 : 1 < a, xn a1 k = x ∧ yn a1 k = y)
666666
have jk : j ≡ k [MOD 4 * yn a1 i], from
667667
have 4 * yn a1 i ∣ b - 1, from int.coe_nat_dvd.1 $
668668
by rw int.coe_nat_sub (le_of_lt b1); exact bm1.symm.dvd,
669-
((yn_modeq_a_sub_one b1 _).modeq_of_dvd this).symm.trans tk,
669+
((yn_modeq_a_sub_one b1 _).of_dvd this).symm.trans tk,
670670
have ki : k + i < 4 * yn a1 i, from
671671
lt_of_le_of_lt (add_le_add ky (yn_ge_n a1 i)) $
672672
by rw ← two_mul; exact nat.mul_lt_mul_of_pos_right dec_trivial (strict_mono_y a1 ipos),
@@ -675,9 +675,9 @@ theorem matiyasevic {a k x y} : (∃ a1 : 1 < a, xn a1 k = x ∧ yn a1 k = y)
675675
(modeq_of_xn_modeq a1 ipos iln this).resolve_right $ λ (ji : j + i ≡ 0 [MOD 4 * n]),
676676
not_le_of_gt ki $ nat.le_of_dvd (lt_of_lt_of_le ipos $ nat.le_add_left _ _) $
677677
modeq_zero_iff_dvd.1 $ (jk.symm.add_right i).trans $
678-
ji.modeq_of_dvd yd,
678+
ji.of_dvd yd,
679679
by have : i % (4 * yn a1 i) = k % (4 * yn a1 i) :=
680-
(ji.modeq_of_dvd yd).symm.trans jk;
680+
(ji.of_dvd yd).symm.trans jk;
681681
rwa [nat.mod_eq_of_lt (lt_of_le_of_lt (nat.le_add_left _ _) ki),
682682
nat.mod_eq_of_lt (lt_of_le_of_lt (nat.le_add_right _ _) ki)] at this
683683
end

0 commit comments

Comments
 (0)