Mercurial > hg > Members > kono > Proof > ZF-in-agda
changeset 1005:2808471040c0
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 18 Nov 2022 23:54:13 +0900 |
parents | 5c62c97adac9 |
children | ac182ad5bfd2 |
files | src/zorn.agda |
diffstat | 1 files changed, 50 insertions(+), 173 deletions(-) [+] |
line wrap: on
line diff
--- a/src/zorn.agda Fri Nov 18 19:37:18 2022 +0900 +++ b/src/zorn.agda Fri Nov 18 23:54:13 2022 +0900 @@ -431,7 +431,7 @@ sup=u : {b : Ordinal} → (ab : odef A b) → b o≤ z → IsSUP A (UnionCF A f mf ay supf b) ab ∧ (¬ HasPrev A (UnionCF A f mf ay supf b) f b ) → supf b ≡ b cfcs : (mf< : <-monotonic-f A f) - {a b w : Ordinal } → a o< b → b o≤ z → FClosure A f (supf a) w → odef (UnionCF A f mf ay supf b) w + {a b w : Ordinal } → a o< b → b o≤ z → supf a o< z → FClosure A f (supf a) w → odef (UnionCF A f mf ay supf b) w asupf : {x : Ordinal } → odef A (supf x) supf-mono : {x y : Ordinal } → x o≤ y → supf x o≤ supf y @@ -441,15 +441,6 @@ minsup : {x : Ordinal } → x o≤ z → MinSUP A (UnionCF A f mf ay supf x) supf-is-minsup : {x : Ordinal } → (x≤z : x o≤ z) → supf x ≡ MinSUP.sup ( minsup x≤z ) - -- cfcs implirs supf-mono and supf-< - -- ¬ ( HasPreb A A f (supf b) - -- supf-mono' : {x y : Ordinal } → x o≤ y → supf x o≤ supf y - -- supf-mono' {x} {y} x≤y with osuc-≡< x≤y - -- ... | case1 eq = o≤-refl0 ( cong supf eq ) - -- ... | case2 lt with cfcs lt ? (init asupf refl) - -- ... | ⟪ ua , ch-init fc ⟫ = ? - -- ... | ⟪ ua , ch-is-sup u u<x is-sup fc ⟫ = ? - chain : HOD chain = UnionCF A f mf ay supf z chain⊆A : chain ⊆' A @@ -492,9 +483,12 @@ ... | case1 eq = ⊥-elim ( o<¬≡ (sym eq) sx<sy ) ... | case2 lt = ⊥-elim ( o<> sx<sy lt ) + supf<A : {x : Ordinal } → supf x o< & A + supf<A = z09 asupf + csupf : (mf< : <-monotonic-f A f) {b : Ordinal } - → supf b o< supf z → odef (UnionCF A f mf ay supf z) (supf b) -- supf z is not an element of this chain - csupf mf< {b} sb<sz = cfcs mf< (supf-inject sb<sz) o≤-refl (init asupf refl) + → supf b o< supf z → supf b o< z → odef (UnionCF A f mf ay supf z) (supf b) -- supf z is not an element of this chain + csupf mf< {b} sb<sz sb<z = cfcs mf< (supf-inject sb<sz) o≤-refl sb<z (init asupf refl) fcy<sup : {u w : Ordinal } → u o≤ z → FClosure A f y w → (w ≡ supf u ) ∨ ( w << supf u ) -- different from order because y o< supf fcy<sup {u} {w} u≤z fc with MinSUP.x≤sup (minsup u≤z) ⟪ subst (λ k → odef A k ) (sym &iso) (A∋fc {A} y f mf fc) @@ -517,6 +511,20 @@ fsp≤sp : f sp <= sp fsp≤sp = subst (λ k → f k <= sp ) (sym (HasPrev.x=fy hp)) im00 + csupf-idem : (mf< : <-monotonic-f A f) {b : Ordinal } → b o≤ z → supf b o< z → supf (supf b) ≡ supf b + csupf-idem mf< {b} b≤z sfb<x = z52 where + z54 : {w : Ordinal} → odef (UnionCF A f mf ay supf (supf b)) w → (w ≡ supf b) ∨ (w << supf b) + z54 {w} ⟪ aw , ch-init fc ⟫ = fcy<sup b≤z fc + z54 {w} ⟪ aw , ch-is-sup u u<x is-sup fc ⟫ = subst (λ k → (w ≡ k) ∨ (w << k )) + (sym (supf-is-minsup b≤z)) + (MinSUP.x≤sup (minsup b≤z) (cfcs mf< u<b b≤z su<z fc )) where + u<b : u o< b + u<b = supf-inject ( subst (λ k → k o< supf b) (sym (ChainP.supu=u is-sup)) u<x ) + su<z : supf u o< z + su<z = subst (λ k → k o< z ) (sym (ChainP.supu=u is-sup)) ( ordtrans<-≤ u<b b≤z ) + z52 : supf (supf b) ≡ supf b + z52 = sup=u asupf (o<→≤ sfb<x) ⟪ record { x≤sup = z54 } , IsMinSUP→NotHasPrev asupf z54 ( λ ax → proj1 (mf< _ ax)) ⟫ + UChain⊆ : ( A : HOD ) ( f : Ordinal → Ordinal ) (mf : ≤-monotonic-f A f) {z y : Ordinal} (ay : odef A y) { supf supf1 : Ordinal → Ordinal } → (supf-mono : {x y : Ordinal } → x o≤ y → supf x o≤ supf y ) @@ -698,7 +706,7 @@ s<z : s o< & A s<z = ordtrans s<b b<z zc04 : odef (UnionCF A f mf ay supf (& A)) (supf s) - zc04 = ZChain.csupf zc mf< (ordtrans<-≤ ss<sb (ZChain.supf-mono zc (o<→≤ b<z))) + zc04 = ZChain.csupf zc mf< (ordtrans<-≤ ss<sb (ZChain.supf-mono zc (o<→≤ b<z))) (ZChain.supf<A zc) zc05 : odef (UnionCF A f mf ay supf b) (supf s) zc05 with zc04 ... | ⟪ as , ch-init fc ⟫ = ⟪ as , ch-init fc ⟫ @@ -760,7 +768,7 @@ m11 : {z : Ordinal} → FClosure A f (supf b) z → (z ≡ ZChain.supf zc x) ∨ (z << ZChain.supf zc x) m11 {z} fc = subst (λ k → (z ≡ k) ∨ (z << k)) (sym m18) ( MinSUP.x≤sup m17 m13 ) where m13 : odef (UnionCF A f mf ay supf x) z - m13 = ZChain.cfcs zc mf< b<x x≤A fc + m13 = ZChain.cfcs zc mf< b<x x≤A (ZChain.supf<A zc) fc ... | no lim = record { is-max = is-max ; order = order } where is-max : {a : Ordinal} {b : Ordinal} → odef (UnionCF A f mf ay supf x) a → @@ -798,7 +806,7 @@ m11 : {z : Ordinal} → FClosure A f (supf b) z → (z ≡ ZChain.supf zc x) ∨ (z << ZChain.supf zc x) m11 {z} fc = subst (λ k → (z ≡ k) ∨ (z << k)) (sym m18) ( MinSUP.x≤sup m17 m13 ) where m13 : odef (UnionCF A f mf ay supf x) z - m13 = ZChain.cfcs zc mf< b<x x≤A fc + m13 = ZChain.cfcs zc mf< b<x x≤A (ZChain.supf<A zc) fc uchain : ( f : Ordinal → Ordinal ) → (mf : ≤-monotonic-f A f ) {y : Ordinal} (ay : odef A y) → HOD uchain f mf {y} ay = record { od = record { def = λ x → FClosure A f y x } ; odmax = & A ; <odmax = @@ -823,22 +831,6 @@ ax : odef A x is-sup : IsMinSUP A B f ax - supf-fc : ( f : Ordinal → Ordinal ) → (mf : ≤-monotonic-f A f ) {y : Ordinal} (ay : odef A y) → Ordinal → Ordinal - supf-fc f mf {y} ay x = TransFinite0 ind x where - ind : (x : Ordinal) → ((z : Ordinal) → z o< x → Ordinal ) → Ordinal - ind x prev with trio< x o∅ - ... | tri< a ¬b ¬c = ? - ... | tri≈ ¬a b ¬c = MinSUP.sup (ysup f mf ay) - ... | tri> ¬a ¬b 0<x with Oprev-p x - ... | yes op = ? where - px = Oprev.oprev op - sfc00 : Ordinal - sfc00 with trio< (prev px ? ) (MinSUP.sup (ysup f mf ? )) - ... | tri< a ¬b ¬c = ? - ... | tri≈ ¬a b ¬c = ? - ... | tri> ¬a ¬b c = ? - ... | no lim = ? - -- -- create all ZChains under o< x -- @@ -939,34 +931,16 @@ -- supf0 px o≤ sp1 -- - --- x ≦ supf px ≦ x ≦ sp ≦ x - -- x may apper any place - - -- x < sp → supf x = supf px - -- x ≡ sp → supf x = sp - -- sp < x → supf x = sp ≡ supf px - -- UnionCF A f mf ay supf px ⊆ UnionCF A f mf ay supf x - - -- supf x does not affect UnionCF A f mf ay supf x - - -- supf px < px → UnionCF A f mf ay supf px ≡ UnionCF A f mf ay supf x - -- supf px ≡ px → UnionCF A f mf ay supf px ⊂ UnionCF A f mf ay supf x ≡ pchainx - -- x < supf px → UnionCF A f mf ay supf px ≡ UnionCF A f mf ay supf x - zc43 : (x : Ordinal ) → ( x o< sp1 ) ∨ ( sp1 o≤ x ) zc43 x with trio< x sp1 ... | tri< a ¬b ¬c = case1 a ... | tri≈ ¬a b ¬c = case2 (o≤-refl0 (sym b)) ... | tri> ¬a ¬b c = case2 (o<→≤ c) - + zc41 : ZChain A f mf ay x zc41 with zc43 x zc41 | (case2 sp≤x ) = record { supf = supf1 ; sup=u = ? ; asupf = ? ; supf-mono = supf1-mono ; supf-< = ? ; supfmax = ? ; minsup = ? ; supf-is-minsup = ? ; cfcs = ? } where - -- supf0 px is included in the chain of sp1 - -- supf0 px ≡ px ∧ supf0 px o< sp1 → ( UnionCF A f mf ay supf0 px ∪ FClosure (supf0 px) ) ≡ UnionCF supf1 x - -- else UnionCF A f mf ay supf0 px ≡ UnionCF supf1 x - -- supf1 x ≡ sp1, which is not included now supf1 : Ordinal → Ordinal supf1 z with trio< z px @@ -1033,13 +1007,19 @@ -- this is a kind of maximality, so we cannot prove this without <-monotonicity -- + -- supf0 a ≡ px we cannot use previous cfcs + -- supf0 a ≡ supf0 (supf0 a) ≡ supf0 px o< x + -- supf0 a o< sp1 ≡ x + -- sp1 ≡ px ≡ supf0 a o< x + -- sp1 o< px ≡ supf0 a → ⊥ + -- cfcs : (mf< : <-monotonic-f A f) {a b w : Ordinal } - → a o< b → b o≤ x → FClosure A f (supf1 a) w → odef (UnionCF A f mf ay supf1 b) w - cfcs mf< {a} {b} {w} a<b b≤x fc with trio< a px + → a o< b → b o≤ x → supf1 a o< x → FClosure A f (supf1 a) w → odef (UnionCF A f mf ay supf1 b) w + cfcs mf< {a} {b} {w} a<b b≤x sa<x fc with trio< a px ... | tri< a<px ¬b ¬c = z50 where z50 : odef (UnionCF A f mf ay supf1 b) w z50 with osuc-≡< b≤x - ... | case2 lt with ZChain.cfcs zc mf< a<b (subst (λ k → b o< k) (sym (Oprev.oprev=x op)) lt) fc + ... | case2 lt with ZChain.cfcs zc mf< a<b (subst (λ k → b o< k) (sym (Oprev.oprev=x op)) lt) ? fc ... | ⟪ az , ch-init fc ⟫ = ⟪ az , ch-init fc ⟫ ... | ⟪ az , ch-is-sup u u<b is-sup fc ⟫ = ⟪ az , ch-is-sup u u<b cp1 (fcpu fc u≤px ) ⟫ where -- u o< px → u o< b ? u≤px : u o≤ px @@ -1053,7 +1033,7 @@ (sym (sf=eq u<x)) s<u) (subst (λ k → FClosure A f k z ) (sym (sf=eq (ordtrans (supf-inject0 supf1-mono s<u) u<x) )) fc )) ; supu=u = trans (sym (sf=eq u<x)) (ChainP.supu=u is-sup) } - z50 | case1 eq with ZChain.cfcs zc mf< a<px o≤-refl fc + z50 | case1 eq with ZChain.cfcs zc mf< a<px o≤-refl ? fc ... | ⟪ az , ch-init fc ⟫ = ⟪ az , ch-init fc ⟫ ... | ⟪ az , ch-is-sup u u<px is-sup fc ⟫ = ⟪ az , ch-is-sup u u<b cp1 (fcpu fc (o<→≤ u<px)) ⟫ where -- u o< px → u o< b ? u<b : u o< b @@ -1090,7 +1070,7 @@ z54 {z} ⟪ az , ch-init fc ⟫ = ZChain.fcy<sup zc o≤-refl fc z54 {z} ⟪ az , ch-is-sup u u<b is-sup fc ⟫ = subst (λ k → (z ≡ k) ∨ (z << k )) (sym (ZChain.supf-is-minsup zc o≤-refl)) - (MinSUP.x≤sup (ZChain.minsup zc o≤-refl) (ZChain.cfcs zc mf< u<px o≤-refl fc )) where + (MinSUP.x≤sup (ZChain.minsup zc o≤-refl) (ZChain.cfcs zc mf< u<px o≤-refl ? fc )) where u<px : u o< px u<px = ZChain.supf-inject zc ( subst (λ k → k o< supf0 px) (sym (ChainP.supu=u is-sup)) u<b ) -- u<b : u o< supf0 px @@ -1105,7 +1085,7 @@ order {s} {z1} ss<spx fcs = subst (λ k → (z1 ≡ k) ∨ (z1 << k )) (trans (sym (ZChain.supf-is-minsup zc spx≤px )) (sym (sf1=sf0 spx≤px) ) ) (MinSUP.x≤sup (ZChain.minsup zc spx≤px) (ZChain.cfcs zc mf< (supf-inject0 supf1-mono ss<spx) - spx≤px (fcup fcs (ordtrans (supf-inject0 supf1-mono ss<spx) spx≤px ) ))) + spx≤px ? (fcup fcs (ordtrans (supf-inject0 supf1-mono ss<spx) spx≤px ) ))) cp1 : ChainP A f mf ay supf1 spx cp1 = record { fcy<sup = λ {z} fc → subst (λ k → (z ≡ k) ∨ (z << k )) (sym (sf1=sf0 spx≤px )) ( ZChain.fcy<sup zc spx≤px fc ) @@ -1186,44 +1166,21 @@ zc41 | (case1 x<sp ) = record { supf = supf0 ; sup=u = ? ; asupf = ? ; supf-mono = ? ; supf-< = ? - ; supfmax = ? ; minsup = ? ; supf-is-minsup = ? ; cfcs = ? } where + ; supfmax = ? ; minsup = ? ; supf-is-minsup = ? ; cfcs = cfcs } where -- supf0 px not is included by the chain -- supf1 x ≡ supf0 px because of supfmax - supf1 : Ordinal → Ordinal - supf1 z with trio< z px - ... | tri< a ¬b ¬c = supf0 z - ... | tri≈ ¬a b ¬c = supf0 z - ... | tri> ¬a ¬b c = supf0 px - - sf1=sf0 : {z : Ordinal } → z o< px → supf1 z ≡ supf0 z - sf1=sf0 {z} z<px with trio< z px - ... | tri< a ¬b ¬c = refl - ... | tri≈ ¬a b ¬c = ⊥-elim ( ¬a z<px ) - ... | tri> ¬a ¬b c = ⊥-elim ( ¬a z<px ) - - sf=eq : { z : Ordinal } → z o< x → supf0 z ≡ supf1 z - sf=eq {z} z<x with trio< z px - ... | tri< a ¬b ¬c = refl - ... | tri≈ ¬a b ¬c = refl - ... | tri> ¬a ¬b c = ⊥-elim ( ¬p<x<op ⟪ c , subst (λ k → z o< k) (sym (Oprev.oprev=x op)) z<x ⟫ ) - sf≤ : { z : Ordinal } → x o≤ z → supf0 x o≤ supf1 z - sf≤ {z} x≤z with trio< z px - ... | tri< a ¬b ¬c = ⊥-elim ( o<> (osucc a) (subst (λ k → k o≤ z) (sym (Oprev.oprev=x op)) x≤z ) ) - ... | tri≈ ¬a b ¬c = ⊥-elim ( o≤> x≤z (subst (λ k → k o< x ) (sym b) px<x )) - ... | tri> ¬a ¬b c = o≤-refl0 ( ZChain.supfmax zc px<x ) - - sf=eq0 : { z : Ordinal } → z o< x → supf1 z ≡ supf0 z - sf=eq0 {z} z<x with trio< z px - ... | tri< a ¬b ¬c = refl - ... | tri≈ ¬a b ¬c = refl - ... | tri> ¬a ¬b c = ⊥-elim ( ¬p<x<op ⟪ c , subst (λ k → z o< k) (sym (Oprev.oprev=x op)) z<x ⟫ ) - sf≤0 : { z : Ordinal } → x o≤ z → supf1 x o≤ supf0 z - sf≤0 {z} x≤z with trio< z px - ... | tri< a ¬b ¬c = ⊥-elim ( o<> (osucc a) (subst (λ k → k o≤ z) (sym (Oprev.oprev=x op)) x≤z ) ) - ... | tri≈ ¬a b ¬c = ⊥-elim ( o≤> x≤z (subst (λ k → k o< x ) (sym b) px<x )) - ... | tri> ¬a ¬b c = o≤-refl0 ? -- (sym ( ZChain.supfmax zc px<x )) + cfcs : (mf< : <-monotonic-f A f) {a b w : Ordinal } + → a o< b → b o≤ x → supf0 a o< x → FClosure A f (supf0 a) w → odef (UnionCF A f mf ay supf0 b) w + cfcs mf< {a} {b} {w} a<b b≤x sa<x fc with trio< b px + ... | tri< a ¬b ¬c = ZChain.cfcs zc mf< a<b (o<→≤ a) ? fc + ... | tri≈ ¬a refl ¬c = ZChain.cfcs zc mf< a<b o≤-refl ? fc + ... | tri> ¬a ¬b px<b with trio< a px + ... | tri< a ¬b ¬c = chain-mono f mf ay (ZChain.supf zc) (ZChain.supf-mono zc) (o<→≤ px<b) ( ZChain.cfcs zc mf< a o≤-refl ? fc ) + ... | tri> ¬a ¬b c = ⊥-elim ( o≤> ? c ) + ... | tri≈ ¬a refl ¬c = ? -- supf0 px o< x → odef (UnionCF A f mf ay supf0 x) (supf0 px) + -- x o≤ supf0 px o≤ sp → zc17 : {z : Ordinal } → supf0 z o≤ supf0 px zc17 {z} with trio< z px @@ -1233,88 +1190,10 @@ zc177 : supf0 z ≡ supf0 px zc177 = ZChain.supfmax zc px<z -- px o< z, px o< supf0 px - supf-mono1 : {z w : Ordinal } → z o≤ w → supf1 z o≤ supf1 w - supf-mono1 {z} {w} z≤w with trio< w px - ... | tri< a ¬b ¬c = subst₂ (λ j k → j o≤ k ) (sym (sf1=sf0 (ordtrans≤-< z≤w a))) refl ( supf-mono z≤w ) - ... | tri≈ ¬a refl ¬c with trio< z px - ... | tri< a ¬b ¬c = zc17 - ... | tri≈ ¬a refl ¬c = o≤-refl - ... | tri> ¬a ¬b c = o≤-refl - supf-mono1 {z} {w} z≤w | tri> ¬a ¬b px<w with trio< z px - ... | tri< a ¬b ¬c = zc17 - ... | tri≈ ¬a b ¬c = o≤-refl0 (cong supf0 b) -- z=px supf1 z = supf0 z, supf1 w = supf0 px - ... | tri> ¬a ¬b c = o≤-refl - - pchain1 : HOD - pchain1 = UnionCF A f mf ay supf1 x - - zc10 : {z : Ordinal} → OD.def (od pchain) z → OD.def (od pchain1) z - zc10 {z} ⟪ az , ch-init fc ⟫ = ⟪ az , ch-init fc ⟫ - zc10 {z} ⟪ az , ch-is-sup u1 u1<x u1-is-sup fc ⟫ = ⟪ az , ch-is-sup u1 ? ? ? ⟫ - - zc111 : {z : Ordinal} → z o< px → OD.def (od pchain1) z → OD.def (od pchain) z - zc111 {z} z<px ⟪ az , ch-init fc ⟫ = ⟪ az , ch-init fc ⟫ - zc111 {z} z<px ⟪ az , ch-is-sup u1 u1<x u1-is-sup fc ⟫ = ⟪ az , ch-is-sup u1 ? ? ? ⟫ - - zc11 : (¬ xSUP (UnionCF A f mf ay supf0 px) f x ) ∨ (HasPrev A pchain f x ) - → {z : Ordinal} → OD.def (od pchain1) z → OD.def (od pchain) z ∨ ( (supf0 px ≡ px) ∧ FClosure A f px z ) - zc11 P {z} ⟪ az , ch-init fc ⟫ = case1 ⟪ az , ch-init fc ⟫ - zc11 P {z} ⟪ az , ch-is-sup u1 u1<x u1-is-sup fc ⟫ with trio< u1 px - ... | tri< u1<px ¬b ¬c = case1 ⟪ az , ch-is-sup u1 ? ? fc ⟫ - ... | tri≈ ¬a eq ¬c = case2 ⟪ subst (λ k → supf0 k ≡ k) eq s1u=u , subst (λ k → FClosure A f k z) zc12 ? ⟫ where - s1u=u : supf0 u1 ≡ u1 - s1u=u = ? -- ChainP.supu=u u1-is-sup - zc12 : supf0 u1 ≡ px - zc12 = trans s1u=u eq - zc11 (case1 ¬sp=x) {z} ⟪ az , ch-is-sup u1 u1<x u1-is-sup fc ⟫ | tri> ¬a ¬b px<u = ⊥-elim (¬sp=x zcsup) where - eq : u1 ≡ x - eq with trio< u1 x - ... | tri< a ¬b ¬c = ⊥-elim ( ¬p<x<op ⟪ px<u , subst (λ k → u1 o< k ) (sym (Oprev.oprev=x op )) a ⟫ ) - ... | tri≈ ¬a b ¬c = b - ... | tri> ¬a ¬b c = ⊥-elim ( o<> u1<x ? ) - s1u=x : supf0 u1 ≡ x - s1u=x = trans ? eq - zc13 : osuc px o< osuc u1 - zc13 = o≤-refl0 ( trans (Oprev.oprev=x op) (sym eq ) ) - x≤sup : {w : Ordinal} → odef (UnionCF A f mf ay supf0 px) w → (w ≡ x) ∨ (w << x) - x≤sup {w} ⟪ az , ch-init {w} fc ⟫ = subst (λ k → (w ≡ k) ∨ (w << k)) s1u=x ? - x≤sup {w} ⟪ az , ch-is-sup u u<x is-sup fc ⟫ with osuc-≡< ( supf-mono (ordtrans (o<→≤ u<x) ? )) - ... | case1 eq1 = ⊥-elim ( o<¬≡ zc14 ? ) where - zc14 : u ≡ osuc px - zc14 = begin - u ≡⟨ sym ( ChainP.supu=u is-sup) ⟩ - supf0 u ≡⟨ ? ⟩ - supf0 u1 ≡⟨ s1u=x ⟩ - x ≡⟨ sym (Oprev.oprev=x op) ⟩ - osuc px ∎ where open ≡-Reasoning - ... | case2 lt = subst (λ k → (w ≡ k) ∨ (w << k)) s1u=x ? - zc12 : supf0 x ≡ u1 - zc12 = subst (λ k → supf0 k ≡ u1) eq ? - zcsup : xSUP (UnionCF A f mf ay supf0 px) f x - zcsup = record { ax = subst (λ k → odef A k) (trans zc12 eq) (ZChain.asupf zc) - ; is-sup = record { x≤sup = x≤sup ; minsup = ? } } - zc11 (case2 hp) {z} ⟪ az , ch-is-sup u1 u1<x u1-is-sup fc ⟫ | tri> ¬a ¬b px<u = case1 ? where - eq : u1 ≡ x - eq with trio< u1 x - ... | tri< a ¬b ¬c = ⊥-elim ( ¬p<x<op ⟪ px<u , subst (λ k → u1 o< k ) (sym (Oprev.oprev=x op )) a ⟫ ) - ... | tri≈ ¬a b ¬c = b - ... | tri> ¬a ¬b c = ⊥-elim ( o<> u1<x ? ) - zc20 : {z : Ordinal} → FClosure A f (supf0 u1) z → OD.def (od pchain) z - zc20 {z} (init asu su=z ) = zc13 where - zc14 : x ≡ z - zc14 = begin - x ≡⟨ sym eq ⟩ - u1 ≡⟨ sym ? ⟩ - supf0 u1 ≡⟨ su=z ⟩ - z ∎ where open ≡-Reasoning - zc13 : odef pchain z - zc13 = subst (λ k → odef pchain k) (trans (sym (HasPrev.x=fy hp)) zc14) ( ZChain.f-next zc (HasPrev.ay hp) ) - zc20 {.(f w)} (fsuc w fc) = ZChain.f-next zc (zc20 fc) - record STMP {z : Ordinal} (z≤x : z o≤ x ) : Set (Level.suc n) where field - tsup : MinSUP A (UnionCF A f mf ay supf1 z) - tsup=sup : supf1 z ≡ MinSUP.sup tsup + tsup : MinSUP A (UnionCF A f mf ay supf0 z) + tsup=sup : supf0 z ≡ MinSUP.sup tsup sup : {z : Ordinal} → (z≤x : z o≤ x ) → STMP z≤x sup {z} z≤x with trio< z px @@ -1327,9 +1206,7 @@ ... | case2 z<x = ⊥-elim (¬p<x<op ⟪ px<z , subst (λ k → z o< k ) (sym (Oprev.oprev=x op)) z<x ⟫ ) zc32 = ZChain.sup zc o≤-refl zc34 : ¬ (supf0 px ≡ px) → {w : HOD} → UnionCF A f mf ay supf0 z ∋ w → (w ≡ SUP.sup zc32) ∨ (w < SUP.sup zc32) - zc34 ne {w} lt with zc11 ? ⟪ proj1 lt , ? ⟫ - ... | case1 lt = SUP.x≤sup zc32 lt - ... | case2 ⟪ spx=px , fc ⟫ = ⊥-elim ( ne spx=px ) + zc34 ne {w} lt = ? 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