Mercurial > hg > Members > kono > Proof > ZF-in-agda
changeset 867:166bee3ddf4c
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 12 Sep 2022 19:35:32 +0900 |
parents | 8a49ab1dcbd0 |
children | 35a884f2bfde |
files | src/zorn.agda |
diffstat | 1 files changed, 52 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/src/zorn.agda Sun Sep 11 19:58:49 2022 +0900 +++ b/src/zorn.agda Mon Sep 12 19:35:32 2022 +0900 @@ -369,6 +369,34 @@ supf-is-sup : {x : Ordinal } → supf x ≡ & (SUP.sup (sup x) ) supf-mono : {x y : Ordinal } → x o≤ y → supf x o≤ supf y +-- +-- f (f ( ... (sup y))) f (f ( ... (sup z1))) +-- / | / | +-- / | / | +-- sup y < sup z1 < sup z2 +-- o< o< + +smono→SUPU : (A : HOD) ( f : Ordinal → Ordinal ) (mf : ≤-monotonic-f A f) {y : Ordinal} (ay : odef A y) + → {x z : Ordinal } → { supf : Ordinal → Ordinal } + → ( supf x ≡ z ) → ( {x y : Ordinal } → x o≤ y → supf x o≤ supf y ) + → ( {x y : Ordinal } → x o≤ y → supf x <= supf y ) + → (sz : SUP A (UnionCF A f mf ay (λ _ → z) x)) → (su : SUP A (UnionCF A f mf ay supf x)) → & (SUP.sup sz) ≡ & (SUP.sup su) +smono→SUPU A f mf {y} ay {x} {z} {supf} sx=z mono mono< s = ? where + sup = SUP.sup s + x<sup : {w : HOD} → (UnionCF A f mf ay supf x) ∋ w → (w ≡ sup ) ∨ (w < sup ) + x<sup {w} ⟪ au , ch-init fc ⟫ = SUP.x<sup s ⟪ au , ch-init fc ⟫ + x<sup {w} ⟪ au , ch-is-sup u u<x is-sup fc ⟫ with trio< u z + ... | tri< a ¬b ¬c = ? where + zc01 : {s : Ordinal} → (lt : supf s o< supf u ) → FClosure A f (supf s ) (& w) → ((& w) ≡ supf u ) ∨ ( (& w) << supf u ) + zc01 = ChainP.order is-sup + ... | tri≈ ¬a b ¬c = ? + ... | tri> ¬a ¬b z<u = ⊥-elim ( o≤> u≤z z<u ) where + u≤z : u o≤ z + u≤z = begin u ≡⟨ sym (ChainP.supu=u is-sup) ⟩ + supf u ≤⟨ mono (o<→≤ u<x ) ⟩ + supf x ≡⟨ sx=z ⟩ + z ∎ where open o≤-Reasoning O + zsupf : (A : HOD) ( f : Ordinal → Ordinal ) (mf : ≤-monotonic-f A f) {init : Ordinal} (ay : odef A init) → ( ( B : HOD) → (B⊆A : B ⊆' A) → IsTotalOrderSet B → SUP A B ) -- SUP condition @@ -377,20 +405,32 @@ zc1 : (x : Ordinal) → ((y₁ : Ordinal) → y₁ o< x → ZSupf A f mf ay y₁) → ZSupf A f mf ay x zc1 x prev with Oprev-p x - ... | yes op = record { supf = ? ; sup = ? ; spuf-is-sup = ? ; supf-mono = ? } where + ... | yes op = record { supf = ? ; sup = ? ; supf-is-sup = ? ; supf-mono = ? } where px = Oprev.oprev op + pchain : HOD + pchain = UnionCF A f mf ay (ZSupf.supf ( prev px (pxo<x op) )) px zc-b<x : {b : Ordinal } → b o< x → b o< osuc px zc-b<x {b} lt = subst (λ k → b o< k ) (sym (Oprev.oprev=x op)) lt + supf : Ordinal → Ordinal supf z with trio< z px - ... | tri< a ¬b ¬c = ZSupf.spuf (prev (ordtrans a (pxo<x op))) z - ... | tri≈ ¬a b ¬c = ZSupf.spuf (prev (subst (λ k → k o< x ) b (pxo<x op))) z - ... | tri> ¬a ¬b px<x with ODC.∋-p O A (* x) - ... | no noax = ZSupf.spuf (prev o≤-refl ) px - ... | yes ax with ODC.p∨¬p O ( HasPrev A (ZChain.chain zc ) z f ) - ... | case1 pr = ZSupf.spuf (prev o≤-refl ) px - ... | case2 ¬fy<x with ODC.p∨¬p O (IsSup A (ZChain.chain zc ) ax ) - ... | case2 ¬x=sup = ZSupf.spuf (prev o≤-refl ) px + ... | tri< a ¬b ¬c = ZSupf.supf (prev z (ordtrans a (pxo<x op))) z + ... | tri≈ ¬a b ¬c = ZSupf.supf (prev z (subst (λ k → k o< x ) (sym b) (pxo<x op))) z + ... | tri> ¬a ¬b px<x = ZSupf.supf (prev px (pxo<x op) ) px + + supf1 : Ordinal → Ordinal + supf1 z with trio< z px + ... | tri< a ¬b ¬c = ZSupf.supf (prev z (ordtrans a (pxo<x op))) z + ... | tri≈ ¬a b ¬c = ZSupf.supf (prev z (subst (λ k → k o< x ) (sym b) (pxo<x op))) z + ... | tri> ¬a ¬b px<x = & (SUP.sup (zsupf0 A f mf ay supP ax)) + + zc2 : ZSupf A f mf ay x + zc2 with ODC.∋-p O A (* x) + ... | no noax = ? + ... | yes ax with ODC.p∨¬p O ( HasPrev A pchain z f ) + ... | case1 pr = ? + ... | case2 ¬fy<x with ODC.p∨¬p O (IsSup A pchain ax ) + ... | case2 ¬x=sup = ? ... | case1 is-sup = ? ... | no lim = ? where @@ -402,15 +442,15 @@ supfx : Ordinal supfx with ODC.∋-p O A (* x) ... | no noax = supfmax - ... | yes ax with ODC.p∨¬p O ( HasPrev A (ZChain.chain zc ) z f ) + ... | yes ax with ODC.p∨¬p O ( HasPrev A ? x f ) ... | case1 pr = supfmax - ... | case2 ¬fy<x with ODC.p∨¬p O (IsSup A (ZChain.chain zc ) ax ) + ... | case2 ¬fy<x with ODC.p∨¬p O (IsSup A ? ax ) ... | case2 ¬x=sup = supfmax ... | case1 is-sup = ? supf : Ordinal → Ordinal supf z with trio< z x - ... | tri< a ¬b ¬c = ZSupf.spuf a z + ... | tri< a ¬b ¬c = ZSupf.supf (prev z a) z ... | tri≈ ¬a b ¬c = supfx ... | tri> ¬a ¬b px<x = supfx