Mercurial > hg > Members > kono > Proof > ZF-in-agda
changeset 654:6df8b836e983
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 30 Jun 2022 10:40:24 +0900 |
parents | 4186c0331abb |
children | b602e3f070df |
files | src/zorn.agda |
diffstat | 1 files changed, 30 insertions(+), 19 deletions(-) [+] |
line wrap: on
line diff
--- a/src/zorn.agda Thu Jun 30 06:57:05 2022 +0900 +++ b/src/zorn.agda Thu Jun 30 10:40:24 2022 +0900 @@ -230,7 +230,7 @@ x=fy : x ≡ f y record IsSup (A B : HOD) {x : Ordinal } (xa : odef A x) : Set n where - ield + field x<sup : {y : Ordinal} → odef B y → (y ≡ x ) ∨ (y << x ) record ZChain1 ( z : Ordinal ) : Set (Level.suc n) where @@ -249,7 +249,7 @@ chain∋init : odef chain init initial : {y : Ordinal } → odef chain y → * init ≤ * y f-next : {a : Ordinal } → odef chain a → odef chain (f a) - f-total : {x : Ordinal} → IsTotalOrderSet chain + f-total : IsTotalOrderSet chain 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 → * a < * b → odef chain b @@ -408,17 +408,22 @@ → ((z : Ordinal) → z o< x → ZChain1 z ) → ZChain1 x sind f mf {y} ay x prev with Oprev-p x ... | yes op = sc4 where + open ZChain1 px = Oprev.oprev op sc : ZChain1 px sc = prev px (subst (λ k → px o< k) (Oprev.oprev=x op) <-osuc ) + no-ext : ZChain1 x + no-ext = record { supf = s01 ; chain-mono = ? } where + s01 : Ordinal → HOD + s01 z = supf (prev px (subst (λ k → px o< k) (Oprev.oprev=x op) <-osuc )) z sc4 : ZChain1 x sc4 with ODC.∋-p O A (* x) - ... | no noax = ? + ... | no noax = {!!} ... | yes ax with ODC.p∨¬p O ( HasPrev A (ZChain1.supf sc x) ax f ) - ... | case1 pr = ? + ... | case1 pr = {!!} ... | case2 ¬fy<x with ODC.p∨¬p O (IsSup A (ZChain1.supf sc x) ax ) - ... | case1 is-sup = ? where + ... | case1 is-sup = {!!} where -- A∋sc -- x is a sup of zc sup0 : SUP A (ZChain1.supf sc x ) sup0 = record { sup = * x ; A∋maximal = ax ; x<sup = x21 } where @@ -430,8 +435,8 @@ sp = SUP.sup sup0 schain : HOD schain = record { od = record { def = λ x → odef (ZChain1.supf sc x) x ∨ (FClosure A f (& sp) x) } ; odmax = & A ; <odmax = λ {y} sy → {!!} } - ... | case2 ¬x=sup = ? - ... | no ¬ox = ? + ... | case2 ¬x=sup = {!!} + ... | no ¬ox = {!!} ind : ( f : Ordinal → Ordinal ) → (mf : ≤-monotonic-f A f ) {y : Ordinal} (ay : odef A y) → (zc0 : ZChain0 A) → (x : Ordinal) → ((z : Ordinal) → z o< x → ZChain A y f zc0 z) → ZChain A y f zc0 x @@ -455,12 +460,13 @@ no-extenion : ( {a b : Ordinal} → odef (ZChain.chain zc) a → b o< osuc x → (ab : odef A b) → HasPrev A (ZChain.chain zc) ab f ∨ IsSup A (ZChain.chain zc) ab → * a < * b → odef (ZChain.chain zc) b ) → ZChain A y f zc0 x - no-extenion is-max = record { supf = supf0 ; chain⊆A = subst (λ k → k ⊆' A ) ? (ZChain.chain⊆A zc) - ; initial = subst (λ k → {y₁ : Ordinal} → odef k y₁ → * y ≤ * y₁ ) ? (ZChain.initial zc) - ; f-next = subst (λ k → {a : Ordinal} → odef k a → odef k (f a) ) ? (ZChain.f-next zc) - ; chain∋init = subst (λ k → odef k y ) ? (ZChain.chain∋init zc) ; pmono = {!!} - ; is-max = subst (λ k → {a b : Ordinal} → odef k a → b o< osuc x → (ab : odef A b) → - HasPrev A k ab f ∨ IsSup A k ab → * a < * b → odef k b ) ? is-max } where + no-extenion is-max = record { chain⊆A = ? -- subst (λ k → k ⊆' A ) {!!} (ZChain.chain⊆A zc) + ; initial = subst (λ k → {y₁ : Ordinal} → odef k y₁ → * y ≤ * y₁ ) {!!} (ZChain.initial zc) + ; f-next = subst (λ k → {a : Ordinal} → odef k a → odef k (f a) ) {!!} (ZChain.f-next zc) + ; f-total = ? + ; chain∋init = subst (λ k → odef k y ) {!!} (ZChain.chain∋init zc) + ; is-max = subst (λ k → {a b : Ordinal} → odef k a → b o< osuc x → (ab : odef A b) → + HasPrev A k ab f ∨ IsSup A k ab → * a < * b → odef k b ) {!!} is-max } where supf0 : Ordinal → HOD supf0 z with trio< z x ... | tri< a ¬b ¬c = supf z @@ -497,8 +503,8 @@ ... | case1 b=x = subst (λ k → odef chain0 k ) (trans (sym (HasPrev.x=fy pr )) (trans &iso (sym b=x)) ) ( ZChain.f-next zc (HasPrev.ay pr)) ... | case2 ¬fy<x with ODC.p∨¬p O (IsSup A (ZChain.chain zc) ax ) ... | case1 is-sup = -- x is a sup of zc - record { chain⊆A = {!!} ; f-next = {!!} ; pmono = {!!} - ; initial = {!!} ; chain∋init = {!!} ; is-max = {!!} ; supf = supf0 } where + record { chain⊆A = {!!} ; f-next = {!!} ; f-total = {!!} + ; initial = {!!} ; chain∋init = {!!} ; is-max = {!!} } where sup0 : SUP A (ZChain.chain zc) sup0 = record { sup = * x ; A∋maximal = ax ; x<sup = x21 } where x21 : {y : HOD} → ZChain.chain zc ∋ y → (y ≡ * x) ∨ (y < * x) @@ -606,8 +612,8 @@ ... | 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 = record { chain⊆A = ? ; f-next = ? ; chain = ? - ; initial = ? ; chain∋init = ? ; is-max = {!!} } where --- limit ordinal case + ... | no ¬ox = record { chain⊆A = {!!} ; f-next = {!!} ; f-total = ? + ; initial = {!!} ; chain∋init = {!!} ; is-max = {!!} } where --- limit ordinal case supf : Ordinal → HOD supf = ZChain1.supf zc0 Uz⊆A : {z : Ordinal} → UZFChain A f zc0 x y prev z ∨ FClosure A f y z → odef A z @@ -626,12 +632,15 @@ u-initial {z} (case2 u) = s≤fc _ f mf u u-chain∋init : odef Uz y u-chain∋init = case2 ( init ay ) - supf0 : Ordinal → HOD supf0 z with trio< z x ... | tri< a ¬b ¬c = ZChain1.supf zc0 z ... | tri≈ ¬a b ¬c = Uz ... | tri> ¬a ¬b c = Uz + u-mono : {z : Ordinal} {w : Ordinal} → z o≤ w → w o≤ x → supf0 z ⊆' supf0 w + u-mono {z} {w} z≤w w≤x {i} with trio< z x | trio< w x + ... | s | t = ? + seq : Uz ≡ supf0 x seq with trio< x x ... | tri< a ¬b ¬c = ⊥-elim ( ¬b refl ) @@ -674,7 +683,9 @@ zorn04 : ZChain A (& s) (cf nmx) zc0 (& A) zorn04 = SZ (cf nmx) (cf-is-≤-monotonic nmx) (subst (λ k → odef A k ) &iso as ) total : IsTotalOrderSet (ZChain.chain zorn04) - total = ZChain.f-total (SZ (cf nmx) (cf-is-≤-monotonic nmx) (subst (λ k → odef A k ) &iso as) ) + total {a} {b} = zorn06 where + zorn06 : odef (ZChain.chain zorn04) (& a) → odef (ZChain.chain zorn04) (& b) → Tri (a < b) (a ≡ b) (b < a) + zorn06 = ZChain.f-total (SZ (cf nmx) (cf-is-≤-monotonic nmx) (subst (λ k → odef A k ) &iso as) ) -- usage (see filter.agda ) --