Mercurial > hg > Members > kono > Proof > ZF-in-agda
changeset 705:799963f352d6
init chain
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 13 Jul 2022 07:55:13 +0900 |
parents | 01a88eeb9d00 |
children | e59bcd41462d |
files | src/zorn.agda |
diffstat | 1 files changed, 30 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/zorn.agda Tue Jul 12 23:05:31 2022 +0900 +++ b/src/zorn.agda Wed Jul 13 07:55:13 2022 +0900 @@ -267,7 +267,7 @@ (supf : Ordinal → Ordinal) (x : Ordinal) (z : Ordinal) : Set n where field u : Ordinal - u<x : u o< x + u<x : (u o< x ) ∨ ( x o≤ y ) chain∋z : Chain A f mf ay supf u z ∈∧P→o< : {A : HOD } {y : Ordinal} → {P : Set n} → odef A y ∧ P → y o< & A @@ -472,6 +472,33 @@ -- create all ZChains under o< x -- + inititalChain : ( f : Ordinal → Ordinal ) → (mf : ≤-monotonic-f A f ) {y : Ordinal} (ay : odef A y) → (x : Ordinal) + → x o≤ y → ZChain A f mf ay x + inititalChain f mf {y} ay x x≤y = record { supf = isupf ; chain⊆A = λ lt → proj1 lt ; chain∋init = cy + ; initial = isy ; f-next = inext ; f-total = itotal ; is-max = ? } where + isupf : Ordinal → Ordinal + isupf z = y + cy : odef (UnionCF A f mf ay isupf x) y + cy = ⟪ ay , record { u = y ; u<x = case2 x≤y ; chain∋z = ch-init _ (init ay) } ⟫ + isy : {z : Ordinal } → odef (UnionCF A f mf ay isupf x) z → * y ≤ * z + isy {z} ⟪ az , uz ⟫ with UChain.chain∋z uz + ... | ch-init z fc = s≤fc y f mf fc + ... | ch-is-sup is-sup fc = ⊥-elim ( <-irr (case1 refl) ( ChainP.fcy<sup is-sup (init ay) ) ) + inext : {a : Ordinal} → odef (UnionCF A f mf ay isupf x) a → odef (UnionCF A f mf ay isupf x) (f a) + inext {a} ua with UChain.chain∋z (proj2 ua) + ... | ch-init a fc = ⟪ proj2 (mf _ (proj1 ua)) , record { u = y ; u<x = case2 x≤y ; chain∋z = ch-init _ (fsuc _ fc ) } ⟫ + ... | ch-is-sup is-sup fc = ⊥-elim ( <-irr (case1 refl) ( ChainP.fcy<sup is-sup (init ay) ) ) + itotal : IsTotalOrderSet (UnionCF A f mf ay isupf x) + itotal {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 isupf (UChain.chain∋z (proj2 ca)) (UChain.chain∋z (proj2 cb)) + imax : {a b : Ordinal} → odef (UnionCF A f mf ay isupf x) a → + b o< osuc x → (ab : odef A b) → + HasPrev A (UnionCF A f mf ay isupf x) ab f ∨ IsSup A (UnionCF A f mf ay isupf x) ab → + * a < * b → odef (UnionCF A f mf ay isupf x) b + imax {a} {b} ua b<ox ab (case1 hasp) a<b = subst (λ k → odef (UnionCF A f mf ay isupf x) k ) (sym (HasPrev.x=fy hasp)) ( inext (HasPrev.ay hasp) ) + imax {a} {b} ua b<ox ab (case2 sup) a<b = ? + ind : ( f : Ordinal → Ordinal ) → (mf : ≤-monotonic-f A f ) {y : Ordinal} (ay : odef A y) → (x : Ordinal) → ((z : Ordinal) → z o< x → ZChain A f mf ay z) → ZChain A f mf ay x ind f mf {y} ay x prev with trio< y x @@ -518,7 +545,7 @@ 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) } ⟫ + pcy = ⟪ ay , record { u = y ; u<x = case1 y<x ; chain∋z = ch-init _ (init ay) } ⟫ -- if previous chain satisfies maximality, we caan reuse it -- @@ -599,7 +626,7 @@ 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) } ⟫ + pcy = ⟪ ay , record { u = y ; u<x = case1 y<x ; chain∋z = ch-init _ (init ay) } ⟫ usup : SUP A pchain usup = supP pchain (λ lt → proj1 lt) ptotal