Mercurial > hg > Members > kono > Proof > ZF-in-agda
changeset 498:8ec0b88b022f
zorn-case
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 12 Apr 2022 10:22:15 +0900 |
parents | 2a8629b5cff9 |
children | 5b1cfaf4c4ff |
files | src/zorn.agda |
diffstat | 1 files changed, 46 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/src/zorn.agda Mon Apr 11 15:14:53 2022 +0900 +++ b/src/zorn.agda Tue Apr 12 10:22:15 2022 +0900 @@ -63,7 +63,7 @@ ⊆-IsPartialOrderSet : { A B : HOD } → B ⊆ A → IsPartialOrderSet A → IsPartialOrderSet B ⊆-IsPartialOrderSet {A} {B} B⊆A PA = record { isEquivalence = record { refl = refl ; sym = sym ; trans = trans } ; trans = λ {x} {y} {z} → trans1 {x} {y} {z} - ; irrefl = λ {x} {y} → irrefl1 {x} {y} ; trans = trans1 ; <-resp-≈ = resp0 + ; irrefl = λ {x} {y} → irrefl1 {x} {y} ; <-resp-≈ = resp0 } where _<B_ : (x y : Element B ) → Set n x <B y = elm x < elm y @@ -100,7 +100,6 @@ A∋maximal : A ∋ maximal ¬maximal<x : {x : HOD} → A ∋ x → ¬ maximal < x -- A is Partial, use negative - record ZChain ( A : HOD ) (y : Ordinal) : Set (suc n) where field max : HOD @@ -110,7 +109,39 @@ chain⊆A : chain ⊆ A total : IsTotalOrderSet chain chain-max : (x : HOD) → chain ∋ x → (x ≡ max ) ∨ ( x < max ) + +data IChain (A : HOD) : Ordinal → Set n where + ifirst : {ox : Ordinal} → odef A ox → IChain A ox + inext : {ox oy : Ordinal} → odef A oy → * ox < * oy → IChain A ox → IChain A oy + +ic-connet : {A : HOD} {x : Ordinal} → (x : IChain A x) → Ordinal → Set n +ic-connet {A} (ifirst {ox} ax) oy = ox ≡ oy +ic-connet {A} (inext {ox} {oy} ay x<y iy) oz = (ox ≡ oz) ∨ ic-connet iy oz + +IChainSet : {A : HOD} → Element A → HOD +IChainSet {A} ax = record { od = record { def = λ y → odef A y ∧ ( (iy : IChain A y ) → ic-connet iy (& (elm ax))) } + ; odmax = & A ; <odmax = λ {y} lt → subst (λ k → k o< & A) &iso (c<→o< (subst (λ k → odef A k) (sym &iso) (proj1 lt))) } + +-- there is a y, & y > & x + +record Sup> {A : HOD} (x : Element A) : Set (suc n) where + field + y : Element A + y>x : IChainSet x ∋ elm y → & (elm x) o< & (elm y) + +-- finite IChain + +record InFiniteIChain {A : HOD} (x : Element A) : Set (suc n) where + field + y : Element A + y>x : IChainSet x ∋ elm y → elm x < elm y +Zorn-lemma-case : { A : HOD } + → o∅ o< & A + → IsPartialOrderSet A + → (x : Element A) → Sup> x ∨ Dec ( InFiniteIChain x ) +Zorn-lemma-case {A} 0<A PO x = {!!} + Zorn-lemma : { A : HOD } → o∅ o< & A → IsPartialOrderSet A @@ -200,24 +231,24 @@ -- else use the ordinaly smallest max as next chain ind x prev with Oprev-p x ... | yes op with ODC.∋-p O A (* x) - ... | no ¬Ax = {!!} where + ... | no ¬Ax = zc1 where -- we have previous ordinal and ¬ A ∋ x, use previous Zchain px = Oprev.oprev op - zc1 : ZChain A px + zc1 : ZChain A x ∨ Maximal A zc1 with prev px (subst (λ k → px o< k) (Oprev.oprev=x op) <-osuc) - ... | t = {!!} - z04 : {!!} -- (sup : HOD) (as : A ∋ sup) → & sup o< osuc x → sup < ZChain.fb zc1 as - z04 sup as s<x with trio< (& sup) x - ... | tri≈ ¬a b ¬c = ⊥-elim (¬Ax (subst (λ k → odef A k) (trans b (sym &iso)) as) ) - ... | tri< a ¬b ¬c = {!!} -- ZChain.¬x<sup zc1 _ as ( subst (λ k → & sup o< k ) (sym (Oprev.oprev=x op)) a ) - ... | tri> ¬a ¬b c with osuc-≡< s<x - ... | case1 eq = ⊥-elim (¬Ax (subst (λ k → odef A k) (trans eq (sym &iso)) as) ) - ... | case2 lt = ⊥-elim (¬a lt ) - ... | yes ax = {!!} where -- we have previous ordinal and A ∋ x + ... | case2 x = case2 x -- we have the Maximal + ... | case1 z with trio< x (& (ZChain.max z)) + ... | tri< a ¬b ¬c = case1 record { max = ZChain.max z ; y<max = a } + ... | tri≈ ¬a b ¬c = {!!} -- x = max so ¬ A ∋ max + ... | tri> ¬a ¬b c = {!!} -- can't happen + ... | yes ax = zc1 where -- we have previous ordinal and A ∋ x px = Oprev.oprev op - zc1 : ZChain A px + zc1 : ZChain A x ∨ Maximal A zc1 with prev px (subst (λ k → px o< k) (Oprev.oprev=x op) <-osuc) - ... | t = {!!} + ... | case2 x = case2 x + ... | case1 x with is-o∅ ( & (Gtx ax )) + ... | yes no-sup = case2 {!!} + ... | no sup = case1 {!!} ind x prev | no ¬ox with trio< (& A) x --- limit ordinal case ... | tri< a ¬b ¬c = {!!} where zc1 : ZChain A (& A)