Mercurial > hg > Members > kono > Proof > ZF-in-agda
changeset 1072:4ce084a0dce2
supf-mono done
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 14 Dec 2022 09:19:38 +0900 |
parents | 5463f10d6843 |
children | b3d695340773 |
files | src/zorn.agda |
diffstat | 1 files changed, 33 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/src/zorn.agda Tue Dec 13 19:58:13 2022 +0900 +++ b/src/zorn.agda Wed Dec 14 09:19:38 2022 +0900 @@ -1235,8 +1235,8 @@ mf x ax = ⟪ case2 mf00 , proj2 (mf< x ax ) ⟫ where mf00 : * x < * (f x) mf00 = proj1 ( mf< x ax ) - ... | tri> ¬a ¬b 0<x = record { supf = supf1 ; asupf = asupf ; supf-mono = supf-mono ; order = ? ; 0<supfz = ? - ; zo≤sz = ? ; is-minsup = ? ; cfcs = cfcs } where + ... | tri> ¬a ¬b 0<x = record { supf = supf1 ; asupf = asupf ; supf-mono = supf-mono ; order = ? ; 0<supfz = 0<sufz + ; zo≤sz = ? ; is-minsup = is-minsup ; cfcs = cfcs } where mf : ≤-monotonic-f A f mf x ax = ⟪ case2 mf00 , proj2 (mf< x ax ) ⟫ where @@ -1293,6 +1293,20 @@ ZChain.supf (pzc oz<x) u ≡⟨ su=u ⟩ u ∎ where open ≡-Reasoning + chain⊆pchainU1 : {z w : Ordinal } → (z<x : z o< x) → odef (UnionCF A f ay (ZChain.supf (pzc (ob<x lim z<x))) z) w → odef pchainU w + chain⊆pchainU1 {z} {w} z<x ⟪ aw , ch-init fc ⟫ = ⟪ aw , ic-init fc ⟫ + chain⊆pchainU1 {z} {w} z<x ⟪ aw , ch-is-sup u u<oz su=u fc ⟫ + = ⟪ aw , ic-isup u u<x (o≤-refl0 su≡u) (subst (λ k → FClosure A f k w ) su=su fc) ⟫ where + u<x : u o< x + u<x = ordtrans u<oz z<x + su=su : ZChain.supf (pzc (ob<x lim z<x)) u ≡ supfz u<x + su=su = sym ( zeq _ _ (o<→≤ (osucc u<oz)) (o<→≤ <-osuc) ) + su≡u : supfz u<x ≡ u + su≡u = begin + ZChain.supf (pzc (ob<x lim u<x )) u ≡⟨ sym su=su ⟩ + ZChain.supf (pzc (ob<x lim z<x)) u ≡⟨ su=u ⟩ + u ∎ where open ≡-Reasoning + ichain-inject : {a b : Ordinal } {ia : IChain ay supfz a } {ib : IChain ay supfz b } → ZChain.supf (pzc (pic<x ia)) (IChain-i ia) o< ZChain.supf (pzc (pic<x ib)) (IChain-i ib) → IChain-i ia o< IChain-i ib @@ -1429,17 +1443,25 @@ ... | tri< y<x ¬b ¬c = zc01 where open o≤-Reasoning O zc01 : supf1 z o≤ ZChain.supf (pzc (ob<x lim y<x)) y - zc01 with trio< z x - ... | tri< z<x ¬b ¬c = begin - ZChain.supf (pzc (ob<x lim z<x)) z ≡⟨ zeq _ _ (osucc z≤y) (o<→≤ <-osuc) ⟩ + zc01 = begin + supf1 z ≡⟨ sf1=sf (ordtrans≤-< z≤y y<x) ⟩ + ZChain.supf (pzc (ob<x lim (ordtrans≤-< z≤y y<x))) z ≡⟨ zeq _ _ (osucc z≤y) (o<→≤ <-osuc) ⟩ ZChain.supf (pzc (ob<x lim y<x)) z ≤⟨ ZChain.supf-mono (pzc (ob<x lim y<x)) z≤y ⟩ ZChain.supf (pzc (ob<x lim y<x)) y ∎ - ... | tri> ¬a ¬b c = ? -- y<x x o< z → ⊥ - ... | tri≈ ¬a b ¬c with osuc-≡< ( subst (λ k → k o≤ y) b z≤y) - ... | case1 z=y = ? -- x=z=y ⊥ - ... | case2 z<y = subst₂ (λ j k → j o≤ k ) ? refl ( MinSUP.minsup ssup ? ? ) - ... | tri≈ ¬a b ¬c = ? - ... | tri> ¬a ¬b c = o≤-refl0 ? + ... | tri≈ ¬a b ¬c = zc01 where -- supf1 z o≤ spu + open o≤-Reasoning O + zc01 : supf1 z o≤ spu + zc01 with osuc-≡< (subst (λ k → z o≤ k) b z≤y) + ... | case1 z=x = o≤-refl0 (sf1=spu (sym z=x)) + ... | case2 z<x = subst (λ k → k o≤ spu ) (sym (sf1=sf z<x)) ( IsMinSUP.minsup (ZChain.is-minsup (pzc (ob<x lim z<x)) (o<→≤ <-osuc) ) + (MinSUP.as usup) (λ uw → MinSUP.x≤sup usup (chain⊆pchainU1 z<x uw)) ) + ... | tri> ¬a ¬b c = zc01 where -- supf1 z o≤ sps + zc01 : supf1 z o≤ sps + zc01 with trio< z x + ... | tri< z<x ¬b ¬c = IsMinSUP.minsup (ZChain.is-minsup (pzc (ob<x lim z<x)) (o<→≤ <-osuc) ) + (MinSUP.as ssup) (λ uw → MinSUP.x≤sup ssup (case1 (chain⊆pchainU1 z<x uw)) ) + ... | tri≈ ¬a z=x ¬c = MinSUP.minsup usup (MinSUP.as ssup) (λ uw → MinSUP.x≤sup ssup (case1 uw) ) + ... | tri> ¬a ¬b c = o≤-refl -- (sf1=sps c) 0<sufz : {x : Ordinal } → o∅ o< supf1 x 0<sufz = ordtrans<-≤ (ZChain.0<supfz (pzc (ob<x lim 0<x ))) (OrdTrans (o≤-refl0 (sym (sf1=sf 0<x ))) (supf-mono o∅≤z))