@@ -126,15 +126,15 @@ private lemma mul_aux_left (x1 x2 y : ℕ × K) (H : r K p x1 x2) :
126
126
mk K p (x1.1 + y.1 , ((frobenius K p)^[y.1 ] x1.2 ) * ((frobenius K p)^[x1.1 ] y.2 )) =
127
127
mk K p (x2.1 + y.1 , ((frobenius K p)^[y.1 ] x2.2 ) * ((frobenius K p)^[x2.1 ] y.2 )) :=
128
128
match x1, x2, H with
129
- | _, _, r.intro n x := quot.sound $ by rw [← nat.iterate_succ , nat.iterate_succ',
129
+ | _, _, r.intro n x := quot.sound $ by rw [← nat.iterate_succ_apply , nat.iterate_succ',
130
130
nat.iterate_succ', ← frobenius_mul, nat.succ_add]; apply r.intro
131
131
end
132
132
133
133
private lemma mul_aux_right (x y1 y2 : ℕ × K) (H : r K p y1 y2) :
134
134
mk K p (x.1 + y1.1 , ((frobenius K p)^[y1.1 ] x.2 ) * ((frobenius K p)^[x.1 ] y1.2 )) =
135
135
mk K p (x.1 + y2.1 , ((frobenius K p)^[y2.1 ] x.2 ) * ((frobenius K p)^[x.1 ] y2.2 )) :=
136
136
match y1, y2, H with
137
- | _, _, r.intro n y := quot.sound $ by rw [← nat.iterate_succ , nat.iterate_succ',
137
+ | _, _, r.intro n y := quot.sound $ by rw [← nat.iterate_succ_apply , nat.iterate_succ',
138
138
nat.iterate_succ', ← frobenius_mul]; apply r.intro
139
139
end
140
140
@@ -153,12 +153,12 @@ instance : comm_monoid (perfect_closure K p) :=
153
153
{ mul_assoc := λ e f g, quot.induction_on e $ λ ⟨m, x⟩, quot.induction_on f $ λ ⟨n, y⟩,
154
154
quot.induction_on g $ λ ⟨s, z⟩, congr_arg (quot.mk _) $
155
155
by simp only [add_assoc, mul_assoc, nat.iterate₂ (frobenius_mul _),
156
- ← nat.iterate_add , add_comm, add_left_comm],
156
+ ← nat.iterate_add_apply , add_comm, add_left_comm],
157
157
one := mk K p (0 , 1 ),
158
158
one_mul := λ e, quot.induction_on e (λ ⟨n, x⟩, congr_arg (quot.mk _) $
159
- by simp only [nat.iterate₀ (frobenius_one _), nat.iterate_zero , one_mul, zero_add]),
159
+ by simp only [nat.iterate₀ (frobenius_one _), nat.iterate_zero_apply , one_mul, zero_add]),
160
160
mul_one := λ e, quot.induction_on e (λ ⟨n, x⟩, congr_arg (quot.mk _) $
161
- by simp only [nat.iterate₀ (frobenius_one _), nat.iterate_zero , mul_one, add_zero]),
161
+ by simp only [nat.iterate₀ (frobenius_one _), nat.iterate_zero_apply , mul_one, add_zero]),
162
162
mul_comm := λ e f, quot.induction_on e (λ ⟨m, x⟩, quot.induction_on f (λ ⟨n, y⟩,
163
163
congr_arg (quot.mk _) $ by simp only [add_comm, mul_comm])),
164
164
.. (infer_instance : has_mul (perfect_closure K p)) }
@@ -171,15 +171,15 @@ private lemma add_aux_left (x1 x2 y : ℕ × K) (H : r K p x1 x2) :
171
171
mk K p (x1.1 + y.1 , ((frobenius K p)^[y.1 ] x1.2 ) + ((frobenius K p)^[x1.1 ] y.2 )) =
172
172
mk K p (x2.1 + y.1 , ((frobenius K p)^[y.1 ] x2.2 ) + ((frobenius K p)^[x2.1 ] y.2 )) :=
173
173
match x1, x2, H with
174
- | _, _, r.intro n x := quot.sound $ by rw [← nat.iterate_succ , nat.iterate_succ',
174
+ | _, _, r.intro n x := quot.sound $ by rw [← nat.iterate_succ_apply , nat.iterate_succ',
175
175
nat.iterate_succ', ← frobenius_add, nat.succ_add]; apply r.intro
176
176
end
177
177
178
178
private lemma add_aux_right (x y1 y2 : ℕ × K) (H : r K p y1 y2) :
179
179
mk K p (x.1 + y1.1 , ((frobenius K p)^[y1.1 ] x.2 ) + ((frobenius K p)^[x.1 ] y1.2 )) =
180
180
mk K p (x.1 + y2.1 , ((frobenius K p)^[y2.1 ] x.2 ) + ((frobenius K p)^[x.1 ] y2.2 )) :=
181
181
match y1, y2, H with
182
- | _, _, r.intro n y := quot.sound $ by rw [← nat.iterate_succ , nat.iterate_succ',
182
+ | _, _, r.intro n y := quot.sound $ by rw [← nat.iterate_succ_apply , nat.iterate_succ',
183
183
nat.iterate_succ', ← frobenius_add]; apply r.intro
184
184
end
185
185
@@ -210,19 +210,19 @@ have := r.intro n (0:K); rwa [frobenius_zero K p] at this
210
210
211
211
theorem r.sound (m n : ℕ) (x y : K) (H : frobenius K p^[m] x = y) :
212
212
mk K p (n, x) = mk K p (m + n, y) :=
213
- by subst H; induction m with m ih; [simp only [zero_add, nat.iterate_zero ],
213
+ by subst H; induction m with m ih; [simp only [zero_add, nat.iterate_zero_apply ],
214
214
rw [ih, nat.succ_add, nat.iterate_succ']]; apply quot.sound; apply r.intro
215
215
216
216
instance : comm_ring (perfect_closure K p) :=
217
217
{ add_assoc := λ e f g, quot.induction_on e $ λ ⟨m, x⟩, quot.induction_on f $ λ ⟨n, y⟩,
218
218
quot.induction_on g $ λ ⟨s, z⟩, congr_arg (quot.mk _) $
219
219
by simp only [add_assoc, nat.iterate₂ (frobenius_add K p),
220
- ( nat.iterate_add _ _ _ _).symm , add_comm, add_left_comm],
220
+ ← nat.iterate_add_apply , add_comm, add_left_comm],
221
221
zero := 0 ,
222
222
zero_add := λ e, quot.induction_on e (λ ⟨n, x⟩, congr_arg (quot.mk _) $
223
- by simp only [nat.iterate₀ (frobenius_zero K p), nat.iterate_zero , zero_add]),
223
+ by simp only [nat.iterate₀ (frobenius_zero K p), nat.iterate_zero_apply , zero_add]),
224
224
add_zero := λ e, quot.induction_on e (λ ⟨n, x⟩, congr_arg (quot.mk _) $
225
- by simp only [nat.iterate₀ (frobenius_zero K p), nat.iterate_zero , add_zero]),
225
+ by simp only [nat.iterate₀ (frobenius_zero K p), nat.iterate_zero_apply , add_zero]),
226
226
add_left_neg := λ e, quot.induction_on e (λ ⟨n, x⟩,
227
227
by simp only [quot_mk_eq_mk, neg_mk, mk_add_mk,
228
228
nat.iterate₁ (frobenius_neg K p), add_left_neg, mk_zero]),
@@ -232,12 +232,12 @@ instance : comm_ring (perfect_closure K p) :=
232
232
quot.induction_on g $ λ ⟨s, z⟩, show quot.mk _ _ = quot.mk _ _,
233
233
by simp only [add_assoc, add_comm, add_left_comm]; apply r.sound;
234
234
simp only [nat.iterate₂ (frobenius_mul p), nat.iterate₂ (frobenius_add K p),
235
- ( nat.iterate_add _ _ _ _).symm , mul_add, add_comm, add_left_comm],
235
+ ← nat.iterate_add_apply , mul_add, add_comm, add_left_comm],
236
236
right_distrib := λ e f g, quot.induction_on e $ λ ⟨m, x⟩, quot.induction_on f $ λ ⟨n, y⟩,
237
237
quot.induction_on g $ λ ⟨s, z⟩, show quot.mk _ _ = quot.mk _ _,
238
238
by simp only [add_assoc, add_comm _ s, add_left_comm _ s]; apply r.sound;
239
239
simp only [nat.iterate₂ (frobenius_mul p), nat.iterate₂ (frobenius_add K p),
240
- ( nat.iterate_add _ _ _ _).symm , add_mul, add_comm, add_left_comm],
240
+ ← nat.iterate_add_apply , add_mul, add_comm, add_left_comm],
241
241
.. (infer_instance : has_add (perfect_closure K p)),
242
242
.. (infer_instance : has_neg (perfect_closure K p)),
243
243
.. (infer_instance : comm_monoid (perfect_closure K p)) }
@@ -259,9 +259,9 @@ begin
259
259
{ cases ih1 with z1 ih1,
260
260
cases ih2 with z2 ih2,
261
261
existsi z2+(y.1 +z1),
262
- rw [← add_assoc, nat.iterate_add , ih1],
263
- rw [← nat.iterate_add , add_comm, nat.iterate_add , ih2],
264
- rw [← nat.iterate_add ],
262
+ rw [← add_assoc, nat.iterate_add_apply , ih1],
263
+ rw [← nat.iterate_add_apply , add_comm, nat.iterate_add_apply , ih2],
264
+ rw [← nat.iterate_add_apply ],
265
265
simp only [add_comm, add_left_comm] } },
266
266
intro H,
267
267
cases x with m x,
@@ -349,7 +349,7 @@ instance : field (perfect_closure K p) :=
349
349
mul_inv_cancel := λ e, induction_on e $ λ ⟨m, x⟩ H,
350
350
have _ := mt (eq_iff _ _ _ _).2 H, (eq_iff _ _ _ _).2
351
351
(by simp only [(frobenius _ _).iterate_map_one, (frobenius K p).iterate_map_zero,
352
- nat.iterate_zero , ← (frobenius _ p).iterate_map_mul] at this ⊢;
352
+ nat.iterate_zero_apply , ← (frobenius _ p).iterate_map_mul] at this ⊢;
353
353
rw [mul_inv_cancel this , (frobenius _ _).iterate_map_one]),
354
354
inv_zero := congr_arg (quot.mk (r K p)) (by rw [inv_zero]),
355
355
.. (infer_instance : has_inv (perfect_closure K p)),
@@ -369,7 +369,7 @@ theorem eq_pth_root (x : ℕ × K) :
369
369
begin
370
370
rcases x with ⟨m, x⟩,
371
371
induction m with m ih, {refl},
372
- rw [nat.iterate_succ ', ← ih]; refl
372
+ rw [nat.iterate_succ_apply ', ← ih]; refl
373
373
end
374
374
375
375
/-- Given a field `K` of characteristic `p` and a perfect field `L` of the same characteristic,
@@ -382,19 +382,19 @@ begin
382
382
refine_struct { .. },
383
383
field to_fun { refine λ e, lift_on e (λ x, pth_root L p^[x.1 ] (f x.2 )) _,
384
384
rintro a b ⟨n⟩,
385
- simp only [f.map_frobenius, nat.iterate_succ, pth_root_frobenius] },
385
+ simp only [f.map_frobenius, nat.iterate_succ, (∘), pth_root_frobenius] },
386
386
field map_one' { exact f.map_one },
387
387
field map_zero' { exact f.map_zero },
388
388
field map_mul' { rintro ⟨x⟩ ⟨y⟩,
389
389
simp only [quot_mk_eq_mk, lift_on_mk, mk_mul_mk, ring_hom.map_iterate_frobenius,
390
390
ring_hom.iterate_map_mul, ring_hom.map_mul],
391
- rw [nat.iterate_add , nat.iterate_cancel, add_comm, nat.iterate_add, nat.iterate_cancel];
392
- exact pth_root_frobenius },
391
+ rw [nat.iterate_add_apply , nat.iterate_cancel, add_comm, nat.iterate_add_apply,
392
+ nat.iterate_cancel]; exact pth_root_frobenius },
393
393
field map_add' { rintro ⟨x⟩ ⟨y⟩,
394
394
simp only [quot_mk_eq_mk, lift_on_mk, mk_add_mk, ring_hom.map_iterate_frobenius,
395
395
ring_hom.iterate_map_add, ring_hom.map_add],
396
- rw [nat.iterate_add , nat.iterate_cancel, add_comm x.1 , nat.iterate_add, nat.iterate_cancel];
397
- exact pth_root_frobenius } },
396
+ rw [nat.iterate_add_apply , nat.iterate_cancel, add_comm x.1 , nat.iterate_add_apply,
397
+ nat.iterate_cancel]; exact pth_root_frobenius } },
398
398
field inv_fun { exact λ f, f.comp (of K p) },
399
399
field left_inv { intro f, ext x, refl },
400
400
field right_inv { intro f, ext ⟨x⟩,
0 commit comments