@@ -2556,20 +2556,20 @@ by rw [list.sorted, list.pairwise_map]; exact CNF_pairwise b o
2556
2556
/-- The next fixed point function, the least fixed point of the
2557
2557
normal function `f` above `a`. -/
2558
2558
def nfp (f : ordinal → ordinal) (a : ordinal) :=
2559
- sup (λ n : ℕ, n.foldr f a)
2559
+ sup (λ n : ℕ, f^[n] a)
2560
2560
2561
- theorem foldr_le_nfp (f a n) : nat.foldr f a n ≤ nfp f a :=
2561
+ theorem iterate_le_nfp (f a n) : f^[n] a ≤ nfp f a :=
2562
2562
le_sup _ n
2563
2563
2564
2564
theorem le_nfp_self (f a) : a ≤ nfp f a :=
2565
- foldr_le_nfp f a 0
2565
+ iterate_le_nfp f a 0
2566
2566
2567
2567
theorem is_normal.lt_nfp {f} (H : is_normal f) {a b} :
2568
2568
f b < nfp f a ↔ b < nfp f a :=
2569
2569
lt_sup.trans $ iff.trans
2570
2570
(by exact
2571
2571
⟨λ ⟨n, h⟩, ⟨n, lt_of_le_of_lt (H.le_self _) h⟩,
2572
- λ ⟨n, h⟩, ⟨n+1 , H.lt_iff.2 h⟩⟩)
2572
+ λ ⟨n, h⟩, ⟨n+1 , by rw nat.iterate_succ'; exact H.lt_iff.2 h⟩⟩)
2573
2573
lt_sup.symm
2574
2574
2575
2575
theorem is_normal.nfp_le {f} (H : is_normal f) {a b} :
@@ -2579,8 +2579,8 @@ le_iff_le_iff_lt_iff_lt.2 H.lt_nfp
2579
2579
theorem is_normal.nfp_le_fp {f} (H : is_normal f) {a b}
2580
2580
(ab : a ≤ b) (h : f b ≤ b) : nfp f a ≤ b :=
2581
2581
sup_le.2 $ λ i, begin
2582
- induction i with i IH, {exact ab},
2583
- exact le_trans (H.le_iff.2 IH ) h
2582
+ induction i with i IH generalizing a , {exact ab},
2583
+ exact IH ( le_trans (H.le_iff.2 ab ) h),
2584
2584
end
2585
2585
2586
2586
theorem is_normal.nfp_fp {f} (H : is_normal f) (a) : f (nfp f a) = nfp f a :=
@@ -2589,13 +2589,13 @@ begin
2589
2589
cases le_or_lt (f a) a with aa aa,
2590
2590
{ rwa le_antisymm (H.nfp_le_fp (le_refl _) aa) (le_nfp_self _ _) },
2591
2591
rcases zero_or_succ_or_limit (nfp f a) with e|⟨b, e⟩|l,
2592
- { refine @le_trans _ _ _ (f a) _ (H.le_iff.2 _) (foldr_le_nfp f a 1 ),
2592
+ { refine @le_trans _ _ _ (f a) _ (H.le_iff.2 _) (iterate_le_nfp f a 1 ),
2593
2593
simp [e, zero_le] },
2594
2594
{ have : f b < nfp f a := H.lt_nfp.2 (by simp [e, lt_succ_self]),
2595
2595
rw [e, lt_succ] at this ,
2596
2596
have ab : a ≤ b,
2597
2597
{ rw [← lt_succ, ← e],
2598
- exact lt_of_lt_of_le aa (foldr_le_nfp f a 1 ) },
2598
+ exact lt_of_lt_of_le aa (iterate_le_nfp f a 1 ) },
2599
2599
refine le_trans (H.le_iff.2 (H.nfp_le_fp ab this ))
2600
2600
(le_trans this (le_of_lt _)),
2601
2601
simp [e, lt_succ_self] },
0 commit comments