Mercurial > hg > Members > kono > Proof > ZF-in-agda
changeset 586:40090ce9232c
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 08 Jun 2022 08:47:52 +0900 |
parents | 9922bfe92278 |
children | 6e0789af0d63 |
files | src/zorn.agda |
diffstat | 1 files changed, 34 insertions(+), 21 deletions(-) [+] |
line wrap: on
line diff
--- a/src/zorn.agda Tue Jun 07 18:37:57 2022 +0900 +++ b/src/zorn.agda Wed Jun 08 08:47:52 2022 +0900 @@ -254,7 +254,7 @@ chainf : (b : Ordinal) → HOD chain-mono : {a b : Ordinal} → a o< b → chainf a ⊆' chainf b chain=zchain : {b : Ordinal} → chainf z ≡ ZChain.chain zchain - + record Maximal ( A : HOD ) : Set (Level.suc n) where field maximal : HOD @@ -389,21 +389,19 @@ sp1 = sp0 (cf nmx) (cf-is-≤-monotonic nmx) zc c = & (SUP.sup sp1) - ind1 : ( f : Ordinal → Ordinal ) → (mf : ≤-monotonic-f A f ) → (x : Ordinal) - → ((y : Ordinal) → y o< x → {y = y₁ : Ordinal} → odef A y₁ → ZChain∧Chain A y₁ f y) → - {y : Ordinal} → odef A y → ZChain∧Chain A y f x - ind1 = {!!} - -- -- create all ZChains under o< x -- - ind : ( f : Ordinal → Ordinal ) → (mf : ≤-monotonic-f A f ) → (x : Ordinal) → - ((z : Ordinal) → z o< x → {y : Ordinal} → (ya : odef A y) → ZChain A y f z ) → { y : Ordinal } → (ya : odef A y) → ZChain A y f x - ind f mf x prev {y} ay with Oprev-p x - ... | yes op = zc4 where + ind : ( f : Ordinal → Ordinal ) → (mf : ≤-monotonic-f A f ) → (x : Ordinal) + → ((z : Ordinal) → z o< x → {y : Ordinal} → odef A y → ZChain∧Chain A y f z) → + {y : Ordinal} → odef A y → ZChain∧Chain A y f x + ind f mf x prevzc {y} ay with Oprev-p x + ... | yes op = record { zchain = zc4 ; chainf = {!!} ; chain-mono = {!!} ; chain=zchain = {!!} } where -- -- we have previous ordinal to use induction -- + prev : (z : Ordinal) → z o< x → {y : Ordinal} → odef A y → ZChain A y f z + prev z z<x ay = ZChain∧Chain.zchain (prevzc z z<x ay) px = Oprev.oprev op zc0 : ZChain A y f (Oprev.oprev op) zc0 = prev px (subst (λ k → px o< k) (Oprev.oprev=x op) <-osuc ) ay @@ -433,11 +431,11 @@ ... | 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 y f 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 -- no extention - ; initial = ZChain.initial zc0 ; f-immediate = ZChain.f-immediate zc0 ; chain∋x = ZChain.chain∋x zc0 ; is-max = zc17 ; fc∨sup = {!!}} + ; 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 ; fc∨sup = {!!}} 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) @@ -550,10 +548,15 @@ ... | 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 with trio< x y - ... | tri< a ¬b ¬c = record { chain = {!!} ; chain⊆A = {!!} ; f-total = {!!} ; f-next = {!!} + ... | tri< a ¬b ¬c = record { zchain = + record { chain = {!!} ; chain⊆A = {!!} ; f-total = {!!} ; f-next = {!!} ; initial = {!!} ; f-immediate = {!!} ; chain∋x = {!!} ; is-max = {!!} ; fc∨sup = {!!} } + ; chainf = {!!} ; chain-mono = {!!} ; chain=zchain = {!!} } ... | tri≈ ¬a b ¬c = {!!} - ... | tri> ¬a ¬b y<x = {!!} where + ... | tri> ¬a ¬b y<x = record { zchain = UnionZ + ; chainf = {!!} ; chain-mono = {!!} ; chain=zchain = {!!} } where + prev : (z : Ordinal) → z o< x → {y : Ordinal} → odef A y → ZChain A y f z + prev z z<x ay = ZChain∧Chain.zchain (prevzc z z<x ay) UnionZ : ZChain A y f 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 = {!!} ; fc∨sup = {!!} } where --- limit ordinal case @@ -575,8 +578,20 @@ u-initial {z} u = ZChain.initial ( uzc u ) (UZFChain.chain∋z u) u-chain∋x : odef Uz y u-chain∋x = record { u = y ; u<x = y<x ; chain∋z = ZChain.chain∋x (prev y y<x ay ) } + u-total1 : {x y : HOD } → (ux : odef Uz (& x)) → (uy : odef Uz (& y)) + → & x o< & y → odef (ZChain.chain (uzc ux)) (& x) → odef (ZChain.chain (uzc uy)) (& x) + u-total1 {x} {y} ux uy x<y = ZChain∧Chain.chain-mono {!!} x<y where + u00 : ZChain∧Chain A {!!} f {!!} + u00 = prevzc {!!} {!!} {!!} + u02 : HOD + u02 = ZChain∧Chain.chainf u00 {!!} + u01 : odef {!!} (& x) → odef {!!} (& y) + u01 = ZChain∧Chain.chain-mono u00 x<y u-total : IsTotalOrderSet Uz - u-total {x} {y} ux uy = {!!} + u-total {x} {y} ux uy with trio< (& x) (& y) + ... | tri< a ¬b ¬c = ZChain.f-total (uzc uy) (u-total1 ux uy a (UZFChain.chain∋z ux)) (UZFChain.chain∋z uy) + ... | tri≈ ¬a b ¬c = tri≈ {!!} {!!} {!!} + ... | tri> ¬a ¬b c = ZChain.f-total (uzc ux) (UZFChain.chain∋z ux) (u-total1 uy ux c (UZFChain.chain∋z uy)) --- ux ⊆ uy ∨ uy ⊆ ux zorn00 : Maximal A @@ -595,13 +610,11 @@ nmx mx = ∅< {HasMaximal} zc5 ( ≡o∅→=od∅ ¬Maximal ) where zc5 : odef A (& (Maximal.maximal mx)) ∧ (( y : Ordinal ) → odef A y → ¬ (* (& (Maximal.maximal mx)) < * y)) zc5 = ⟪ Maximal.A∋maximal mx , (λ y ay mx<y → Maximal.¬maximal<x mx (subst (λ k → odef A k ) (sym &iso) ay) (subst (λ k → k < * y) *iso mx<y) ) ⟫ - zorn03 : ( f : Ordinal → Ordinal ) → (mf : ≤-monotonic-f A f ) → (ya : odef A (& s)) → ZChain A (& s) f (& A) - zorn03 f mf = TransFinite {λ z → {y : Ordinal } → (ya : odef A y ) → ZChain A y f z } (ind f mf) (& A) + zorn03 : ( f : Ordinal → Ordinal ) → (mf : ≤-monotonic-f A f ) → (ya : odef A (& s)) → ZChain∧Chain A (& s) f (& A) + zorn03 f mf = TransFinite {λ z → {y : Ordinal } → (ya : odef A y ) → ZChain∧Chain A y f z } (ind f mf) (& A) + zorn04 : ZChain A (& s) (cf nmx) (& A) - zorn04 = zorn03 (cf nmx) (cf-is-≤-monotonic nmx) (subst (λ k → odef A k ) &iso as ) - - zorn05 : ( f : Ordinal → Ordinal ) → (mf : ≤-monotonic-f A f ) → (ya : odef A (& s)) → ZChain∧Chain A (& s) f (& A) - zorn05 f mf = TransFinite {λ z → {y : Ordinal } → (ya : odef A y ) → ZChain∧Chain A y f z } {!!} (& A) + zorn04 = ZChain∧Chain.zchain (zorn03 (cf nmx) (cf-is-≤-monotonic nmx) (subst (λ k → odef A k ) &iso as )) -- usage (see filter.agda ) --