Mercurial > hg > Members > kono > Proof > ZF-in-agda
changeset 521:5d3df69d3732
zc10
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 17 Apr 2022 17:16:23 +0900 |
parents | 5e364d55bccc |
children | 8e36b5c35777 |
files | src/zorn.agda |
diffstat | 1 files changed, 23 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/src/zorn.agda Sun Apr 17 16:03:29 2022 +0900 +++ b/src/zorn.agda Sun Apr 17 17:16:23 2022 +0900 @@ -129,7 +129,7 @@ ic→odef {A} {ox} (ifirst ax) = ax ic→odef {A} {ox} (inext ax x<y ic) = ax -ic→< : {A : HOD} → (IsPartialOrderSet A) → (x : Ordinal) → odef A x → {y : Ordinal} → (iy : IChain A y) → ic-connect {A} {y} x iy → * x < * y +ic→< : {A : HOD} → IsPartialOrderSet A → (x : Ordinal) → odef A x → {y : Ordinal} → (iy : IChain A y) → ic-connect {A} {y} x iy → * x < * y ic→< {A} PO x ax {y} (ifirst ay) () ic→< {A} PO x ax {y} (inext ay x<y iy) (case1 refl) = x<y ic→< {A} PO x ax {y} (inext {oy} ay x<y iy) (case2 ic) = IsStrictPartialOrder.trans PO @@ -148,6 +148,12 @@ IChainSet⊆A : {A : HOD} → (x : Element A ) → IChainSet x ⊆ A IChainSet⊆A {A} x = record { incl = λ {oy} y → proj1 y } +¬IChained-refl : (A : HOD) {x : Ordinal} → IsPartialOrderSet A → ¬ IChained A x x +¬IChained-refl A {x} PO record { iy = iy ; ic = ic } = IsStrictPartialOrder.irrefl PO + {me (subst (λ k → odef A k ) (sym &iso) ic0) } {me (subst (λ k → odef A k ) (sym &iso) ic0) } refl (ic→< {A} PO x ic0 iy ic ) where + ic0 : odef A x + ic0 = ic→odef {A} iy + -- there is a y, & y > & x record OSup> (A : HOD) {x : Ordinal} (ax : A ∋ * x) : Set n where @@ -335,19 +341,30 @@ (subst (λ k → ic-connect (& k) (IChained.iy (proj2 zc5)) ) (me-elm-refl A x) (IChained.ic (proj2 zc5)) ) ) zc6 : elm x < z zc6 = IsStrictPartialOrder.trans PO {x} {me (proj1 zc3)} {me az} zc7 y<z - ... | yes inifite = case2 (case2 record { c-infinite = zc9 ; chain<x = {!!}} ) where + ... | yes inifite = case2 (case2 record { c-infinite = zc9 ; chain<x = zc10} ) where B : HOD B = IChainSet {A} (me (subst (OD.def (od A)) (sym &iso) (is-elm x))) Nx : (y : Ordinal) → odef A y → HOD Nx y ay = record { od = record { def = λ x → odef A x ∧ ( * y < * x ) } ; odmax = & A ; <odmax = λ lt → subst (λ k → k o< & A) &iso (c<→o< (d→∋ A (proj1 lt))) } + zc10 : (oy : Ordinal) → odef (IChainSet {A} (me (subst (OD.def (od A)) (sym &iso) (is-elm x)))) oy → oy o< & (elm x) + zc10 oy icsy = zc21 where + zc20 : (y : HOD) → (IChainSet x) ∋ y → & (elm x) o< & y → ⊥ + zc20 y icsy lt = ¬A∋x→A≡od∅ Gtx ⟪ icsy , lt ⟫ nogt + zc22 : IChainSet x ∋ * oy + zc22 = ⟪ subst (λ k → odef A k) (sym &iso) (proj1 icsy) + , subst₂ (λ j k → IChained A j k) (cong (&) (me-elm-refl A x)) (sym &iso) (proj2 icsy) ⟫ + zc21 : oy o< & (elm x) + zc21 with trio< oy (& (elm x) ) + ... | tri< a ¬b ¬c = a + ... | tri≈ ¬a b ¬c = ⊥-elim (¬IChained-refl A PO (subst₂ (λ j k → IChained A j k ) zc23 b (proj2 icsy)) ) where + zc23 : & (* (& (elm x))) ≡ & (elm x) + zc23 = cong (&) *iso + ... | tri> ¬a ¬b c = ⊥-elim ( zc20 (* oy) zc22 (subst (λ k → & (elm x) o< k) (sym &iso) c )) zc9 : (y : Ordinal) (cy : odef B y) → IChainSup> A (ic→A∋y A (subst (OD.def (od A)) (sym &iso) (is-elm x)) cy) - zc9 y cy with ODC.∋-p O B (* y) - ... | no not = ⊥-elim (not (subst (λ k → odef B k ) (sym &iso) cy)) - ... | yes cy1 with is-o∅ (& (Nx y (proj1 cy) )) + zc9 y cy with is-o∅ (& (Nx y (proj1 cy) )) ... | yes no-next = ⊥-elim zc16 where - -- cy : OD.def (od A) y ∧ IChained A (& (* (& (elm x)))) y zc18 : ¬ IChainSup> A (subst (odef A) (sym &iso) (proj1 (subst (λ k → odef (IChainSet (me (d→∋ A (is-elm x)))) k) (sym &iso) cy))) zc18 ics = ¬A∋x→A≡od∅ (Nx y (proj1 cy) ) ⟪ subst (λ k → odef A k ) (sym &iso) (IChainSup>.A∋y ics) , subst₂ (λ j k → j < k ) *iso (cong (*) (sym &iso))( IChainSup>.y>x ics) ⟫ no-next