Mercurial > hg > Members > kono > Proof > ZF-in-agda
changeset 1041:f12a9b4066a0
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Sat, 03 Dec 2022 16:57:15 +0900 |
parents | 4b525726f2df |
children | 912ca4abe806 |
files | src/zorn.agda |
diffstat | 1 files changed, 13 insertions(+), 123 deletions(-) [+] |
line wrap: on
line diff
--- a/src/zorn.agda Sat Dec 03 11:48:47 2022 +0900 +++ b/src/zorn.agda Sat Dec 03 16:57:15 2022 +0900 @@ -863,8 +863,7 @@ m14 {z} ⟪ as , ch-is-sup u u<x su=u fc ⟫ = ≤-ftrans (ZChain.order zc o≤-refl u<x fc) sfpx≤sp1 zc41 : ZChain A f mf< ay x - zc41 with zc43 x sp1 - zc41 | (case2 sp≤x ) = record { supf = supf1 ; sup=u = ? ; asupf = asupf1 ; supf-mono = supf1-mono ; order = ? + zc41 = record { supf = supf1 ; sup=u = sup=u ; asupf = asupf1 ; supf-mono = supf1-mono ; order = order ; supfmax = ? ; is-minsup = ? ; cfcs = cfcs } where supf1 : Ordinal → Ordinal @@ -930,20 +929,20 @@ fcpu : {u z : Ordinal } → FClosure A f (supf0 u) z → u o≤ px → FClosure A f (supf1 u) z fcpu {u} {z} fc u≤px = subst (λ k → FClosure A f k z ) (sym (sf1=sf0 u≤px)) fc - sfpx<x : supf0 px o< x - sfpx<x with trio< (supf0 px) x + sfpx<x : sp1 o≤ x → supf0 px o< x + sfpx<x sp1≤x with trio< (supf0 px) x ... | tri< a ¬b ¬c = a ... | 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-≡< m13 ... | case1 eq = eq - ... | case2 lt = ⊥-elim ( o≤> sp≤x (subst (λ k → k o< sp1) spx=x lt )) + ... | case2 lt = ⊥-elim ( o≤> sp1≤x (subst (λ k → k o< sp1) spx=x lt )) 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 m13 sp≤x))) -- x o< supf0 px o≤ sp1 ≤ x + ... | tri> ¬a ¬b c = ⊥-elim ( o<¬≡ refl (ordtrans<-≤ c (OrdTrans m13 sp1≤x ))) -- x o< supf0 px o≤ sp1 ≤ x -- this is a kind of maximality, so we cannot prove this without <-monotonicity -- @@ -1020,12 +1019,12 @@ z53 : odef A w z53 = A∋fc {A} _ f mf fc csupf1 : odef (UnionCF A f ay supf1 b) w - csupf1 = ⟪ z53 , ch-is-sup spx (subst (λ k → spx o< k) (sym b=x) sfpx<x) z52 fc1 ⟫ where + csupf1 = ⟪ z53 , ch-is-sup spx (subst (λ k → spx o< k) (sym b=x) (sfpx<x ?)) z52 fc1 ⟫ where spx = supf0 px spx≤px : supf0 px o≤ px - spx≤px = zc-b<x _ sfpx<x + spx≤px = zc-b<x _ (sfpx<x ?) z52 : supf1 (supf0 px) ≡ supf0 px - z52 = trans (sf1=sf0 (zc-b<x _ sfpx<x)) ( ZChain.supf-idem zc o≤-refl (zc-b<x _ sfpx<x ) ) + z52 = trans (sf1=sf0 (zc-b<x _ (sfpx<x ?))) ( ZChain.supf-idem zc o≤-refl (zc-b<x _ (sfpx<x ?) ) ) fc1 : FClosure A f (supf1 spx) w fc1 = subst (λ k → FClosure A f k w ) (trans (cong supf0 a=px) (sym z52) ) fc ... | 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 @@ -1069,9 +1068,9 @@ z25 : {w : Ordinal } → odef pchainpx w → w ≤ s z25 {w} (case2 fc) = sup ⟪ A∋fc _ f mf fc , ch-is-sup (supf0 px) z28 z27 fc1 ⟫ where z28 : supf0 px o< z -- supf0 px ≡ supf1 px o≤ supf1 x o≤ - z28 = subst (λ k → supf0 px o< k) (sym z=x) sfpx<x + z28 = subst (λ k → supf0 px o< k) (sym z=x) (sfpx<x ?) z29 : supf0 px o≤ px - z29 = zc-b<x _ sfpx<x + z29 = zc-b<x _ (sfpx<x ?) z27 : supf1 (supf0 px) ≡ supf0 px z27 = trans (sf1=sf0 z29) ( ZChain.supf-idem zc o≤-refl z29 ) fc1 : FClosure A f (supf1 (supf0 px)) w @@ -1116,120 +1115,11 @@ zc22 : a o< osuc px zc22 = subst (λ k → a o< k ) (sym (Oprev.oprev=x op)) (ordtrans<-≤ a<b b≤x) - zc41 | (case1 x<sp ) = record { supf = supf0 ; sup=u = ? ; asupf = ZChain.asupf zc ; supf-mono = ZChain.supf-mono zc ; order = ? - ; supfmax = ? ; sup=u = ? ; is-minsup = ? ; cfcs = cfcs } where - - -- supf0 px not is included by the chain - -- supf1 x ≡ supf0 px because of supfmax - - cfcs : {a b w : Ordinal } → a o< b → b o≤ x → supf0 a o< b → FClosure A f (supf0 a) w → odef (UnionCF A f ay supf0 b) w - cfcs {a} {b} {w} a<b b≤x sa<b fc with trio< b px - ... | tri< a ¬b ¬c = ZChain.cfcs zc a<b (o<→≤ a) sa<b fc - ... | tri≈ ¬a refl ¬c = ZChain.cfcs zc a<b o≤-refl sa<b fc - ... | tri> ¬a ¬b px<b = cfcs1 where - x=b : x ≡ b - x=b with trio< x b - ... | tri< a ¬b ¬c = ⊥-elim ( o≤> b≤x a ) - ... | tri≈ ¬a b ¬c = b - ... | tri> ¬a ¬b c = ⊥-elim ( ¬p<x<op ⟪ px<b , zc-b<x _ c ⟫ ) -- px o< b o< x - -- a o< x, supf a o< x - -- a o< px , supf a o< px → odef U w - -- a ≡ px -- supf0 px o< x → odef U w - -- supf a ≡ px -- a o< px → odef U w - -- a ≡ px → supf px ≡ px → odef U w - - cfcs0 : a ≡ px → odef (UnionCF A f ay supf0 b) w - cfcs0 a=px = ⟪ A∋fc {A} _ f mf fc , ? ⟫ where - spx<b : supf0 px o< b - spx<b = subst (λ k → supf0 k o< b) a=px sa<b - cs01 : supf0 a ≡ supf0 (supf0 px) - cs01 = trans (cong supf0 a=px) ( sym ( ZChain.supf-idem zc o≤-refl - (subst (λ k → supf0 px o< k ) (sym (Oprev.oprev=x op)) (ordtrans<-≤ spx<b b≤x)))) - fc1 : FClosure A f (supf0 (supf0 px)) w - fc1 = subst (λ k → FClosure A f k w) cs01 fc - m : MinSUP A (UnionCF A f ay supf0 (supf0 px)) - m = ZChain.minsup zc (zc-b<x _ (ordtrans<-≤ spx<b b≤x)) - m=sa : MinSUP.sup m ≡ supf0 (supf0 px) - m=sa = begin - MinSUP.sup m ≡⟨ sym ( ZChain.supf-is-minsup zc (zc-b<x _ (ordtrans<-≤ spx<b b≤x) )) ⟩ - supf0 (supf0 px) ∎ where open ≡-Reasoning - - - cfcs1 : odef (UnionCF A f ay supf0 b) w - cfcs1 with trio< a px - ... | tri< a<px ¬b ¬c = cfcs2 where - sa<x : supf0 a o< x - sa<x = ordtrans<-≤ sa<b b≤x - cfcs2 : odef (UnionCF A f ay supf0 b) w - cfcs2 with trio< (supf0 a) px - ... | tri< sa<x ¬b ¬c = chain-mono f mf ay (ZChain.supf zc) (ZChain.supf-mono zc) (o<→≤ px<b) - ( ZChain.cfcs zc a<px o≤-refl sa<x fc ) - ... | tri> ¬a ¬b c = ⊥-elim ( ¬p<x<op ⟪ c , (zc-b<x _ sa<x) ⟫ ) - ... | tri≈ ¬a sa=px ¬c with trio< a px - ... | tri< a<px ¬b ¬c = ⟪ A∋fc {A} _ f mf fc , ? ⟫ where - cs01 : supf0 a ≡ supf0 (supf0 a) - cs01 = sym ( ZChain.supf-idem zc (zc-b<x _ (ordtrans<-≤ a<b b≤x)) (zc-b<x _ (ordtrans<-≤ sa<b b≤x))) - fc1 : FClosure A f (supf0 (supf0 a)) w - fc1 = subst (λ k → FClosure A f k w) cs01 fc - m : MinSUP A (UnionCF A f ay supf0 (supf0 a)) - m = ZChain.minsup zc (o≤-refl0 sa=px) - m=sa : MinSUP.sup m ≡ supf0 (supf0 a) - m=sa = begin - MinSUP.sup m ≡⟨ sym ( ZChain.supf-is-minsup zc (o≤-refl0 sa=px) ) ⟩ - supf0 (supf0 a) ∎ where open ≡-Reasoning - ... | tri≈ ¬a a=px ¬c = cfcs0 a=px - ... | tri> ¬a ¬b c = ⊥-elim ( ¬p<x<op ⟪ c , (zc-b<x _ (ordtrans<-≤ a<b b≤x) ) ⟫ ) - ... | tri≈ ¬a a=px ¬c = cfcs0 a=px - ... | tri> ¬a ¬b c = ⊥-elim ( o≤> (zc-b<x _ (ordtrans<-≤ a<b b≤x)) c ) - - zc17 : {z : Ordinal } → supf0 z o≤ supf0 px - zc17 {z} with trio< z px - ... | tri< a ¬b ¬c = ZChain.supf-mono zc (o<→≤ a) - ... | tri≈ ¬a b ¬c = o≤-refl0 (cong supf0 b) - ... | tri> ¬a ¬b px<z = o≤-refl0 zc177 where - zc177 : supf0 z ≡ supf0 px - zc177 = ZChain.supfmax zc px<z -- px o< z, px o< supf0 px - - zc11 : {z : Ordinal} → odef (UnionCF A f ay supf0 x) z → odef pchainpx z - zc11 {z} ⟪ az , cp ⟫ = ? - - record STMP {z : Ordinal} (z≤x : z o≤ x ) : Set (Level.suc n) where - field - tsup : MinSUP A (UnionCF A f 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 - ... | tri< a ¬b ¬c = record { tsup = ZChain.minsup zc (o<→≤ a) ; tsup=sup = ZChain.supf-is-minsup zc (o<→≤ a) } - ... | tri≈ ¬a b ¬c = record { tsup = ZChain.minsup zc (o≤-refl0 b) ; tsup=sup = ZChain.supf-is-minsup zc (o≤-refl0 b) } - ... | tri> ¬a ¬b px<z = zc35 where - zc30 : z ≡ x - zc30 with osuc-≡< z≤x - ... | case1 eq = eq - ... | case2 z<x = ⊥-elim (¬p<x<op ⟪ px<z , subst (λ k → z o< k ) (sym (Oprev.oprev=x op)) z<x ⟫ ) - zc32 = ? - zc34 : ¬ (supf0 px ≡ px) → {w : HOD} → UnionCF A f ay supf0 z ∋ w → (w ≡ SUP.sup zc32) ∨ (w < SUP.sup zc32) - 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 - 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 - ... | tri> ¬a ¬b c = zc36 ¬b - ... | tri≈ ¬a b ¬c = record { tsup = ? ; tsup=sup = ? } where - zc37 : MinSUP A (UnionCF A f ay supf0 z) - zc37 = record { sup = ? ; asm = ? ; x≤sup = ? ; minsup = ? } - - is-minsup : {z : Ordinal} → z o≤ x → IsMinSUP A (UnionCF A f ay supf0 z) (supf0 z) - is-minsup = ? - sup=u : {b : Ordinal} (ab : odef A b) → - b o≤ x → IsMinSUP A (UnionCF A f ay supf0 b) b ∧ (¬ HasPrev A (UnionCF A f ay supf0 b) f b ) → supf0 b ≡ b + b o≤ x → IsSUP A (UnionCF A f ay supf1 b) b ∧ (¬ HasPrev A (UnionCF A f ay supf1 b) f b ) → supf1 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 } , ? ⟫ - ... | 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 ¬c = ? -- ZChain.sup=u zc ab (o<→≤ a) is-sup + ... | tri≈ ¬a b ¬c = ? -- ZChain.sup=u zc ab (o≤-refl0 b) is-sup ... | tri> ¬a ¬b px<b = ? where zc30 : x ≡ b zc30 with osuc-≡< b≤x