Mercurial > hg > Members > kono > Proof > ZF-in-agda
changeset 574:9084a26445a7
ZC data won't work
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 05 Jun 2022 12:49:48 +0900 |
parents | 9ec37757a5a5 |
children | 3abf55c8e295 409215885fc0 |
files | src/filter.agda src/zorn.agda |
diffstat | 2 files changed, 40 insertions(+), 17 deletions(-) [+] |
line wrap: on
line diff
--- a/src/filter.agda Tue May 03 00:59:52 2022 +0900 +++ b/src/filter.agda Sun Jun 05 12:49:48 2022 +0900 @@ -230,22 +230,24 @@ f0 = subst (λ k → odef (filter F) k ) (trans (cong (&) ∩-comm) (cong (&) [a-b]∩b=0 ) ) ( filter2 F F∋p F∋-p ( CAP {!!} {!!}) ) _⊆'_ : ( A B : HOD ) → Set n -_⊆'_ A B = (x : Ordinal ) → odef A x → odef B x +_⊆'_ A B = {x : Ordinal } → odef A x → odef B x import zorn -open zorn O _⊆'_ +open zorn O _⊆'_ hiding ( _⊆'_ ) + +open import Relation.Binary.Structures MaximumSubset : {L P : HOD} - → o∅ o< & L → o∅ o< & P → P ⊆ L - → IsPartialOrderSet P - → ( (B : HOD) → B ⊆ P → IsTotalOrderSet B → SUP P B ) - → Maximal P -MaximumSubset {L} {P} 0<L 0<P P⊆L PO SP = Zorn-lemma 0<P PO SP + → o∅ o< & L → o∅ o< & P → P ⊆' L + → (PO : IsStrictPartialOrder _≡_ _⊆'_ ) + → ( (B : HOD) → B ⊆ P → IsTotalOrderSet PO B → SUP PO P B ) + → Maximal PO P +MaximumSubset {L} {P} 0<L 0<P P⊆L PO C = Zorn-lemma PO 0<P {!!} MaximumFilterExist : {L P : HOD} (LP : L ⊆ Power P) → ({p : HOD} → L ∋ p → L ∋ ( P \ p)) → ({p q : HOD} → L ∋ p → L ∋ q → L ∋ (p ∩ q)) → (F : Filter LP) → o∅ o< & L → o∅ o< & (filter F) → (¬ (filter F ∋ od∅)) → MaximumFilter LP MaximumFilterExist {L} {P} LP NEG CAP F 0<L 0<F Fprop = record { mf = {!!} ; proper = {!!} ; is-maximum = {!!} } where - mf01 : Maximal P - mf01 = MaximumSubset 0<L {!!} {!!} {!!} {!!} + mf01 : Maximal {!!} {!!} + mf01 = MaximumSubset 0<L {!!} {!!} {!!} {!!}
--- a/src/zorn.agda Tue May 03 00:59:52 2022 +0900 +++ b/src/zorn.agda Sun Jun 05 12:49:48 2022 +0900 @@ -246,8 +246,28 @@ f-next : {a : Ordinal } → odef chain a → odef chain (f a) f-immediate : { x y : Ordinal } → odef chain x → odef chain y → ¬ ( ( * x < * y ) ∧ ( * y < * (f x )) ) is-max : {a b : Ordinal } → (ca : odef chain a ) → b o< osuc z → (ab : odef A b) - → HasPrev A chain ab f ∨ IsSup A chain ab -- ((sup chain chain⊆A f-total) ≡ b ) + → HasPrev A chain ab f ∨ IsSup A chain ab → * a < * b → odef chain b + fc∨sup : {a : Ordinal } → a o< osuc z → ( ca : odef chain a ) → HasPrev A chain ( chain⊆A ca) f ∨ IsSup A chain ( chain⊆A ca) + +data ZC (A : HOD) (f : Ordinal → Ordinal ) : Ordinal → Set n where + zc-init : ZC A f o∅ + zc-fc : {s x : Ordinal} → ZC A f s → FClosure A f s x → ZC A f x + zc-sup : {s x : Ordinal} → ZC A f s → * s < * x → ZC A f x + +ZC→ZChain : (A : HOD) {x z : Ordinal} (ax : odef A x) ( f : Ordinal → Ordinal ) (mf : ≤-monotonic-f A f ) + → ZC A f z → (sup : (C : HOD ) → ( C ⊆' A) → IsTotalOrderSet C → Ordinal) → ZChain A ax f mf sup z +ZC→ZChain A {x} {z} ax f mf zc sup = record { + chain = ? + ; chain⊆A = ? + ; chain∋x = ? + ; initial = ? + ; f-total = ? + ; f-next = ? + ; f-immediate = ? + ; is-max = ? + ; fc∨sup = ? + } record Maximal ( A : HOD ) : Set (Level.suc n) where field @@ -408,7 +428,7 @@ ... | no noax = -- ¬ A ∋ p, just skip record { chain = ZChain.chain zc0 ; chain⊆A = ZChain.chain⊆A zc0 ; initial = ZChain.initial zc0 ; f-total = ZChain.f-total zc0 ; f-next = ZChain.f-next zc0 - ; f-immediate = ZChain.f-immediate zc0 ; chain∋x = ZChain.chain∋x zc0 ; is-max = zc11 } where -- no extention + ; f-immediate = ZChain.f-immediate zc0 ; chain∋x = ZChain.chain∋x zc0 ; is-max = zc11 ; fc∨sup = {!!} } where -- no extention zc11 : {a b : Ordinal} → odef (ZChain.chain zc0) a → b o< osuc x → (ab : odef A b) → HasPrev A (ZChain.chain zc0) ab f ∨ IsSup A (ZChain.chain zc0) ab → * a < * b → odef (ZChain.chain zc0) b @@ -425,12 +445,12 @@ ... | case2 lt = ZChain.is-max zc0 za (zc0-b<x b lt) ab P a<b ... | case1 b=x = subst (λ k → odef chain k ) (trans (sym (HasPrev.x=fy pr )) (trans &iso (sym b=x)) ) ( ZChain.f-next zc0 (HasPrev.ay pr)) zc9 : ZChain A ay f mf supO x - zc9 = record { chain = ZChain.chain zc0 ; chain⊆A = ZChain.chain⊆A zc0 ; f-total = ZChain.f-total zc0 ; f-next = ZChain.f-next zc0 - ; initial = ZChain.initial zc0 ; f-immediate = ZChain.f-immediate zc0 ; chain∋x = ZChain.chain∋x zc0 ; is-max = zc17 } -- no extention + zc9 = record { chain = ZChain.chain zc0 ; chain⊆A = ZChain.chain⊆A zc0 ; f-total = ZChain.f-total zc0 ; f-next = ZChain.f-next zc0 -- no extention + ; initial = ZChain.initial zc0 ; f-immediate = ZChain.f-immediate zc0 ; chain∋x = ZChain.chain∋x zc0 ; is-max = zc17 ; fc∨sup = {!!}} ... | case2 ¬fy<x with ODC.p∨¬p O (IsSup A (ZChain.chain zc0) ax ) ... | case1 is-sup = -- x is a sup of zc0 record { chain = schain ; chain⊆A = s⊆A ; f-total = scmp ; f-next = scnext - ; initial = scinit ; f-immediate = simm ; chain∋x = case1 (ZChain.chain∋x zc0) ; is-max = s-ismax } where + ; initial = scinit ; f-immediate = simm ; chain∋x = case1 (ZChain.chain∋x zc0) ; is-max = s-ismax ; fc∨sup = {!!}} where sup0 : SUP A (ZChain.chain zc0) sup0 = record { sup = * x ; A∋maximal = ax ; x<sup = x21 } where x21 : {y : HOD} → ZChain.chain zc0 ∋ y → (y ≡ * x) ∨ (y < * x) @@ -531,7 +551,8 @@ ... | case2 y<b = ZChain.is-max zc0 (ZChain.chain∋x zc0 ) (zc0-b<x b b<x) ab (case2 (z24 p)) y<b ... | case2 ¬x=sup = -- x is not f y' nor sup of former ZChain from y record { chain = ZChain.chain zc0 ; chain⊆A = ZChain.chain⊆A zc0 ; f-total = ZChain.f-total zc0 ; f-next = ZChain.f-next zc0 - ; initial = ZChain.initial zc0 ; f-immediate = ZChain.f-immediate zc0 ; chain∋x = ZChain.chain∋x zc0 ; is-max = z18 } where -- no extention + ; initial = ZChain.initial zc0 ; f-immediate = ZChain.f-immediate zc0 ; chain∋x = ZChain.chain∋x zc0 ; is-max = z18 ; fc∨sup = {!!} } where + -- no extention z18 : {a b : Ordinal} → odef (ZChain.chain zc0) a → b o< osuc x → (ab : odef A b) → HasPrev A (ZChain.chain zc0) ab f ∨ IsSup A (ZChain.chain zc0) ab → * a < * b → odef (ZChain.chain zc0) b @@ -541,10 +562,10 @@ ... | case1 pr = ⊥-elim ( ¬fy<x record {y = HasPrev.y pr ; ay = HasPrev.ay pr ; x=fy = trans (trans &iso (sym b=x) ) (HasPrev.x=fy pr ) } ) ... | case2 b=sup = ⊥-elim ( ¬x=sup record { x<sup = λ {y} zy → subst (λ k → (y ≡ k) ∨ (y << k)) (trans b=x (sym &iso)) (IsSup.x<sup b=sup zy) } ) - ... | no ¬ox = {!!} where + ... | no ¬ox = UnionZ where UnionZ : ZChain A ay f mf supO x UnionZ = record { chain = Uz ; chain⊆A = Uz⊆A ; f-total = u-total ; f-next = u-next - ; initial = u-initial ; f-immediate = {!!} ; chain∋x = {!!} ; is-max = {!!} } where --- limit ordinal case + ; initial = u-initial ; f-immediate = {!!} ; chain∋x = {!!} ; is-max = {!!} ; fc∨sup = {!!} } where --- limit ordinal case record UZFChain (z : Ordinal) : Set n where -- Union of ZFChain from y which has maximality o< x field u : Ordinal