Mercurial > hg > Members > kono > Proof > ZF-in-agda
changeset 1031:f276cf614fc5
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 30 Nov 2022 10:16:02 +0900 |
parents | 40532b0ed230 |
children | 382680c3e9be |
files | src/zorn.agda |
diffstat | 1 files changed, 106 insertions(+), 128 deletions(-) [+] |
line wrap: on
line diff
--- a/src/zorn.agda Mon Nov 28 18:53:10 2022 +0900 +++ b/src/zorn.agda Wed Nov 30 10:16:02 2022 +0900 @@ -23,7 +23,7 @@ import BAlgbra open import Data.Nat hiding ( _<_ ; _≤_ ) -open import Data.Nat.Properties +open import Data.Nat.Properties open import nat @@ -55,8 +55,8 @@ _<<_ : (x y : Ordinal ) → Set n x << y = * x < * y -_<=_ : (x y : Ordinal ) → Set n -- we can't use * x ≡ * y, it is Set (Level.suc n). Level (suc n) troubles Chain -x <= y = (x ≡ y ) ∨ ( * x < * y ) +_≤_ : (x y : Ordinal ) → Set n -- we can't use * x ≡ * y, it is Set (Level.suc n). Level (suc n) troubles Chain +x ≤ y = (x ≡ y ) ∨ ( * x < * y ) POO : IsStrictPartialOrder _≡_ _<<_ POO = record { isEquivalence = record { refl = refl ; sym = sym ; trans = trans } @@ -64,36 +64,19 @@ ; irrefl = λ x=y x<y → IsStrictPartialOrder.irrefl PO (cong (*) x=y) x<y ; <-resp-≈ = record { fst = λ {x} {y} {y1} y=y1 xy1 → subst (λ k → x << k ) y=y1 xy1 ; snd = λ {x} {x1} {y} x=x1 x1y → subst (λ k → k << x ) x=x1 x1y } } -_≤_ : (x y : HOD) → Set (Level.suc n) -x ≤ y = ( x ≡ y ) ∨ ( x < y ) - -≤-ftrans : {x y z : HOD} → x ≤ y → y ≤ z → x ≤ z +≤-ftrans : {x y z : Ordinal } → x ≤ y → y ≤ z → x ≤ z ≤-ftrans {x} {y} {z} (case1 refl ) (case1 refl ) = case1 refl ≤-ftrans {x} {y} {z} (case1 refl ) (case2 y<z) = case2 y<z ≤-ftrans {x} {_} {z} (case2 x<y ) (case1 refl ) = case2 x<y ≤-ftrans {x} {y} {z} (case2 x<y) (case2 y<z) = case2 ( IsStrictPartialOrder.trans PO x<y y<z ) -<=-trans : {x y z : Ordinal } → x <= y → y <= z → x <= z -<=-trans {x} {y} {z} (case1 refl ) (case1 refl ) = case1 refl -<=-trans {x} {y} {z} (case1 refl ) (case2 y<z) = case2 y<z -<=-trans {x} {_} {z} (case2 x<y ) (case1 refl ) = case2 x<y -<=-trans {x} {y} {z} (case2 x<y) (case2 y<z) = case2 ( IsStrictPartialOrder.trans PO x<y y<z ) - -ftrans<=-< : {x y z : Ordinal } → x <= y → y << z → x << z -ftrans<=-< {x} {y} {z} (case1 eq) y<z = subst (λ k → k < * z) (sym (cong (*) eq)) y<z -ftrans<=-< {x} {y} {z} (case2 lt) y<z = IsStrictPartialOrder.trans PO lt y<z +ftrans≤-< : {x y z : Ordinal } → x ≤ y → y << z → x << z +ftrans≤-< {x} {y} {z} (case1 eq) y<z = subst (λ k → k < * z) (sym (cong (*) eq)) y<z +ftrans≤-< {x} {y} {z} (case2 lt) y<z = IsStrictPartialOrder.trans PO lt y<z -ftrans<-<= : {x y z : Ordinal } → x << y → y <= z → x << z -ftrans<-<= {x} {y} {z} x<y (case1 eq) = subst (λ k → * x < k ) ((cong (*) eq)) x<y -ftrans<-<= {x} {y} {z} x<y (case2 lt) = IsStrictPartialOrder.trans PO x<y lt - -<=to≤ : {x y : Ordinal } → x <= y → * x ≤ * y -<=to≤ (case1 eq) = case1 (cong (*) eq) -<=to≤ (case2 lt) = case2 lt - -≤to<= : {x y : Ordinal } → * x ≤ * y → x <= y -≤to<= (case1 eq) = case1 ( subst₂ (λ j k → j ≡ k ) &iso &iso (cong (&) eq) ) -≤to<= (case2 lt) = case2 lt +ftrans<-≤ : {x y z : Ordinal } → x << y → y ≤ z → x << z +ftrans<-≤ {x} {y} {z} x<y (case1 eq) = subst (λ k → * x < k ) ((cong (*) eq)) x<y +ftrans<-≤ {x} {y} {z} x<y (case2 lt) = IsStrictPartialOrder.trans PO x<y lt <-irr : {a b : HOD} → (a ≡ b ) ∨ (a < b ) → b < a → ⊥ <-irr {a} {b} (case1 a=b) b<a = IsStrictPartialOrder.irrefl PO (sym a=b) b<a @@ -113,8 +96,8 @@ -- Closure of ≤-monotonic function f has total order -- -≤-monotonic-f : (A : HOD) → ( Ordinal → Ordinal ) → Set (Level.suc n) -≤-monotonic-f A f = (x : Ordinal ) → odef A x → ( * x ≤ * (f x) ) ∧ odef A (f x ) +≤-monotonic-f : (A : HOD) → ( Ordinal → Ordinal ) → Set n +≤-monotonic-f A f = (x : Ordinal ) → odef A x → ( x ≤ (f x) ) ∧ odef A (f x ) <-monotonic-f : (A : HOD) → ( Ordinal → Ordinal ) → Set n <-monotonic-f A f = (x : Ordinal ) → odef A x → ( * x < * (f x) ) ∧ odef A (f x ) @@ -131,12 +114,12 @@ A∋fcs {A} s f mf (init as refl) = as A∋fcs {A} s f mf (fsuc y fcy) = A∋fcs {A} s f mf fcy -s≤fc : {A : HOD} (s : Ordinal ) {y : Ordinal } (f : Ordinal → Ordinal) (mf : ≤-monotonic-f A f) → (fcy : FClosure A f s y ) → * s ≤ * y +s≤fc : {A : HOD} (s : Ordinal ) {y : Ordinal } (f : Ordinal → Ordinal) (mf : ≤-monotonic-f A f) → (fcy : FClosure A f s y ) → s ≤ y s≤fc {A} s {.s} f mf (init x refl ) = case1 refl s≤fc {A} s {.(f x)} f mf (fsuc x fcy) with proj1 (mf x (A∋fc s f mf fcy ) ) -... | case1 x=fx = subst (λ k → * s ≤ * k ) (*≡*→≡ x=fx) ( s≤fc {A} s f mf fcy ) +... | case1 x=fx = subst₂ (λ j k → j ≤ k ) refl x=fx (s≤fc s f mf fcy) ... | case2 x<fx with s≤fc {A} s f mf fcy -... | case1 s≡x = case2 ( subst₂ (λ j k → j < k ) (sym s≡x) refl x<fx ) +... | case1 s≡x = case2 ( subst₂ (λ j k → j < k ) (sym (cong (*) s≡x )) refl x<fx ) ... | case2 s<x = case2 ( IsStrictPartialOrder.trans PO s<x x<fx ) fcn : {A : HOD} (s : Ordinal) { x : Ordinal} {f : Ordinal → Ordinal} → (mf : ≤-monotonic-f A f) → FClosure A f s x → ℕ @@ -155,33 +138,33 @@ fc07 : {x : Ordinal } (cx : FClosure A f s x ) → 0 ≡ fcn s mf cx → * s ≡ * x fc07 {x} (init as refl) eq = refl fc07 {.(f x)} (fsuc x cx) eq with proj1 (mf x (A∋fc s f mf cx ) ) - ... | case1 x=fx = subst (λ k → * s ≡ k ) x=fx ( fc07 cx eq ) + ... | case1 x=fx = subst (λ k → * s ≡ k ) (cong (*) x=fx) ( fc07 cx eq ) -- ... | case2 x<fx = ? fc00 : (i j : ℕ ) → i ≡ j → {x y : Ordinal } → (cx : FClosure A f s x ) (cy : FClosure A f s y ) → i ≡ fcn s mf cx → j ≡ fcn s mf cy → * x ≡ * y fc00 (suc i) (suc j) x cx (init x₃ x₄) x₁ x₂ = ⊥-elim ( fc06 x₄ x₂ ) fc00 (suc i) (suc j) x (init x₃ x₄) (fsuc x₅ cy) x₁ x₂ = ⊥-elim ( fc06 x₄ x₁ ) fc00 zero zero refl (init _ refl) (init x₁ refl) i=x i=y = refl fc00 zero zero refl (init as refl) (fsuc y cy) i=x i=y with proj1 (mf y (A∋fc s f mf cy ) ) - ... | case1 y=fy = subst (λ k → * s ≡ k ) y=fy (fc07 cy i=y) -- ( fc00 zero zero refl (init as refl) cy i=x i=y ) + ... | case1 y=fy = subst (λ k → * s ≡ * k ) y=fy (fc07 cy i=y) -- ( fc00 zero zero refl (init as refl) cy i=x i=y ) fc00 zero zero refl (fsuc x cx) (init as refl) i=x i=y with proj1 (mf x (A∋fc s f mf cx ) ) - ... | case1 x=fx = subst (λ k → k ≡ * s ) x=fx (sym (fc07 cx i=x)) -- ( fc00 zero zero refl cx (init as refl) i=x i=y ) + ... | case1 x=fx = subst (λ k → * k ≡ * s ) x=fx (sym (fc07 cx i=x)) -- ( fc00 zero zero refl cx (init as refl) i=x i=y ) fc00 zero zero refl (fsuc x cx) (fsuc y cy) i=x i=y with proj1 (mf x (A∋fc s f mf cx ) ) | proj1 (mf y (A∋fc s f mf cy ) ) - ... | case1 x=fx | case1 y=fy = subst₂ (λ j k → j ≡ k ) x=fx y=fy ( fc00 zero zero refl cx cy i=x i=y ) + ... | case1 x=fx | case1 y=fy = subst₂ (λ j k → * j ≡ * k ) x=fx y=fy ( fc00 zero zero refl cx cy i=x i=y ) fc00 (suc i) (suc j) i=j {.(f x)} {.(f y)} (fsuc x cx) (fsuc y cy) i=x j=y with proj1 (mf x (A∋fc s f mf cx ) ) | proj1 (mf y (A∋fc s f mf cy ) ) - ... | case1 x=fx | case1 y=fy = subst₂ (λ j k → j ≡ k ) x=fx y=fy ( fc00 (suc i) (suc j) i=j cx cy i=x j=y ) - ... | case1 x=fx | case2 y<fy = subst (λ k → k ≡ * (f y)) x=fx (fc02 x cx i=x) where + ... | case1 x=fx | case1 y=fy = subst₂ (λ j k → * j ≡ * k ) x=fx y=fy ( fc00 (suc i) (suc j) i=j cx cy i=x j=y ) + ... | case1 x=fx | case2 y<fy = subst (λ k → * k ≡ * (f y)) x=fx (fc02 x cx i=x) where fc02 : (x1 : Ordinal) → (cx1 : FClosure A f s x1 ) → suc i ≡ fcn s mf cx1 → * x1 ≡ * (f y) fc02 x1 (init x₁ x₂) x = ⊥-elim (fc06 x₂ x) fc02 .(f x1) (fsuc x1 cx1) i=x1 with proj1 (mf x1 (A∋fc s f mf cx1 ) ) - ... | case1 eq = trans (sym eq) ( fc02 x1 cx1 i=x1 ) -- derefence while f x ≡ x + ... | case1 eq = trans (sym (cong (*) eq )) ( fc02 x1 cx1 i=x1 ) -- derefence while f x ≡ x ... | case2 lt = subst₂ (λ j k → * (f j) ≡ * (f k )) &iso &iso ( cong (λ k → * ( f (& k ))) fc04) where fc04 : * x1 ≡ * y fc04 = fc00 i j (cong pred i=j) cx1 cy (cong pred i=x1) (cong pred j=y) - ... | case2 x<fx | case1 y=fy = subst (λ k → * (f x) ≡ k ) y=fy (fc03 y cy j=y) where + ... | case2 x<fx | case1 y=fy = subst (λ k → * (f x) ≡ * k ) y=fy (fc03 y cy j=y) where fc03 : (y1 : Ordinal) → (cy1 : FClosure A f s y1 ) → suc j ≡ fcn s mf cy1 → * (f x) ≡ * y1 fc03 y1 (init x₁ x₂) x = ⊥-elim (fc06 x₂ x) fc03 .(f y1) (fsuc y1 cy1) j=y1 with proj1 (mf y1 (A∋fc s f mf cy1 ) ) - ... | case1 eq = trans ( fc03 y1 cy1 j=y1 ) eq + ... | case1 eq = trans ( fc03 y1 cy1 j=y1 ) (cong (*) eq) ... | case2 lt = subst₂ (λ j k → * (f j) ≡ * (f k )) &iso &iso ( cong (λ k → * ( f (& k ))) fc05) where fc05 : * x ≡ * y1 fc05 = fc00 i j (cong pred i=j) cx cy1 (cong pred i=x) (cong pred j=y1) @@ -198,7 +181,7 @@ fc01 : (i : ℕ ) → {y : Ordinal } → (cx : FClosure A f s x ) (cy : FClosure A f s y ) → (i ≡ fcn s mf cy ) → fcn s mf cx Data.Nat.< i → * x < * y fc01 (suc i) cx (init x₁ x₂) x (s≤s x₃) = ⊥-elim (fc06 x₂ x) fc01 (suc i) {y} cx (fsuc y1 cy) i=y (s≤s x<i) with proj1 (mf y1 (A∋fc s f mf cy ) ) - ... | case1 y=fy = subst (λ k → * x < k ) y=fy ( fc01 (suc i) {y1} cx cy i=y (s≤s x<i) ) + ... | case1 y=fy = subst (λ k → * x < k ) (cong (*) y=fy) ( fc01 (suc i) {y1} cx cy i=y (s≤s x<i) ) ... | case2 y<fy with <-cmp (fcn s mf cx ) i ... | tri> ¬a ¬b c = ⊥-elim ( nat-≤> x<i c ) ... | tri≈ ¬a b ¬c = subst (λ k → k < * (f y1) ) (fcn-inject s mf cy cx (sym (trans b (cong pred i=y) ))) y<fy @@ -247,22 +230,17 @@ ay : odef B y x=fy : x ≡ f y -record IsSUP (A B : HOD) {x : Ordinal } (xa : odef A x) : Set n where +record IsSUP (A B : HOD) (x : Ordinal ) : Set n where field - x≤sup : {y : Ordinal} → odef B y → (y ≡ x ) ∨ (y << x ) - -record IsMinSUP (A B : HOD) ( f : Ordinal → Ordinal ) {x : Ordinal } (xa : odef A x) : Set n where - field - x≤sup : {y : Ordinal} → odef B y → (y ≡ x ) ∨ (y << x ) - minsup : { sup1 : Ordinal } → odef A sup1 - → ( {z : Ordinal } → odef B z → (z ≡ sup1 ) ∨ (z << sup1 )) → x o≤ sup1 - not-hp : ¬ ( HasPrev A B f x ) + ax : odef A x + x≤sup : {y : Ordinal} → odef B y → (y ≡ x ) ∨ (y << x ) -- B is Total, use positive record SUP ( A B : HOD ) : Set (Level.suc n) where field sup : HOD - as : A ∋ sup - x≤sup : {x : HOD} → B ∋ x → (x ≡ sup ) ∨ (x < sup ) -- B is Total, use positive + isSUP : IsSUP A B (& sup) + ax = IsSUP.ax isSUP + x≤sup = IsSUP.x≤sup isSUP -- @@ -280,15 +258,15 @@ → (aa : odef A a ) →( {y : Ordinal} → FClosure A f a y → (y ≡ b ) ∨ (y << b )) → a ≡ b → f a ≡ a fc-stop A f mf {a} {b} aa x≤sup a=b with x≤sup (fsuc a (init aa refl )) ... | case1 eq = trans eq (sym a=b) -... | case2 lt = ⊥-elim (<-irr (case1 (cong (λ k → * (f k) ) (sym a=b))) (ftrans<-<= lt (≤to<= fc00 )) ) where - fc00 : * b ≤ * (f b) +... | case2 lt = ⊥-elim (<-irr (case1 (cong (λ k → * (f k) ) (sym a=b))) (ftrans<-≤ lt fc00 ) ) where + fc00 : b ≤ (f b) fc00 = proj1 (mf _ (subst (λ k → odef A k) a=b aa )) fc-total : (A : HOD ) ( f : Ordinal → Ordinal ) (mf : ≤-monotonic-f A f) (supf : Ordinal → Ordinal ) - (order : {x y w : Ordinal } → x o< y → FClosure A f (supf x) w → w <= supf y) + (order : {x y w : Ordinal } → x o< y → FClosure A f (supf x) w → w ≤ supf y) {s s1 a b : Ordinal } ( fa : FClosure A f (supf s) a )( fb : FClosure A f (supf s1) b ) → Tri (* a < * b) (* a ≡ * b) (* b < * a ) fc-total A f mf supf order {xa} {xb} {a} {b} ca cb with trio< xa xb -... | tri< a₁ ¬b ¬c with order a₁ ? +... | tri< a₁ ¬b ¬c with order a₁ ca ... | case1 eq1 = tri≈ (λ lt → ⊥-elim (<-irr (case1 (sym ct00)) lt)) ct00 (λ lt → ⊥-elim (<-irr (case1 ct00) lt)) where ct00 : * a ≡ * b ct00 = ? -- trans (cong (*) eq) eq1 @@ -296,7 +274,7 @@ ct02 : * a < * b ct02 = ? -- subst (λ k → * k < * b ) (sym eq) lt fc-total f mf supf {xa} {xb} {a} {b} ca cb | tri≈ a₁ ¬b ¬c = ? -fc-total f mf supf {xa} {xb} {a} {b} ca cb | tri< a₁ ¬b ¬c = ? +fc-total A f mf supf order {xa} {xb} {a} {b} ca cb | tri> ¬a ¬b c = ? ∈∧P→o< : {A : HOD } {y : Ordinal} → {P : Set n} → odef A y ∧ P → y o< & A @@ -309,7 +287,7 @@ -- UnionCF A f supf x -- = record { od = record { def = λ z → odef A z ∧ UChain A f supf x z } ; odmax = & A ; <odmax = λ {y} sy → ∈∧P→o< sy } --- order : {x y w : Ordinal } → x o< y → FClosure A f (supf x) w → w <= supf y +-- order : {x y w : Ordinal } → x o< y → FClosure A f (supf x) w → w ≤ supf y -- data UChain { A : HOD } { f : Ordinal → Ordinal } @@ -331,13 +309,20 @@ ... | case1 eq = ⊥-elim ( o<¬≡ (sym eq) sx<sy ) ... | case2 lt = ⊥-elim ( o<> sx<sy lt ) +record IsMinSUP ( A B : HOD ) (sup : Ordinal) : Set n where + field + axm : odef A sup + x≤sup : {x : Ordinal } → odef B x → (x ≡ sup ) ∨ (x << sup ) + minsup : { sup1 : Ordinal } → odef A sup1 + → ( {x : Ordinal } → odef B x → (x ≡ sup1 ) ∨ (x << sup1 )) → sup o≤ sup1 + record MinSUP ( A B : HOD ) : Set n where field sup : Ordinal - asm : odef A sup - x≤sup : {x : Ordinal } → odef B x → (x ≡ sup ) ∨ (x << sup ) - minsup : { sup1 : Ordinal } → odef A sup1 - → ( {x : Ordinal } → odef B x → (x ≡ sup1 ) ∨ (x << sup1 )) → sup o≤ sup1 + isMinSUP : IsMinSUP A B sup + axm = IsMinSUP.axm isMinSUP + x≤sup = IsMinSUP.x≤sup isMinSUP + minsup = IsMinSUP.minsup isMinSUP z09 : {b : Ordinal } { A : HOD } → odef A b → b o< & A z09 {b} {A} ab = subst (λ k → k o< & A) &iso ( c<→o< (subst (λ k → odef A k ) (sym &iso ) ab)) @@ -347,7 +332,7 @@ → MinSUP A (UnionCF A f supf x) → SUP A (UnionCF A f supf x) M→S {A} {f} {mf} {y} {ay} {x} supf ms = record { sup = * (MinSUP.sup ms) - ; as = subst (λ k → odef A k) (sym &iso) (MinSUP.asm ms) ; x≤sup = ms00 } where + ; isSUP = record { ax = subst (λ k → odef A k) (sym &iso) (MinSUP.axm ms) ; x≤sup = ? } } where msup = MinSUP.sup ms ms00 : {z : HOD} → UnionCF A f supf x ∋ z → (z ≡ * msup) ∨ (z < * msup) ms00 {z} uz with MinSUP.x≤sup ms uz @@ -360,16 +345,21 @@ → odef (UnionCF A f supf a) c → odef (UnionCF A f supf b) c chain-mono f mf ay supf supf-mono {a} {b} {c} a≤b ⟪ ua , ch-is-sup u u<x supu=u fc ⟫ = ⟪ ua , ch-is-sup u (ordtrans<-≤ u<x a≤b) supu=u fc ⟫ +chain-minsup : {A : HOD} ( f : Ordinal → Ordinal ) → (mf : ≤-monotonic-f A f ) (supf : Ordinal → Ordinal ) + ( order : {x y w : Ordinal } → x o< y → FClosure A f (supf x) w → w ≤ supf y) + {x : Ordinal} → IsMinSUP A (UnionCF A f supf x) x +chain-minsup = ? + record ZChain ( A : HOD ) ( f : Ordinal → Ordinal ) (mf : ≤-monotonic-f A f) {y : Ordinal} (ay : odef A y) ( z : Ordinal ) : Set (Level.suc n) where field supf : Ordinal → Ordinal sup=u : {b : Ordinal} → (ab : odef A b) → b o≤ z - → IsSUP A (UnionCF A f supf b) ab ∧ (¬ HasPrev A (UnionCF A f supf b) f b ) → supf b ≡ b + → IsSUP A (UnionCF A f supf b) b ∧ (¬ HasPrev A (UnionCF A f supf b) f b ) → supf b ≡ b cfcs : (mf< : <-monotonic-f A f) {a b w : Ordinal } → a o< b → b o≤ z → supf a o< b → FClosure A f (supf a) w → odef (UnionCF A f supf b) w - order : {x y w : Ordinal } → x o< y → FClosure A f (supf x) w → w <= supf y + order : {x y w : Ordinal } → x o< y → FClosure A f (supf x) w → w ≤ supf y asupf : {x : Ordinal } → odef A (supf x) supf-mono : {x y : Ordinal } → x o≤ y → supf x o≤ supf y @@ -394,7 +384,7 @@ chain∋init = ⟪ ay , ? ⟫ f-next : {a z : Ordinal} → odef (UnionCF A f supf z) a → odef (UnionCF A f supf z) (f a) f-next {a} ⟪ aa , cp ⟫ = ? - initial : {z : Ordinal } → odef chain z → * y ≤ * z + initial : {z : Ordinal } → odef chain z → y ≤ z initial {a} ⟪ aa , ua ⟫ = ? f-total : IsTotalOrderSet chain f-total {a} {b} ca cb = subst₂ (λ j k → Tri (j < k) (j ≡ k) (k < j)) *iso *iso uz01 where @@ -427,20 +417,20 @@ → ({y : Ordinal} → odef (UnionCF A f supf x) y → (y ≡ sp ) ∨ (y << sp )) → ( {a : Ordinal } → odef A a → a << f a ) → ¬ ( HasPrev A (UnionCF A f supf x) f sp ) - IsMinSUP→NotHasPrev {x} {sp} asp is-sup <-mono-f hp = ⊥-elim (<-irr ( <=to≤ fsp≤sp) sp<fsp ) where + IsMinSUP→NotHasPrev {x} {sp} asp is-sup <-mono-f hp = ⊥-elim (<-irr ? sp<fsp ) where sp<fsp : sp << f sp sp<fsp = <-mono-f asp pr = HasPrev.y hp - im00 : f (f pr) <= sp + im00 : f (f pr) ≤ sp im00 = is-sup ( f-next (f-next (HasPrev.ay hp))) - fsp≤sp : f sp <= sp - fsp≤sp = subst (λ k → f k <= sp ) (sym (HasPrev.x=fy hp)) im00 + fsp≤sp : f sp ≤ sp + fsp≤sp = subst (λ k → f k ≤ sp ) (sym (HasPrev.x=fy hp)) im00 supf-¬hp : {x : Ordinal } → x o≤ z → ( {a : Ordinal } → odef A a → a << f a ) → ¬ ( HasPrev A (UnionCF A f supf x) f (supf x) ) supf-¬hp {x} x≤z <-mono hp = IsMinSUP→NotHasPrev asupf (λ {w} uw → - (subst (λ k → w <= k) (sym (supf-is-minsup x≤z)) ( MinSUP.x≤sup (minsup x≤z) uw) )) <-mono hp + (subst (λ k → w ≤ k) (sym (supf-is-minsup x≤z)) ( MinSUP.x≤sup (minsup x≤z) uw) )) <-mono hp supf-idem : (mf< : <-monotonic-f A f) {b : Ordinal } → b o≤ z → supf b o≤ z → supf (supf b) ≡ supf b supf-idem mf< {b} b≤z sfb≤x = z52 where @@ -459,7 +449,7 @@ supf = ZChain.supf zc field is-max : {a b : Ordinal } → (ca : odef (UnionCF A f supf z) a ) → b o< z → (ab : odef A b) - → HasPrev A (UnionCF A f supf z) f b ∨ IsSUP A (UnionCF A f supf b) ab + → HasPrev A (UnionCF A f supf z) f b ∨ IsSUP A (UnionCF A f supf b) b → * a < * b → odef ((UnionCF A f supf z)) b record Maximal ( A : HOD ) : Set (Level.suc n) where @@ -503,7 +493,7 @@ ... | tri< a ¬b ¬c = ⊥-elim ( o≤> ( begin supfb x ≡⟨ sbx=spb ⟩ - spb ≤⟨ MinSUP.minsup mb (MinSUP.asm ma) (λ {z} uzb → MinSUP.x≤sup ma (z53 uzb)) ⟩ + spb ≤⟨ MinSUP.minsup mb (MinSUP.axm ma) (λ {z} uzb → MinSUP.x≤sup ma (z53 uzb)) ⟩ spa ≡⟨ sym sax=spa ⟩ supfa x ∎ ) a ) where open o≤-Reasoning O @@ -512,7 +502,7 @@ ... | tri> ¬a ¬b c = ⊥-elim ( o≤> ( begin supfa x ≡⟨ sax=spa ⟩ - spa ≤⟨ MinSUP.minsup ma (MinSUP.asm mb) (λ uza → MinSUP.x≤sup mb (z53 uza)) ⟩ + spa ≤⟨ MinSUP.minsup ma (MinSUP.axm mb) (λ uza → MinSUP.x≤sup mb (z53 uza)) ⟩ spb ≡⟨ sym sbx=spb ⟩ supfb x ∎ ) c ) where open o≤-Reasoning O @@ -588,7 +578,7 @@ ... | tri< a ¬b ¬c with prev z a ... | case2 mins = case2 mins ... | case1 not with ODC.p∨¬p O (odef A z ∧ xsup z) - ... | case1 mins = case2 record { sup = z ; asm = proj1 mins ; x≤sup = proj2 mins ; minsup = m04 } where + ... | case1 mins = case2 record { sup = z ; isMinSUP = record { axm = proj1 mins ; x≤sup = proj2 mins ; minsup = m04 } } where m04 : {sup1 : Ordinal} → odef A sup1 → ({w : Ordinal} → odef B w → (w ≡ sup1) ∨ (w << sup1)) → z o≤ sup1 m04 {s} as lt with trio< z s ... | tri< a ¬b ¬c = o<→≤ a @@ -596,14 +586,14 @@ ... | tri> ¬a ¬b s<z = ⊥-elim ( not s s<z ⟪ as , lt ⟫ ) ... | case2 notz = case1 (λ _ → notz ) m03 : ¬ ((z : Ordinal) → z o< & A → ¬ odef A z ∧ xsup z) - m03 not = ⊥-elim ( not s1 (z09 (SUP.as S)) ⟪ SUP.as S , m05 ⟫ ) where + m03 not = ⊥-elim ( not s1 (z09 (SUP.ax S)) ⟪ SUP.ax S , m05 ⟫ ) where S : SUP A B S = supP B B⊆A total s1 = & (SUP.sup S) m05 : {w : Ordinal } → odef B w → (w ≡ s1 ) ∨ (w << s1 ) - m05 {w} bw with SUP.x≤sup S {* w} (subst (λ k → odef B k) (sym &iso) bw ) - ... | case1 eq = case1 ( subst₂ (λ j k → j ≡ k ) &iso refl (cong (&) eq) ) - ... | case2 lt = case2 ( subst (λ k → _ < k ) (sym *iso) lt ) + m05 {w} bw with SUP.x≤sup S ? -- ? (subst (λ k → odef B k) (sym &iso) bw ) + ... | case1 eq = case1 ( subst₂ (λ j k → j ≡ k ) &iso refl ?) -- (cong (&) eq) ) + ... | case2 lt = case2 ? -- ( subst (λ k → _ < k ) (sym *iso) lt ) m02 : MinSUP A B m02 = dont-or (m00 (& A)) m03 @@ -656,7 +646,7 @@ px = Oprev.oprev op is-max : {a : Ordinal} {b : Ordinal} → odef (UnionCF A f supf x) a → b o< x → (ab : odef A b) → - HasPrev A (UnionCF A f supf x) f b ∨ IsSUP A (UnionCF A f supf b) ab → + HasPrev A (UnionCF A f supf x) f b ∨ IsSUP A (UnionCF A f supf b) ? → * a < * b → odef (UnionCF A f supf x) b is-max {a} {b} ua b<x ab P a<b with ODC.or-exclude O P is-max {a} {b} ua b<x ab P a<b | case1 has-prev = is-max-hp x {a} {b} ua ab has-prev a<b @@ -693,7 +683,7 @@ ... | no lim = record { is-max = is-max } where is-max : {a : Ordinal} {b : Ordinal} → odef (UnionCF A f supf x) a → b o< x → (ab : odef A b) → - HasPrev A (UnionCF A f supf x) f b ∨ IsSUP A (UnionCF A f supf b) ab → + HasPrev A (UnionCF A f supf x) f b ∨ IsSUP A (UnionCF A f supf b) b → * a < * b → odef (UnionCF A f supf x) b is-max {a} {b} ua b<x ab P a<b with ODC.or-exclude O P is-max {a} {b} ua b<x ab P a<b | case1 has-prev = is-max-hp x {a} {b} ua ab has-prev a<b @@ -746,7 +736,7 @@ SUP⊆ : { B C : HOD } → B ⊆' C → SUP A C → SUP A B - SUP⊆ {B} {C} B⊆C sup = record { sup = SUP.sup sup ; as = SUP.as sup ; x≤sup = λ lt → SUP.x≤sup sup (B⊆C lt) } + SUP⊆ {B} {C} B⊆C sup = record { sup = SUP.sup sup ; isSUP = record { ax = SUP.ax sup ; x≤sup = λ lt → SUP.x≤sup sup (B⊆C lt) } } zc43 : (x sp1 : Ordinal ) → ( x o< sp1 ) ∨ ( sp1 o≤ x ) zc43 x sp1 with trio< x sp1 @@ -802,14 +792,14 @@ zc00 {z} (case1 lt) = z07 lt zc00 {z} (case2 fc) = z09 ( A∋fc (supf0 px) f mf fc ) - zc02 : { a b : Ordinal } → odef A a ∧ ? → FClosure A f (supf0 px) b → a <= b + zc02 : { a b : Ordinal } → odef A a ∧ ? → FClosure A f (supf0 px) b → a ≤ b zc02 {a} {b} ca fb = zc05 fb where zc06 : MinSUP.sup (ZChain.minsup zc o≤-refl) ≡ supf0 px zc06 = trans (sym ( ZChain.supf-is-minsup zc o≤-refl )) refl - zc05 : {b : Ordinal } → FClosure A f (supf0 px) b → a <= b + zc05 : {b : Ordinal } → FClosure A f (supf0 px) b → a ≤ b zc05 (fsuc b1 fb ) with proj1 ( mf b1 (A∋fc (supf0 px) f mf fb )) - ... | case1 eq = subst (λ k → a <= k ) (subst₂ (λ j k → j ≡ k) &iso &iso (cong (&) eq)) (zc05 fb) - ... | case2 lt = <=-trans (zc05 fb) (case2 lt) + ... | case1 eq = subst (λ k → a ≤ k ) (subst₂ (λ j k → j ≡ k) &iso &iso ?) (zc05 fb) + ... | case2 lt = ≤-ftrans (zc05 fb) (case2 lt) zc05 (init b1 refl) with MinSUP.x≤sup (ZChain.minsup zc o≤-refl) (subst (λ k → odef A k ∧ ?) (sym &iso) ca ) ... | case1 eq = case1 (subst₂ (λ j k → j ≡ k ) &iso zc06 eq ) @@ -842,13 +832,8 @@ sup1 = minsupP pchainpx pcha ptotal sp1 = MinSUP.sup sup1 - sfpx<=sp1 : supf0 px <= sp1 - sfpx<=sp1 = MinSUP.x≤sup sup1 (case2 (init (ZChain.asupf zc {px}) refl )) - - sfpx≤sp1 : supf0 px o≤ sp1 - sfpx≤sp1 = subst ( λ k → k o≤ sp1) (sym (ZChain.supf-is-minsup zc o≤-refl )) - ( MinSUP.minsup (ZChain.minsup zc o≤-refl) (MinSUP.asm sup1) - (λ {x} ux → MinSUP.x≤sup sup1 (case1 ux)) ) + sfpx≤sp1 : supf0 px ≤ sp1 + sfpx≤sp1 = MinSUP.x≤sup sup1 (case2 (init (ZChain.asupf zc {px}) refl )) -- -- supf0 px o≤ sp1 @@ -884,7 +869,7 @@ asupf1 {z} with trio< z px ... | tri< a ¬b ¬c = ZChain.asupf zc ... | tri≈ ¬a b ¬c = ZChain.asupf zc - ... | tri> ¬a ¬b c = MinSUP.asm sup1 + ... | tri> ¬a ¬b c = MinSUP.axm sup1 supf1-mono : {a b : Ordinal } → a o≤ b → supf1 a o≤ supf1 b supf1-mono {a} {b} a≤b with trio< b px @@ -897,7 +882,7 @@ zc24 : {x₁ : Ordinal} → odef (UnionCF A f supf0 a) x₁ → (x₁ ≡ sp1) ∨ (x₁ << sp1) zc24 {x₁} ux = MinSUP.x≤sup sup1 (case1 (chain-mono f mf ay supf0 (ZChain.supf-mono zc) (o<→≤ a<px) ux ) ) zc19 : supf0 a o≤ sp1 - zc19 = subst (λ k → k o≤ sp1) (sym (ZChain.supf-is-minsup zc (o<→≤ a<px))) ( MinSUP.minsup zc21 (MinSUP.asm sup1) zc24 ) + zc19 = subst (λ k → k o≤ sp1) (sym (ZChain.supf-is-minsup zc (o<→≤ a<px))) ( MinSUP.minsup zc21 (MinSUP.axm sup1) zc24 ) ... | tri≈ ¬a b ¬c = zc18 where zc21 : MinSUP A (UnionCF A f supf0 a) zc21 = ZChain.minsup zc (o≤-refl0 b) @@ -906,7 +891,7 @@ zc24 : {x₁ : Ordinal} → odef (UnionCF A f supf0 a) x₁ → (x₁ ≡ sp1) ∨ (x₁ << sp1) zc24 {x₁} ux = MinSUP.x≤sup sup1 (case1 (chain-mono f mf ay supf0 (ZChain.supf-mono zc) (o≤-refl0 b) ux ) ) zc18 : supf0 a o≤ sp1 - zc18 = subst (λ k → k o≤ sp1) zc20( MinSUP.minsup zc21 (MinSUP.asm sup1) zc24 ) + zc18 = subst (λ k → k o≤ sp1) zc20( MinSUP.minsup zc21 (MinSUP.axm sup1) zc24 ) ... | tri> ¬a ¬b c = o≤-refl sf≤ : { z : Ordinal } → x o≤ z → supf0 x o≤ supf1 z @@ -1003,7 +988,7 @@ ... | case2 lt with ZChain.cfcs zc mf< a<b (subst (λ k → b o< k) (sym (Oprev.oprev=x op)) lt) sa<b fc ... | ⟪ az , cp ⟫ = ⟪ az , ? ⟫ -- u o< px → u o< b ? z50 | case1 eq with ZChain.cfcs zc mf< a<px o≤-refl sa<px fc - ... | ⟪ az , cp ⟫ = ⟪ az , ? ⟫ where -- u o< px → u o< b ? + ... | ⟪ az , cp ⟫ = ⟪ az , ? ⟫ -- u o< px → u o< b ? ... | tri≈ ¬a a=px ¬c = csupf1 where -- a ≡ px , b ≡ x, sp o≤ x px<b : px o< b @@ -1045,14 +1030,14 @@ ... | tri≈ ¬a spx=x ¬c = ⊥-elim (<-irr (case1 (cong (*) m10)) (proj1 (mf< (supf0 px) (ZChain.asupf zc)))) where -- supf px ≡ x then the chain is stopped, which cannot happen when <-monotonic case m12 : supf0 px ≡ sp1 - m12 with osuc-≡< sfpx≤sp1 + m12 with osuc-≡< ? -- sfpx≤sp1 ... | case1 eq = eq ... | case2 lt = ⊥-elim ( o≤> sp≤x (subst (λ k → k o< sp1) spx=x lt )) -- supf0 px o< sp1 , x o< sp1 m10 : f (supf0 px) ≡ supf0 px m10 = fc-stop A f mf (ZChain.asupf zc) m11 m12 where m11 : {z : Ordinal} → FClosure A f (supf0 px) z → (z ≡ sp1) ∨ (z << sp1) m11 {z} fc = MinSUP.x≤sup sup1 (case2 fc) - ... | tri> ¬a ¬b c = ⊥-elim ( o<¬≡ refl (ordtrans<-≤ c (OrdTrans sfpx≤sp1 sp≤x))) -- x o< supf0 px o≤ sp1 ≤ x + ... | tri> ¬a ¬b c = ⊥-elim ( o<¬≡ refl (ordtrans<-≤ c (OrdTrans ? sp≤x))) -- x o< supf0 px o≤ sp1 ≤ x ... | tri> ¬a ¬b c = ⊥-elim ( ¬p<x<op ⟪ c , subst (λ k → a o< k ) (sym (Oprev.oprev=x op)) ( ordtrans<-≤ a<b b≤x) ⟫ ) -- px o< a o< b o≤ x zc11 : {z : Ordinal} → odef (UnionCF A f supf1 x) z → odef pchainpx z @@ -1070,7 +1055,7 @@ sup : {z : Ordinal} → (z≤x : z o≤ x ) → STMP z≤x sup {z} z≤x with trio< z px - ... | tri< a ¬b ¬c = record { tsup = record { sup = MinSUP.sup m ; asm = MinSUP.asm m + ... | tri< a ¬b ¬c = record { tsup = record { sup = MinSUP.sup m ; asm = MinSUP.axm m ; x≤sup = ms00 ; minsup = ms01 } ; tsup=sup = trans (sf1=sf0 (o<→≤ a) ) (ZChain.supf-is-minsup zc (o<→≤ a)) } where m = ZChain.minsup zc (o<→≤ a) ms00 : {x : Ordinal} → odef (UnionCF A f supf1 z) x → (x ≡ MinSUP.sup m) ∨ (x << MinSUP.sup m) @@ -1078,7 +1063,7 @@ ms01 : {sup2 : Ordinal} → odef A sup2 → ({x : Ordinal} → odef (UnionCF A f supf1 z) x → (x ≡ sup2) ∨ (x << sup2)) → MinSUP.sup m o≤ sup2 ms01 {sup2} us P = MinSUP.minsup m us ? - ... | tri≈ ¬a b ¬c = record { tsup = record { sup = MinSUP.sup m ; asm = MinSUP.asm m + ... | tri≈ ¬a b ¬c = record { tsup = record { sup = MinSUP.sup m ; asm = MinSUP.axm m ; x≤sup = ms00 ; minsup = ms01 } ; tsup=sup = trans (sf1=sf0 (o≤-refl0 b) ) (ZChain.supf-is-minsup zc (o≤-refl0 b)) } where m = ZChain.minsup zc (o≤-refl0 b) ms00 : {x : Ordinal} → odef (UnionCF A f supf1 z) x → (x ≡ MinSUP.sup m) ∨ (x << MinSUP.sup m) @@ -1086,7 +1071,7 @@ ms01 : {sup2 : Ordinal} → odef A sup2 → ({x : Ordinal} → odef (UnionCF A f supf1 z) x → (x ≡ sup2) ∨ (x << sup2)) → MinSUP.sup m o≤ sup2 ms01 {sup2} us P = MinSUP.minsup m us ? - ... | tri> ¬a ¬b px<z = record { tsup = record { sup = sp1 ; asm = MinSUP.asm sup1 + ... | tri> ¬a ¬b px<z = record { tsup = record { sup = sp1 ; asm = MinSUP.axm sup1 ; x≤sup = ms00 ; minsup = ms01 } ; tsup=sup = sf1=sp1 px<z } where m = sup1 ms00 : {x : Ordinal} → odef (UnionCF A f supf1 z) x → (x ≡ MinSUP.sup m) ∨ (x << MinSUP.sup m) @@ -1172,7 +1157,7 @@ zc177 = ZChain.supfmax zc px<z -- px o< z, px o< supf0 px zc11 : {z : Ordinal} → odef (UnionCF A f supf0 x) z → odef pchainpx z - zc11 {z} ⟪ az , cp ⟫ = ? where + zc11 {z} ⟪ az , cp ⟫ = ? record STMP {z : Ordinal} (z≤x : z o≤ x ) : Set (Level.suc n) where field @@ -1194,7 +1179,7 @@ zc33 : supf0 z ≡ & (SUP.sup zc32) zc33 = ? -- trans (sym (supfx (o≤-refl0 (sym zc30)))) ( ZChain.supf-is-minsup zc o≤-refl ) zc36 : ¬ (supf0 px ≡ px) → STMP z≤x - zc36 ne = ? -- record { tsup = record { sup = SUP.sup zc32 ; as = SUP.as zc32 ; x≤sup = zc34 ne } ; tsup=sup = zc33 } + zc36 ne = ? -- record { tsup = record { sup = SUP.sup zc32 ; as = SUP.ax zc32 ; x≤sup = zc34 ne } ; tsup=sup = zc33 } zc35 : STMP z≤x zc35 with trio< (supf0 px) px ... | tri< a ¬b ¬c = zc36 ¬b @@ -1203,10 +1188,10 @@ zc37 : MinSUP A (UnionCF A f supf0 z) zc37 = record { sup = ? ; asm = ? ; x≤sup = ? ; minsup = ? } sup=u : {b : Ordinal} (ab : odef A b) → - b o≤ x → IsMinSUP A (UnionCF A f supf0 b) supf0 ab ∧ (¬ HasPrev A (UnionCF A f supf0 b) f b ) → supf0 b ≡ b + b o≤ x → IsMinSUP A (UnionCF A f supf0 b) b ∧ (¬ HasPrev A (UnionCF A f supf0 b) f b ) → supf0 b ≡ b sup=u {b} ab b≤x is-sup with trio< b px - ... | tri< a ¬b ¬c = ZChain.sup=u zc ab (o<→≤ a) ⟪ record { x≤sup = λ lt → IsMinSUP.x≤sup (proj1 is-sup) lt } , proj2 is-sup ⟫ - ... | tri≈ ¬a b ¬c = ZChain.sup=u zc ab (o≤-refl0 b) ⟪ record { x≤sup = λ lt → IsMinSUP.x≤sup (proj1 is-sup) lt } , proj2 is-sup ⟫ + ... | tri< a ¬b ¬c = ZChain.sup=u zc ab (o<→≤ a) ⟪ record { x≤sup = λ lt → IsMinSUP.x≤sup (proj1 is-sup) lt } , ? ⟫ + ... | tri≈ ¬a b ¬c = ZChain.sup=u zc ab (o≤-refl0 b) ⟪ record { x≤sup = λ lt → IsMinSUP.x≤sup (proj1 is-sup) lt } , ? ⟫ ... | tri> ¬a ¬b px<b = ? where zc30 : x ≡ b zc30 with osuc-≡< b≤x @@ -1254,14 +1239,14 @@ uz01 : Tri (* (& a) < * (& b)) (* (& a) ≡ * (& b)) (* (& b) < * (& a) ) uz01 with trio< (IChain.i ia) (IChain.i ib) ... | tri< ia<ib ¬b ¬c with - <=-trans (ZChain.order (pzc (ob<x lim (IChain.i<x ib))) ia<ib (ifc≤ ia ib (o<→≤ ia<ib))) (≤to<= (s≤fc _ f mf (IChain.fc ib))) + ≤-ftrans (ZChain.order (pzc (ob<x lim (IChain.i<x ib))) ia<ib (ifc≤ ia ib (o<→≤ ia<ib))) (s≤fc _ f mf (IChain.fc ib)) ... | case1 eq1 = tri≈ (λ lt → ⊥-elim (<-irr (case1 (sym ct00)) lt)) ct00 (λ lt → ⊥-elim (<-irr (case1 ct00) lt)) where ct00 : * (& a) ≡ * (& b) ct00 = cong (*) eq1 ... | case2 lt = tri< lt (λ eq → <-irr (case1 (sym eq)) lt) (λ lt1 → <-irr (case2 lt) lt1) uz01 | tri≈ ¬a ia=ib ¬c = fcn-cmp _ f mf (IChain.fc ia) (subst (λ k → FClosure A f k (& b)) (sym (iceq ia=ib)) (IChain.fc ib)) uz01 | tri> ¬a ¬b ib<ia with - <=-trans (ZChain.order (pzc (ob<x lim (IChain.i<x ia))) ib<ia (ifc≤ ib ia (o<→≤ ib<ia))) (≤to<= (s≤fc _ f mf (IChain.fc ia))) + ≤-ftrans (ZChain.order (pzc (ob<x lim (IChain.i<x ia))) ib<ia (ifc≤ ib ia (o<→≤ ib<ia))) (s≤fc _ f mf (IChain.fc ia)) ... | case1 eq1 = tri≈ (λ lt → ⊥-elim (<-irr (case1 (sym ct00)) lt)) ct00 (λ lt → ⊥-elim (<-irr (case1 ct00) lt)) where ct00 : * (& a) ≡ * (& b) ct00 = sym (cong (*) eq1) @@ -1302,19 +1287,12 @@ zc11 : {z : Ordinal } → odef pchain z → odef pchainx z zc11 {z} lt = ? - sfpx<=spu : {z : Ordinal } → supf1 z <= spu - sfpx<=spu {z} with trio< z x + sfpx≤spu : {z : Ordinal } → supf1 z ≤ spu + sfpx≤spu {z} with trio< z x ... | tri< a ¬b ¬c = MinSUP.x≤sup usup ? -- (init (ZChain.asupf (pzc (ob<x lim a)) ) refl ) ... | tri≈ ¬a b ¬c = case1 refl ... | tri> ¬a ¬b c = case1 refl - sfpx≤spu : {z : Ordinal } → supf1 z o≤ spu - sfpx≤spu {z} with trio< z x - ... | tri< a ¬b ¬c = subst ( λ k → k o≤ spu) ? - ( MinSUP.minsup (ZChain.minsup ? o≤-refl) ? (λ {x} ux → MinSUP.x≤sup ? ?) ) - ... | tri≈ ¬a b ¬c = ? - ... | tri> ¬a ¬b c = ? - supf-mono : {x y : Ordinal } → x o≤ y → supf1 x o≤ supf1 y supf-mono {x} {y} x≤y with trio< y x ... | tri< a ¬b ¬c = ? @@ -1367,7 +1345,7 @@ ... | ⟪ az , cp ⟫ = ⟪ az , ? ⟫ sup=u : {b : Ordinal} (ab : odef A b) → - b o≤ x → IsMinSUP A (UnionCF A f supf1 b) supf1 ab ∧ (¬ HasPrev A (UnionCF A f supf1 b) f b ) → supf1 b ≡ b + b o≤ x → IsMinSUP A (UnionCF A f supf1 b) b ∧ (¬ HasPrev A (UnionCF A f supf1 b) f b ) → supf1 b ≡ b sup=u {b} ab b≤x is-sup with osuc-≡< b≤x ... | case1 b=x = ? where zc31 : spu o≤ b @@ -1396,9 +1374,9 @@ sp : Ordinal sp = MinSUP.sup sp1 asp : odef A sp - asp = MinSUP.asm sp1 + asp = MinSUP.axm sp1 z10 : {a b : Ordinal } → (ca : odef chain a ) → b o< (& A) → (ab : odef A b ) - → HasPrev A chain f b ∨ IsSUP A (UnionCF A f (ZChain.supf zc) b) ab + → HasPrev A chain f b ∨ IsSUP A (UnionCF A f (ZChain.supf zc) b) b → * a < * b → odef chain b z10 = ZChain1.is-max (SZ1 f mf mf< as0 zc (& A) o≤-refl ) z22 : sp o< & A @@ -1411,7 +1389,7 @@ z13 with MinSUP.x≤sup sp1 ( ZChain.chain∋init zc ) ... | case1 eq = ⊥-elim ( ne eq ) ... | case2 lt = lt - z19 : IsSUP A (UnionCF A f (ZChain.supf zc) sp) asp + z19 : IsSUP A (UnionCF A f (ZChain.supf zc) sp) sp z19 = record { x≤sup = z20 } where z20 : {y : Ordinal} → odef (UnionCF A f (ZChain.supf zc) sp) y → (y ≡ sp) ∨ (y << sp) z20 {y} zy with MinSUP.x≤sup sp1 @@ -1422,8 +1400,8 @@ z14 with ZChain.f-total zc (subst (λ k → odef chain k) (sym &iso) (ZChain.f-next zc z12 )) (subst (λ k → odef chain k) (sym &iso) z12 ) ... | tri< a ¬b ¬c = ⊥-elim z16 where z16 : ⊥ - z16 with proj1 (mf (( MinSUP.sup sp1)) ( MinSUP.asm sp1 )) - ... | case1 eq = ⊥-elim (¬b (sym eq) ) + z16 with proj1 (mf (( MinSUP.sup sp1)) ( MinSUP.axm sp1 )) + ... | case1 eq = ⊥-elim (¬b (sym (cong (*) eq ) )) ... | case2 lt = ⊥-elim (¬c lt ) ... | tri≈ ¬a b ¬c = subst₂ (λ j k → j ≡ k ) &iso &iso ( cong (&) b ) ... | tri> ¬a ¬b c = ⊥-elim z17 where @@ -1453,10 +1431,10 @@ z04 : (nmx : ¬ Maximal A ) → (zc : ZChain A (cf nmx) (cf-is-≤-monotonic nmx) as0 (& A)) → ⊥ z04 nmx zc = <-irr0 {* (cf nmx c)} {* c} - (subst (λ k → odef A k ) (sym &iso) (proj1 (is-cf nmx (MinSUP.asm msp1 )))) - (subst (λ k → odef A k) (sym &iso) (MinSUP.asm msp1) ) + (subst (λ k → odef A k ) (sym &iso) (proj1 (is-cf nmx (MinSUP.axm msp1 )))) + (subst (λ k → odef A k) (sym &iso) (MinSUP.axm msp1) ) (case1 ( cong (*)( fixpoint (cf nmx) (cf-is-≤-monotonic nmx ) (cf-is-<-monotonic nmx ) zc msp1 ))) -- x ≡ f x ̄ - (proj1 (cf-is-<-monotonic nmx c (MinSUP.asm msp1 ))) where -- x < f x + (proj1 (cf-is-<-monotonic nmx c (MinSUP.axm msp1 ))) where -- x < f x supf = ZChain.supf zc msp1 : MinSUP A (ZChain.chain zc)