Mercurial > hg > Members > kono > Proof > ZF-in-agda
changeset 704:01a88eeb9d00
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 12 Jul 2022 23:05:31 +0900 |
parents | 0278f0d151f2 |
children | 799963f352d6 |
files | src/zorn.agda |
diffstat | 1 files changed, 55 insertions(+), 34 deletions(-) [+] |
line wrap: on
line diff
--- a/src/zorn.agda Tue Jul 12 22:50:40 2022 +0900 +++ b/src/zorn.agda Tue Jul 12 23:05:31 2022 +0900 @@ -477,7 +477,7 @@ ind f mf {y} ay x prev with trio< y x ... | tri> ¬a ¬b c = ? ... | tri≈ ¬a refl ¬c = ? - ... | tri< 0<x ¬b ¬c with Oprev-p x + ... | tri< y<x ¬b ¬c with Oprev-p x ... | yes op = zc4 where -- -- we have previous ordinal to use induction @@ -496,6 +496,29 @@ ptotal {a} {b} ca cb = subst₂ (λ j k → Tri (j < k) (j ≡ k) (k < j)) *iso *iso uz01 where uz01 : Tri (* (& a) < * (& b)) (* (& a) ≡ * (& b)) (* (& b) < * (& a) ) uz01 = chain-total A f mf ay (ZChain.supf zc) (UChain.chain∋z (proj2 ca)) (UChain.chain∋z (proj2 cb)) + psupf : Ordinal → Ordinal + psupf z with trio< z x + ... | tri< a ¬b ¬c = ZChain.supf zc z + ... | tri≈ ¬a b ¬c = x + ... | tri> ¬a ¬b c = x + pchain⊆A : {y : Ordinal} → odef pchain y → odef A y + pchain⊆A {y} ny = proj1 ny + pnext : {a : Ordinal} → odef pchain a → odef pchain (f a) + pnext {a} ⟪ aa , ua ⟫ = ⟪ afa , record { u = UChain.u ua ; u<x = UChain.u<x ua ; chain∋z = ? } ⟫ where + afa : odef A ( f a ) + afa = proj2 ( mf a aa ) + fua : Chain A f mf ay psupf (UChain.u ua) (f a) + fua with UChain.chain∋z ua + ... | ch-init a fc = ch-init (f a) ( fsuc _ fc ) + ... | ch-is-sup is-sup fc = ch-is-sup (ChainP-next A f mf ay _ ? ) (fsuc _ ? ) + pinit : {y₁ : Ordinal} → odef pchain y₁ → * y ≤ * y₁ + pinit {a} ⟪ aa , ua ⟫ with UChain.chain∋z ua + ... | ch-init a fc = s≤fc y f mf fc + ... | ch-is-sup is-sup fc = ≤-ftrans (case2 zc7) ? where -- (s≤fc _ f mf fc) where + zc7 : y << psupf (UChain.u ua) + zc7 = ? -- ChainP.fcy<sup is-sup (init ay) + pcy : odef pchain y + pcy = ⟪ ay , record { u = y ; u<x = y<x ; chain∋z = ch-init _ (init ay) } ⟫ -- if previous chain satisfies maximality, we caan reuse it -- @@ -527,29 +550,6 @@ ... | case1 is-sup = -- x is a sup of zc record { chain⊆A = pchain⊆A ; f-next = pnext ; f-total = ptotal ; initial = pinit ; chain∋init = pcy ; is-max = p-ismax } where - psupf : Ordinal → Ordinal - psupf z with trio< z x - ... | tri< a ¬b ¬c = ZChain.supf zc z - ... | tri≈ ¬a b ¬c = x - ... | tri> ¬a ¬b c = x - pchain⊆A : {y : Ordinal} → odef pchain y → odef A y - pchain⊆A {y} ny = proj1 ny - pnext : {a : Ordinal} → odef pchain a → odef pchain (f a) - pnext {a} ⟪ aa , ua ⟫ = ⟪ afa , record { u = UChain.u ua ; u<x = UChain.u<x ua ; chain∋z = ? } ⟫ where - afa : odef A ( f a ) - afa = proj2 ( mf a aa ) - fua : Chain A f mf ay psupf (UChain.u ua) (f a) - fua with UChain.chain∋z ua - ... | ch-init a fc = ch-init (f a) ( fsuc _ fc ) - ... | ch-is-sup is-sup fc = ch-is-sup (ChainP-next A f mf ay _ ? ) (fsuc _ ? ) - pinit : {y₁ : Ordinal} → odef pchain y₁ → * y ≤ * y₁ - pinit {a} ⟪ aa , ua ⟫ with UChain.chain∋z ua - ... | ch-init a fc = s≤fc y f mf fc - ... | ch-is-sup is-sup fc = ≤-ftrans (case2 zc7) ? where -- (s≤fc _ f mf fc) where - zc7 : y << psupf (UChain.u ua) - zc7 = ? -- ChainP.fcy<sup is-sup (init ay) - pcy : odef pchain y - pcy = ? -- ⟪ ay , record { u = y ; u<x = ∈∧P→o< ⟪ ay , lift true ⟫ ; chain∋z = ch-init _ (init ay) } ⟫ p-ismax : {a b : Ordinal} → odef pchain a → b o< osuc x → (ab : odef A b) → ( HasPrev A pchain ab f ∨ IsSup A pchain ab ) → @@ -573,29 +573,50 @@ psupf0 : (z : Ordinal) → Ordinal psupf0 z with trio< z x ... | tri< a ¬b ¬c = ZChain.supf (pzc z a) z - ... | tri≈ ¬a b ¬c = o∅ - ... | tri> ¬a ¬b c = o∅ - UZ : HOD - UZ = UnionCF A f mf ay psupf0 x - total-UZ : IsTotalOrderSet UZ - total-UZ {a} {b} ca cb = subst₂ (λ j k → Tri (j < k) (j ≡ k) (k < j)) *iso *iso uz01 where + ... | tri≈ ¬a b ¬c = y + ... | tri> ¬a ¬b c = y + pchain : HOD + pchain = UnionCF A f mf ay psupf0 x + ptotal : IsTotalOrderSet pchain + ptotal {a} {b} ca cb = subst₂ (λ j k → Tri (j < k) (j ≡ k) (k < j)) *iso *iso uz01 where uz01 : Tri (* (& a) < * (& b)) (* (& a) ≡ * (& b)) (* (& b) < * (& a) ) uz01 = chain-total A f mf ay psupf0 (UChain.chain∋z (proj2 ca)) (UChain.chain∋z (proj2 cb)) - usup : SUP A UZ - usup = supP UZ (λ lt → proj1 lt) total-UZ + + pchain⊆A : {y : Ordinal} → odef pchain y → odef A y + pchain⊆A {y} ny = proj1 ny + pnext : {a : Ordinal} → odef pchain a → odef pchain (f a) + pnext {a} ⟪ aa , ua ⟫ = ⟪ afa , record { u = UChain.u ua ; u<x = UChain.u<x ua ; chain∋z = ? } ⟫ where + afa : odef A ( f a ) + afa = proj2 ( mf a aa ) + fua : Chain A f mf ay psupf0 (UChain.u ua) (f a) + fua with UChain.chain∋z ua + ... | ch-init a fc = ch-init (f a) ( fsuc _ fc ) + ... | ch-is-sup is-sup fc = ch-is-sup (ChainP-next A f mf ay _ ? ) (fsuc _ ? ) + pinit : {y₁ : Ordinal} → odef pchain y₁ → * y ≤ * y₁ + pinit {a} ⟪ aa , ua ⟫ with UChain.chain∋z ua + ... | ch-init a fc = s≤fc y f mf fc + ... | ch-is-sup is-sup fc = ≤-ftrans (case2 zc7) ? where -- (s≤fc _ f mf fc) where + zc7 : y << psupf0 (UChain.u ua) + zc7 = ? -- ChainP.fcy<sup is-sup (init ay) + pcy : odef pchain y + pcy = ⟪ ay , record { u = y ; u<x = y<x ; chain∋z = ch-init _ (init ay) } ⟫ + + usup : SUP A pchain + usup = supP pchain (λ lt → proj1 lt) ptotal spu = & (SUP.sup usup) psupf : Ordinal → Ordinal psupf z with trio< z x ... | tri< a ¬b ¬c = ZChain.supf (pzc z a) z ... | tri≈ ¬a b ¬c = spu ... | tri> ¬a ¬b c = spu + zc5 : ZChain A f mf ay x zc5 with ODC.∋-p O A (* x) ... | no noax = {!!} where -- ¬ A ∋ p, just skip - ... | yes ax with ODC.p∨¬p O ( HasPrev A UZ ax f ) + ... | yes ax with ODC.p∨¬p O ( HasPrev A pchain ax f ) -- we have to check adding x preserve is-max ZChain A y f mf x ... | case1 pr = {!!} where -- we have previous A ∋ z < x , f z ≡ x, so chain ∋ f z ≡ x because of f-next - ... | case2 ¬fy<x with ODC.p∨¬p O (IsSup A UZ ax ) + ... | case2 ¬fy<x with ODC.p∨¬p O (IsSup A pchain ax ) ... | case1 is-sup = {!!} -- x is a sup of (zc ?) ... | case2 ¬x=sup = {!!} -- no-extenion z18 where -- x is not f y' nor sup of former ZChain from y -- no extention