Mercurial > hg > Members > kono > Proof > ZF-in-agda
changeset 878:1ec8c0cfc892
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Sat, 24 Sep 2022 10:52:57 +0900 |
parents | eaa863c4ebe8 |
children | 6222efcf3b04 |
files | src/zorn.agda |
diffstat | 1 files changed, 45 insertions(+), 26 deletions(-) [+] |
line wrap: on
line diff
--- a/src/zorn.agda Tue Sep 20 10:06:23 2022 +0900 +++ b/src/zorn.agda Sat Sep 24 10:52:57 2022 +0900 @@ -261,6 +261,12 @@ ch-is-sup : (u : Ordinal) {z : Ordinal } (u<x : u o< x) ( is-sup : ChainP A f mf ay supf u ) ( fc : FClosure A f (supf u) z ) → UChain A f mf ay supf x z +-- +-- f (f ( ... (sup y))) f (f ( ... (sup z1))) +-- / | / | +-- / | / | +-- sup y < sup z1 < sup z2 +-- o< o< -- data UChain is total chain-total : (A : HOD ) ( f : Ordinal → Ordinal ) (mf : ≤-monotonic-f A f) {y : Ordinal} (ay : odef A y) (supf : Ordinal → Ordinal ) @@ -351,12 +357,6 @@ ... | case1 eq = ⊥-elim ( o<¬≡ (sym eq) sx<sy ) ... | case2 lt = ⊥-elim ( o<> sx<sy lt ) --- --- f (f ( ... (sup y))) f (f ( ... (sup z1))) --- / | / | --- / | / | --- sup y < sup z1 < sup z2 --- o< o< record ZChain ( A : HOD ) ( f : Ordinal → Ordinal ) (mf : ≤-monotonic-f A f) {y : Ordinal} (ay : odef A y) ( z : Ordinal ) : Set (Level.suc n) where @@ -372,11 +372,13 @@ sup=u : {b : Ordinal} → (ab : odef A b) → b o≤ z → IsSup A (UnionCF A f mf ay supf b) ab ∧ (¬ HasPrev A (UnionCF A f mf ay supf b) b f) → supf b ≡ b supf-is-sup : {x : Ordinal } → (x≤z : x o≤ z) → supf x ≡ & (SUP.sup (sup x≤z) ) + csupf : {b : Ordinal } → supf b o< z → odef (UnionCF A f mf ay supf z) (supf b) + + supf-max : {x : Ordinal } → z o< x → supf x ≡ supf z -- supf z may different from spuf pz supf-mono : {x y : Ordinal } → x o≤ y → supf x o≤ supf y - supf-max : {x : Ordinal } → supf x o≤ supf z supf-< : {x y : Ordinal } → supf x o< supf y → supf x << supf y - x≤supfx : {x : Ordinal } → x o≤ supf x - csupf : {b : Ordinal } → supf b o< z → odef (UnionCF A f mf ay supf z) (supf b) + x≤supfx : z o≤ supf z + chain∋init : odef chain y chain∋init = ⟪ ay , ch-init (init ay refl) ⟫ f-next : {a : Ordinal} → odef chain a → odef chain (f a) @@ -522,6 +524,23 @@ sp1 : {z : Ordinal } → z o≤ x → SUP A (UnionCF A f mf ay (ZChain.supf zc) z) sp1 {z} z≤x = ZChain.sup zc z≤x + record MinSUP ( A B : HOD ) (z : Ordinal) : Set (Level.suc n) where + field + sup : HOD + asm : A ∋ sup + x<sup : {x : HOD} → B ∋ x → (& x) o< z → (x ≡ sup ) ∨ (x < sup ) + minsup : {x sup1 : HOD} → B ∋ x → (& x) o< z → (x ≡ sup1 ) ∨ (x < sup1 ) → sup ≤ sup1 + + msupP : {B : HOD} → MinSUP A B (& A) + msupP {B} = tf (& A) where + ind : (x : Ordinal) → ((y : Ordinal) → y o< x → MinSUP A B y) → MinSUP A B x + ind x prev = ? + tf : (z : Ordinal) → MinSUP A B z + tf z = TransFinite {λ x → MinSUP A B x } ind z + + M→S : {B : HOD} {z : Ordinal } → (& B) o< z → MinSUP A B z → SUP A B + M→S {B} lt ms = record { sup = MinSUP.sup ms ; as = MinSUP.asm ms ; x<sup = ? } + -- -- Second TransFinite Pass for maximality -- @@ -892,23 +911,23 @@ ... | tri≈ ¬a b ¬c = record { tsup = ? ; tsup=sup = ? } ... | tri> ¬a ¬b px<z = record { tsup = ? ; tsup=sup = ? } - -- csupf1 : {b : Ordinal } → supf1 b o< z → odef (UnionCF A f mf ay supf1 z) (supf1 b) - -- csupf1 {b} sb<z = ⟪ asb , ch-is-sup (supf b) sb<z - -- record { fcy<sup = ZChain.fcy<sup zc (o<→≤ sb<z) ; order = order ; supu=u = ZChain.supf-idem zc } - -- (init (subst (λ k → odef A k) (sym (ZChain.supf-idem zc) asb)) (ZChain.supf-idem zc)) ⟫ where - -- b<z : b o< z - -- b<z = supf-inject0 (ZChain.supf-mono zc ( ordtrans<-≤ sb<z x≤supfx )) - -- asb : odef A (supf b) - -- asb = supf∈A (o<→≤ b<z) - -- supb : SUP A (UnionCF A f mf ay supf (supf b)) - -- supb = ZChain.sup zc (o<→≤ sb<z) - -- supb-is-b : supf (supf b) ≡ & (SUP.sup supb) - -- supb-is-b = ZChain.supf-is-sup zc (o<→≤ sb<z) - -- order : {s z1 : Ordinal} → supf s o< supf (supf b) → - -- FClosure A f (supf s) z1 → (z1 ≡ supf (supf b)) ∨ (z1 << supf (supf b)) - -- order {s} {z1} ss<ssb fs with SUP.x<sup supb ? - -- ... | case1 eq = ? - -- ... | case2 lt = ? + csupf1 : {b : Ordinal } → supf1 b o< x → odef (UnionCF A f mf ay supf1 x) (supf1 b) + csupf1 {b} sb<z = ⟪ asb , ch-is-sup (supf1 b) sb<z + record { fcy<sup = ? ; order = order ; supu=u = ? } + (init ? ? ) ⟫ where + b<x : b o< x + b<x = ZChain.supf-inject zc ? + asb : odef A (supf1 b) + asb = ? -- ZChain.supf∈A zc ? -- (o<→≤ b<x) + supb : SUP A (UnionCF A f mf ay supf1 (supf1 b)) + supb = ? -- ZChain.sup zc (o<→≤ sb<z) + supb-is-b : supf1 (supf1 b) ≡ & (SUP.sup supb) + supb-is-b = ? -- ZChain.supf-is-sup zc ? -- (o<→≤ sb<z) + order : {s z1 : Ordinal} → supf1 s o< supf1 (supf1 b) → + FClosure A f (supf1 s) z1 → (z1 ≡ supf1 (supf1 b)) ∨ (z1 << supf1 (supf1 b)) + order {s} {z1} ss<ssb fs with SUP.x<sup supb ? + ... | case1 eq = ? + ... | case2 lt = ? ... | case2 px<spfx = record { supf = supf0 ; asupf = ZChain.asupf zc ; sup = λ lt → STMP.tsup (sup lt ) ; supf-mono = supf-mono ; supf-< = ? ; sup=u = sup=u ; supf-is-sup = λ lt → STMP.tsup=sup (sup lt) } where