Mercurial > hg > Members > kono > Proof > ZF-in-agda
changeset 1040:4b525726f2df
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Sat, 03 Dec 2022 11:48:47 +0900 |
parents | 4b22a2ece4e8 |
children | f12a9b4066a0 |
files | src/zorn.agda |
diffstat | 1 files changed, 30 insertions(+), 23 deletions(-) [+] |
line wrap: on
line diff
--- a/src/zorn.agda Sat Dec 03 09:57:13 2022 +0900 +++ b/src/zorn.agda Sat Dec 03 11:48:47 2022 +0900 @@ -353,7 +353,9 @@ chain∋init {x} x≤z = ⟪ ay , ch-init (init ay refl) ⟫ mf : ≤-monotonic-f A f - mf x ax = ? + mf x ax = ⟪ case2 mf00 , proj2 (mf< x ax ) ⟫ where + mf00 : * x < * (f x) + mf00 = proj1 ( mf< x ax ) f-next : {a z : Ordinal} → odef (UnionCF A f ay supf z) a → odef (UnionCF A f ay supf z) (f a) f-next {a} ⟪ ua , ch-init fc ⟫ = ⟪ proj2 ( mf _ ua) , ch-init (fsuc _ fc) ⟫ @@ -714,7 +716,7 @@ chain-mono1 (o<→≤ b<x) (HasPrev.ay nhp) ; x=fy = HasPrev.x=fy nhp } ) m05 : ZChain.supf zc b ≡ b - m05 = ZChain.sup=u zc ab (o<→≤ m09) ⟪ record { x≤sup = λ lt → IsSUP.x≤sup (proj2 is-sup) lt } , m04 ⟫ -- ZChain on x + m05 = ZChain.sup=u zc ab (o<→≤ m09) ⟪ record { ax = ab ; x≤sup = λ lt → IsSUP.x≤sup (proj2 is-sup) lt } , m04 ⟫ -- ZChain on x m10 : odef (UnionCF A f ay supf x) b m10 = ZChain.cfcs zc b<x x≤A (subst (λ k → k o< x) (sym m05) b<x) (init (ZChain.asupf zc) m05) ... | case1 sb=sx = ⊥-elim (<-irr (case1 (cong (*) m10)) (proj1 (mf< (supf b) (ZChain.asupf zc)))) where @@ -730,7 +732,7 @@ m04 nhp = proj1 is-sup ( record { ax = HasPrev.ax nhp ; y = HasPrev.y nhp ; ay = chain-mono1 (o<→≤ b<x) (HasPrev.ay nhp) ; x=fy = HasPrev.x=fy nhp } ) m05 : ZChain.supf zc b ≡ b - m05 = ZChain.sup=u zc ab (o<→≤ (z09 ab) ) ⟪ record { x≤sup = λ {z} uz → IsSUP.x≤sup (proj2 is-sup) uz } , m04 ⟫ + m05 = ZChain.sup=u zc ab (o<→≤ (z09 ab) ) ⟪ record { ax = ab ; x≤sup = λ {z} uz → IsSUP.x≤sup (proj2 is-sup) uz } , m04 ⟫ m14 : ZChain.supf zc b o< x m14 = subst (λ k → k o< x ) (sym m05) b<x m13 : odef (UnionCF A f ay supf x) z @@ -928,6 +930,21 @@ 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 + ... | 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 )) + 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 + -- this is a kind of maximality, so we cannot prove this without <-monotonicity -- cfcs : {a b w : Ordinal } @@ -1003,8 +1020,7 @@ z53 : odef A w z53 = A∋fc {A} _ f mf fc csupf1 : odef (UnionCF A f ay supf1 b) w - csupf1 with trio< (supf0 px) x - ... | tri< sfpx<x ¬b ¬c = ⟪ 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 @@ -1012,17 +1028,6 @@ 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 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 )) - 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 ( ¬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 ay supf1 x) z → odef pchainpx z @@ -1062,13 +1067,15 @@ → supf1 z o≤ s z24 {s} as sup = subst (λ k → k o≤ s ) (sym (sf1=sp1 px<z)) ( MinSUP.minsup sup1 as z25 ) where z25 : {w : Ordinal } → odef pchainpx w → w ≤ s - z25 {w} (case2 fc) = sup ⟪ A∋fc _ f mf fc , ch-is-sup (supf0 px) ? ? ? ⟫ where - z27 : supf1 px ≡ px --- sp1 o≤ x - z27 = trans (sf1=sf0 o≤-refl) ( ZChain.sup=u zc ? ? ? ) - z29 : supf0 px o≤ z - z29 = ? -- supf0 px ≡ supf1 px o≤ supf1 x o≤ - z28 : supf0 px o< z - z28 = ? + 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 + z29 : supf0 px o≤ px + 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 + fc1 = subst (λ k → FClosure A f k w) (sym z27) fc z25 {w} (case1 ⟪ ua , ch-init fc ⟫) = sup ⟪ ua , ch-init fc ⟫ z25 {w} (case1 ⟪ ua , ch-is-sup u u<x su=u fc ⟫) = sup ⟪ ua , ch-is-sup u u<z (trans (sf1=sf0 u≤px) su=u) (fcpu fc u≤px) ⟫ where