Mercurial > hg > Members > kono > Proof > ZF-in-agda
changeset 1485:5dacb669f13b
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 01 Jul 2024 15:43:35 +0900 |
parents | 0b30bb7c7501 |
children | 49c3ef1e9b4f |
files | src/BAlgebra.agda src/ODUtil.agda src/Topology.agda src/ZProduct.agda |
diffstat | 4 files changed, 133 insertions(+), 95 deletions(-) [+] |
line wrap: on
line diff
--- a/src/BAlgebra.agda Mon Jul 01 07:00:04 2024 +0900 +++ b/src/BAlgebra.agda Mon Jul 01 15:43:35 2024 +0900 @@ -39,9 +39,9 @@ lem1 : {x : Ordinal} → odef od∅ x → odef (L \ L) x lem1 {x} lt = ⊥-elim ( ¬∅∋ (subst (λ k → odef od∅ k) (sym &iso) lt )) -\-cong : (P Q R S : HOD) → P =h= R → Q =h= S → (P \ Q) =h= (R \ S) -eq→ (\-cong P Q R S p=r q=s) {x} ⟪ px , npq ⟫ = ⟪ eq→ p=r px , (λ lt → npq (eq← q=s lt) ) ⟫ -eq← (\-cong P Q R S p=r q=s ) {x} ⟪ rx , nrs ⟫ = ⟪ eq← p=r rx , (λ lt → nrs (eq→ q=s lt) ) ⟫ +\-cong : (P R Q S : HOD) → P =h= R → Q =h= S → (P \ Q) =h= (R \ S) +eq→ (\-cong P R Q S p=r q=s) {x} ⟪ px , npq ⟫ = ⟪ eq→ p=r px , (λ lt → npq (eq← q=s lt) ) ⟫ +eq← (\-cong P R Q S p=r q=s ) {x} ⟪ rx , nrs ⟫ = ⟪ eq← p=r rx , (λ lt → nrs (eq→ q=s lt) ) ⟫ L\Lx=x : {x : HOD} → x ⊆ L → (L \ ( L \ x )) =h= x L\Lx=x {x} x⊆L = record { eq→ = lem03 ; eq← = lem04 } where
--- a/src/ODUtil.agda Mon Jul 01 07:00:04 2024 +0900 +++ b/src/ODUtil.agda Mon Jul 01 15:43:35 2024 +0900 @@ -54,6 +54,10 @@ eq→ (*iso∩ {p} {q}) {x} ⟪ px , qx ⟫ = ⟪ eq← *iso px , eq← *iso qx ⟫ eq← (*iso∩ {p} {q}) {x} ⟪ px , qx ⟫ = ⟪ eq→ *iso px , eq→ *iso qx ⟫ +∩-cong : {A B C D : HOD} → A =h= B → C =h= D → (A ∩ C) =h= (B ∩ D) +eq→ (∩-cong eq1 eq2) {x} lt = ⟪ eq→ eq1 (proj1 lt) , eq→ eq2 (proj2 lt) ⟫ +eq← (∩-cong eq1 eq2) {x} lt = ⟪ eq← eq1 (proj1 lt) , eq← eq2 (proj2 lt) ⟫ + power→⊆ : ( A t : HOD) → Power A ∋ t → t ⊆ A power→⊆ A t PA∋t t∋x = subst (λ k → odef A k ) &iso ( t1 (subst (λ k → odef t k ) (sym &iso) t∋x)) where t1 : {x : HOD } → t ∋ x → A ∋ x @@ -82,6 +86,12 @@ lemma {y} (case1 a) = ordtrans (<odmax A a) (omax-x _ _) lemma {y} (case2 b) = ordtrans (<odmax B b) (omax-y _ _) +∪-cong : {A B C D : HOD} → A =h= B → C =h= D → (A ∪ C) =h= (B ∪ D) +eq→ (∪-cong {A} {B} {C} {D} eq1 eq2) {x} (case1 lt) = case1 (eq→ eq1 lt) +eq→ (∪-cong {A} {B} {C} {D} eq1 eq2) {x} (case2 lt) = case2 (eq→ eq2 lt) +eq← (∪-cong {A} {B} {C} {D} eq1 eq2) {x} (case1 lt) = case1 (eq← eq1 lt) +eq← (∪-cong {A} {B} {C} {D} eq1 eq2) {x} (case2 lt) = case2 (eq← eq2 lt) + x∪x≡x : { A : HOD } → (A ∪ A) =h= A x∪x≡x {A} = record { eq← = λ {x} lt → case1 lt ; eq→ = lem00 } where lem00 : {x : Ordinal} → odef A x ∨ odef A x → odef A x
--- a/src/Topology.agda Mon Jul 01 07:00:04 2024 +0900 +++ b/src/Topology.agda Mon Jul 01 15:43:35 2024 +0900 @@ -86,15 +86,15 @@ CS∋L : CS ∋ L CS∋L = ⟪ (λ lt → eq→ *iso lt) , subst (λ k → odef OS k) (sym lem0) OS∋od∅ ⟫ where lem0 : & (L \ * (& L)) ≡ & od∅ - lem0 = ==→o≡ ( ==-trans (\-cong L (* (& L)) L L ==-refl *iso ) L\L=0 ) + lem0 = ==→o≡ ( ==-trans (\-cong L L (* (& L)) L ==-refl *iso ) L\L=0 ) CS⊆PL : CS ⊆ Power L CS⊆PL {x} Cx y xy = proj1 Cx xy P\CS=OS : {cs : HOD} → CS ∋ cs → OS ∋ ( L \ cs ) - P\CS=OS {cs} ⟪ cs⊆L , olcs ⟫ = subst (λ k → odef OS k) (==→o≡ (\-cong L (* (& cs)) L cs ==-refl *iso)) olcs + P\CS=OS {cs} ⟪ cs⊆L , olcs ⟫ = subst (λ k → odef OS k) (==→o≡ (\-cong L L (* (& cs)) cs ==-refl *iso)) olcs P\OS=CS : {cs : HOD} → OS ∋ cs → CS ∋ ( L \ cs ) P\OS=CS {os} oos = ⟪ (λ lt → proj1 (eq→ *iso lt)) , subst (λ k → odef OS k) (==→o≡ (==-sym (==-trans ( - \-cong L (* ( & (L \ os))) L (L \ os) ==-refl *iso ) (L\Lx=x {os} (os⊆L oos)) ))) oos ⟫ + \-cong L L (* ( & (L \ os))) (L \ os) ==-refl *iso ) (L\Lx=x {os} (os⊆L oos)) ))) oos ⟫ open Topology @@ -136,7 +136,7 @@ cc08 = cs⊆L top (subst (λ k → odef (CS top) k ) (sym &iso) cc ) cc09 : (L \ * (& (L \ * c))) =h= (* c) cc09 = begin - L \ * (& (L \ * c)) ≈⟨ \-cong L (* (& (L \ * c))) L (L \ * c) ==-refl *iso ⟩ + L \ * (& (L \ * c)) ≈⟨ \-cong L L (* (& (L \ * c))) (L \ * c) ==-refl *iso ⟩ L \ (L \ * c) ≈⟨ L\Lx=x {* c} cc08 ⟩ * c ∎ where open EqHOD ==-Setoid @@ -277,17 +277,16 @@ pbase⊆PL : {P Q : HOD} → (TP : Topology P) → (TQ : Topology Q) → {x : Ordinal } → BaseP TP Q x ∨ BaseQ P TQ x → odef (Power (ZFP P Q)) x pbase⊆PL {P} {Q} TP TQ {z} (case1 record { p = p ; op = op ; prod = prod }) = subst (λ k → odef (Power (ZFP P Q)) k ) (sym prod) tp01 where tp01 : odef (Power (ZFP P Q)) (& (ZFP (* p) Q)) - tp01 w wz = ? - -- tp01 w wz with subst (λ k → odef k w ) ? wz - -- ... | ab-pair {a} {b} pa qb = ZFP→ (subst (λ k → odef P k ) (sym &iso) tp03 ) (subst (λ k → odef Q k ) (sym &iso) qb ) where - -- tp03 : odef P a - -- tp03 = os⊆L TP (subst (λ k → odef (OS TP) k) (sym &iso) op) pa + tp01 w wz with eq→ *iso wz + ... | ab-pair {a} {b} pa qb = ZFP→ (subst (λ k → odef P k ) (sym &iso) tp03 ) (subst (λ k → odef Q k ) (sym &iso) qb ) where + tp03 : odef P a + tp03 = os⊆L TP (subst (λ k → odef (OS TP) k) (sym &iso) op) pa pbase⊆PL {P} {Q} TP TQ {z} (case2 record { q = q ; oq = oq ; prod = prod }) = subst (λ k → odef (Power (ZFP P Q)) k ) (sym prod) tp01 where tp01 : odef (Power (ZFP P Q)) (& (ZFP P (* q) )) - tp01 w wz = ? -- with subst (λ k → odef k w ) ? wz - -- ... | ab-pair {a} {b} pa qb = ZFP→ (subst (λ k → odef P k ) (sym &iso) pa ) (subst (λ k → odef Q k ) (sym &iso) tp03 ) where - -- tp03 : odef Q b - -- tp03 = os⊆L TQ (subst (λ k → odef (OS TQ) k) (sym &iso) oq) qb + tp01 w wz with eq→ *iso wz + ... | ab-pair {a} {b} pa qb = ZFP→ (subst (λ k → odef P k ) (sym &iso) pa ) (subst (λ k → odef Q k ) (sym &iso) tp03 ) where + tp03 : odef Q b + tp03 = os⊆L TQ (subst (λ k → odef (OS TQ) k) (sym &iso) oq) qb pbase : {P Q : HOD} → Topology P → Topology Q → HOD pbase {P} {Q} TP TQ = record { od = record { def = λ x → BaseP TP Q x ∨ BaseQ P TQ x } ; odmax = & (Power (ZFP P Q)) ; <odmax = tp00 } where @@ -307,6 +306,12 @@ open _covers_ +cong-covers : (P Q R S : HOD) → P =h= Q → R =h= S → P covers R → Q covers S +cong-covers P Q R S P=Q R=S record { cover = cover ; P∋cover = P∋cover ; isCover = isCover } + = record { cover = λ {x} px → cover (eq← R=S px) ; P∋cover = λ {x} px → eq→ P=Q (P∋cover (eq← R=S px)) + ; isCover = λ {x} px → isCover (eq← R=S px) } + + -- Finite Intersection Property record FIP {L : HOD} (top : Topology L) : Set n where @@ -355,22 +360,24 @@ CX : {X : Ordinal} → * X ⊆ OS top → Ordinal CX {X} ox = & ( Replace (* X) (λ z → L \ z ) RC\ ) CCX : {X : Ordinal} → (os : * X ⊆ OS top) → * (CX os) ⊆ CS top - CCX {X} os {x} ox = ? -- with subst (λ k → odef k x) ? ox - -- ... | record { z = z ; az = az ; x=ψz = x=ψz } = ⟪ fip05 , fip06 ⟫ where -- x ≡ & (L \ * z) - -- fip07 : z ≡ & (L \ * x) - -- fip07 = subst₂ (λ j k → j ≡ k) &iso (cong (λ k → & ( L \ k )) (cong (*) (sym x=ψz))) ( cong (&) ( ==→o≡ record { eq→ = fip09 ; eq← = fip08 } )) where - -- fip08 : {x : Ordinal} → odef L x ∧ (¬ odef (* (& (L \ * z))) x) → odef (* z) x - -- fip08 {x} ⟪ Lx , not ⟫ with subst (λ k → (¬ odef k x)) ? not -- ( odef L x ∧ odef (* z) x → ⊥) → ⊥ - -- ... | Lx∧¬zx = ODC.double-neg-elim O ( λ nz → Lx∧¬zx ⟪ Lx , nz ⟫ ) - -- fip09 : {x : Ordinal} → odef (* z) x → odef L x ∧ (¬ odef (* (& (L \ * z))) x) - -- fip09 {w} zw = ⟪ os⊆L top (os (subst (λ k → odef (* X) k) (sym &iso) az)) zw , subst (λ k → ¬ odef k w) ? fip10 ⟫ where - -- fip10 : ¬ (odef (L \ * z) w) - -- fip10 ⟪ Lw , nzw ⟫ = nzw zw - -- fip06 : odef (OS top) (& (L \ * x)) - -- fip06 = os ( subst (λ k → odef (* X) k ) fip07 az ) - -- fip05 : * x ⊆ L - -- fip05 {w} xw = proj1 ( subst (λ k → odef k w) (trans (cong (*) x=ψz) ? ) xw ) - + CCX {X} os {x} ox with eq→ *iso ox + ... | record { z = z ; az = az ; x=ψz = x=ψz } = ⟪ fip05 , fip06 ⟫ where -- x ≡ & (L \ * z) + fip07 : z ≡ & (L \ * x) + fip07 = subst₂ (λ j k → j ≡ k) &iso (cong (λ k → & ( L \ k )) (cong (*) (sym x=ψz))) ( ==→o≡ record { eq→ = fip09 ; eq← = fip08 } ) where + fip08 : {x : Ordinal} → odef L x ∧ (¬ odef (* (& (L \ * z))) x) → odef (* z) x + fip08 {x} ⟪ Lx , not ⟫ = double-neg-elim ( λ nz → not (eq← *iso ⟪ Lx , nz ⟫) ) -- ( odef L x ∧ odef (* z) x → ⊥) → ⊥ + fip09 : {x : Ordinal} → odef (* z) x → odef L x ∧ (¬ odef (* (& (L \ * z))) x) + fip09 {w} zw = ⟪ os⊆L top (os (subst (λ k → odef (* X) k) (sym &iso) az)) zw , (λ lt → fip10 (eq→ *iso lt)) ⟫ where + fip10 : ¬ (odef (L \ * z) w) + fip10 ⟪ Lw , nzw ⟫ = nzw zw + fip06 : odef (OS top) (& (L \ * x)) + fip06 = os ( subst (λ k → odef (* X) k ) fip07 az ) + fip05 : * x ⊆ L + fip05 {w} xw = proj1 ( eq→ (begin + * x ≈⟨ o≡→== x=ψz ⟩ + * (& ( L \ * z )) ≈⟨ *iso ⟩ + L \ * z ∎ ) xw ) where + open EqHOD ==-Setoid -- -- X covres L means Intersection of (CX X) contains nothing -- then some finite Intersection of (CX X) contains nothing ( contraposition of FIP .i.e. CFIP) @@ -387,19 +394,18 @@ fip02 {x} sc with trio< x o∅ ... | tri< a ¬b ¬c = ⊥-elim ( ¬x<0 a ) ... | tri> ¬a ¬b c = c - ... | tri≈ ¬a b ¬c = ⊥-elim (¬sb (subst₂ (λ j k → Subbase j k ) ? b sc )) + ... | tri≈ ¬a b ¬c = ⊥-elim (¬sb (sb⊆ (eq→ *iso) (subst (λ k → Subbase (* (CX ox)) k ) b sc ))) -- we have some intersection because L is not empty (if we have an element of L, we don't need choice) fip26 : odef (* (CX ox)) (& (L \ * ( cover oc ( x∋minimal L (0<P→ne 0<L) ) ))) - fip26 = subst (λ k → odef k (& (L \ * ( cover oc ( x∋minimal L (0<P→ne 0<L) ) )) )) ? - record { z = cover oc (x∋minimal L (0<P→ne 0<L)) ; az = P∋cover oc (x∋minimal L (0<P→ne 0<L)) ; x=ψz = refl } + fip26 = eq← *iso record { z = cover oc (x∋minimal L (0<P→ne 0<L)) ; az = P∋cover oc (x∋minimal L (0<P→ne 0<L)) ; x=ψz = refl } fip25 : odef L( FIP.limit fip (CCX ox) fip02 ) fip25 = FIP.L∋limit fip (CCX ox) fip02 fip26 fip20 : {y : Ordinal } → (Xy : odef (* X) y) → ¬ ( odef (* y) ( FIP.limit fip (CCX ox) fip02 )) fip20 {y} Xy yl = proj2 fip21 yl where fip22 : odef (* (CX ox)) (& ( L \ * y )) - fip22 = subst (λ k → odef k (& ( L \ * y ))) ? record { z = y ; az = Xy ; x=ψz = refl } + fip22 = eq← *iso record { z = y ; az = Xy ; x=ψz = refl } fip21 : odef (L \ * y) ( FIP.limit fip (CCX ox) fip02 ) - fip21 = subst (λ k → odef k ( FIP.limit fip (CCX ox) fip02 ) ) ? ( FIP.is-limit fip (CCX ox) fip02 fip22 ) + fip21 = eq→ *iso ( FIP.is-limit fip (CCX ox) fip02 fip22 ) -- create HOD from Subbase ( finite intersection ) finCoverSet : {X : Ordinal } → (x : Ordinal) → Subbase (Replace (* X) (λ z → L \ z) RC\ ) x → HOD finCoverSet {X} x (gi rx) = ( L \ * x ) , ( L \ * x ) @@ -414,7 +420,7 @@ fip60 : (x : Ordinal) → (sb : Subbase (Replace (* X) (λ z → L \ z) RC\ ) x ) → Finite-∪ (* X) (& (finCoverSet {X} x sb)) fip60 x (gi rx) = subst (λ k → Finite-∪ (* X) k) fip62 (fin-i (fip61 rx)) where fip62 : & (* (& (L \ * x)) , * (& (L \ * x))) ≡ & ((L \ * x) , (L \ * x)) - fip62 = cong₂ (λ j k → & (j , k )) ? ? + fip62 = ==→o≡ (pair-subst2 *iso *iso ) fip61 : odef (Replace (* X) (_\_ L) RC\ ) x → odef (* X) ( & ((L \ * x ) )) fip61 record { z = z1 ; az = az1 ; x=ψz = x=ψz1 } = subst (λ k → odef (* X) k) fip33 az1 where fip34 : * z1 ⊆ L @@ -422,26 +428,29 @@ fip33 : z1 ≡ & (L \ * x) fip33 = begin z1 ≡⟨ sym &iso ⟩ - & (* z1) ≡⟨ cong (&) ? ⟩ - & (L \ ( L \ * z1)) ≡⟨ cong (λ k → & ( L \ k )) ? ⟩ + & (* z1) ≡⟨ sym ( ==→o≡ (L\Lx=x {* z1} fip34)) ⟩ + & (L \ ( L \ * z1)) ≡⟨ ==→o≡ ( \-cong L L ( L \ * z1) (* (& ( L \ * z1))) ==-refl (==-sym *iso) ) ⟩ & (L \ * (& ( L \ * z1))) ≡⟨ cong (λ k → & ( L \ * k )) (sym x=ψz1) ⟩ & (L \ * x ) ∎ where open ≡-Reasoning fip60 x∩y (g∩ {x} {y} sx sy) = subst (λ k → Finite-∪ (* X) k) fip62 ( fin-∪ (fip60 x sx) (fip60 y sy) ) where fip62 : & (* (& (finCoverSet x sx)) ∪ * (& (finCoverSet y sy))) ≡ & (finCoverSet x sx ∪ finCoverSet y sy) - fip62 = cong (&) ( begin - (* (& (finCoverSet x sx)) ∪ * (& (finCoverSet y sy))) ≡⟨ cong₂ _∪_ ? ? ⟩ - finCoverSet x sx ∪ finCoverSet y sy ∎ ) where open ≡-Reasoning + fip62 = ==→o≡ (begin + (* (& (finCoverSet x sx)) ∪ * (& (finCoverSet y sy))) + ≈⟨ ∪-cong {* (& (finCoverSet x sx))} {finCoverSet x sx} {* (& (finCoverSet y sy))} {finCoverSet y sy} *iso *iso ⟩ + finCoverSet x sx ∪ finCoverSet y sy ∎ ) + where open EqHOD ==-Setoid -- is also a cover isCover1 : {X : Ordinal} (xo : * X ⊆ OS top) (xcp : * X covers L) → * (finCover xo xcp) covers L - isCover1 {X} xo xcp = subst₂ (λ j k → j covers k ) ? (subst (λ k → L \ k ≡ L) ? ? ) -- L\0=L) + isCover1 {X} xo xcp = cong-covers _ _ _ _ (==-sym *iso) (==-trans (\-cong L L (* o∅) od∅ ==-refl o∅==od∅) L\0=L) + -- subst₂ (λ j k → j covers k ) ? (subst (λ k → L \ k ≡ L) ? ? ) -- L\0=L) (fip70 o∅ (finCoverBase xo xcp)) where fip70 : (x : Ordinal) → (sb : Subbase (Replace (* X) (λ z → L \ z) RC\ ) x ) → (finCoverSet {X} x sb) covers (L \ * x) fip70 x (gi rx) = fip73 where fip73 : ((L \ * x) , (L \ * x)) covers (L \ * x) -- obvious fip73 = record { cover = λ _ → & (L \ * x) ; P∋cover = λ _ → case1 refl - ; isCover = λ {x} lt → subst (λ k → odef k x) ? lt } - fip70 x∩y (g∩ {x} {y} sx sy) = subst (λ k → finCoverSet (& (* x ∩ * y)) (g∩ sx sy) covers - (L \ k)) ? ( fip43 {_} {L} {* x} {* y} (fip71 (fip70 x sx)) (fip72 (fip70 y sy)) ) where + ; isCover = λ {x} lt → eq← *iso lt } + fip70 x∩y (g∩ {x} {y} sx sy) = cong-covers _ _ _ _ ==-refl (\-cong L L (* x ∩ * y) (* (& (* x ∩ * y))) ==-refl (==-sym *iso)) + ( fip43 {_} {L} {* x} {* y} (fip71 (fip70 x sx)) (fip72 (fip70 y sy)) ) where fip71 : {a b c : HOD} → a covers c → (a ∪ b) covers c fip71 {a} {b} {c} cov = record { cover = cover cov ; P∋cover = λ lt → case1 (P∋cover cov lt) ; isCover = isCover cov } @@ -467,6 +476,8 @@ ... | case1 La = isCover ca La ... | case2 Lb = isCover cb Lb + + Compact→FIP : {L : HOD} → (top : Topology L ) → Compact top → FIP top Compact→FIP {L} top compact with trio< (& L) o∅ ... | tri< a ¬b ¬c = ⊥-elim ( ¬x<0 a ) @@ -476,18 +487,23 @@ -- if 0 ≡ X then ¬ odef X x fip000 : {X x : Ordinal} (CX : * X ⊆ CS top) → ({y : Ordinal} → Subbase (* X) y → o∅ o< y) → ¬ odef (* X) x fip000 {X} {x} CX fip xx with trio< o∅ X - ... | tri< 0<X ¬b ¬c = ¬∅∋ (subst₂ (λ j k → odef j k ) (trans (trans ? (cong (*) L=0)) ? ) (sym &iso) - ( cs⊆L top (subst (λ k → odef (CS top) k ) (sym &iso) (CX xx)) Xe )) where + ... | tri< 0<X ¬b ¬c = ¬∅∋ (eq→ (begin + L ≈⟨ ==-sym *iso ⟩ + * (& L) ≈⟨ o≡→== L=0 ⟩ + * o∅ ≈⟨ o∅==od∅ ⟩ + od∅ ∎ ) (subst (λ k → odef L k ) (sym &iso) + ( cs⊆L top (subst (λ k → odef (CS top) k ) (sym &iso) (CX xx)) Xe ))) where + open EqHOD ==-Setoid 0<x : o∅ o< x 0<x = fip (gi xx ) e : HOD -- we have an element of x e = minimal (* x) (0<P→ne (subst (λ k → o∅ o< k) (sym &iso) 0<x) ) Xe : odef (* x) (& e) Xe = x∋minimal (* x) (0<P→ne (subst (λ k → o∅ o< k) (sym &iso) 0<x) ) - ... | tri≈ ¬a 0=X ¬c = ⊥-elim ( ¬∅∋ (subst₂ (λ j k → odef j k ) ( begin - * X ≡⟨ cong (*) (sym 0=X) ⟩ - * o∅ ≡⟨ ? ⟩ - od∅ ∎ ) (sym &iso) xx ) ) where open ≡-Reasoning + ... | tri≈ ¬a 0=X ¬c = ⊥-elim ( ¬∅∋ (eq→ ( begin + * X ≈⟨ o≡→== (sym 0=X) ⟩ + * o∅ ≈⟨ o∅==od∅ ⟩ + od∅ ∎ ) (subst (λ k → odef (* X) k ) (sym &iso) xx ) )) where open EqHOD ==-Setoid ... | tri> ¬a ¬b c = ⊥-elim ( ¬x<0 c ) ... | tri> ¬a ¬b 0<L = record { limit = limit ; is-limit = fip00 } where -- set of coset of X @@ -495,13 +511,13 @@ OX : {X : Ordinal} → * X ⊆ CS top → Ordinal OX {X} ox = & ( Replace (* X) (λ z → L \ z ) RC\) OOX : {X : Ordinal} → (cs : * X ⊆ CS top) → * (OX cs) ⊆ OS top - OOX {X} cs {x} ox = ? -- with subst (λ k → odef k x) ? ox - -- ... | record { z = z ; az = az ; x=ψz = x=ψz } = subst (λ k → odef (OS top) k) (sym x=ψz) ( P\CS=OS top (cs comp01)) where - -- comp01 : odef (* X) (& (* z)) - -- comp01 = subst (λ k → odef (* X) k) (sym &iso) az - -- if all finite intersection of X contains something, - -- there is no finite cover. From Compactness, (OX X) is not a cover of L ( contraposition of Compact) - -- it means there is a limit + OOX {X} cs {x} ox with eq→ *iso ox + ... | record { z = z ; az = az ; x=ψz = x=ψz } = subst (λ k → odef (OS top) k) (sym x=ψz) ( P\CS=OS top (cs comp01)) where + comp01 : odef (* X) (& (* z)) + comp01 = subst (λ k → odef (* X) k) (sym &iso) az + -- if all finite intersection of X contains something, + -- there is no finite cover. From Compactness, (OX X) is not a cover of L ( contraposition of Compact) + -- it means there is a limit record NC {X : Ordinal} (CX : * X ⊆ CS top) (fip : {x : Ordinal} → Subbase (* X) x → o∅ o< x) (0<X : o∅ o< X) : Set n where field -- find an element x, which is not covered (which is a limit point) x : Ordinal @@ -529,43 +545,52 @@ fp22 : e ⊆ L fp22 {x} lt = cs⊆L top (CX Xe) lt fp21 : & e ≡ & (L \ * (& (L \ e))) - fp21 = cong (&) (trans (sym ?) (cong (λ k → L \ k) ?)) + fp21 = ==→o≡ ( ==-trans (==-sym (L\Lx=x {e} fp22 )) (\-cong L L (L \ e) (* (& (L \ e))) ==-refl (==-sym *iso ))) fp23 : (L \ * (& (L \ e))) ⊆ (L \ Union (* o∅)) - fp23 {x} ⟪ Lx , _ ⟫ = ⟪ Lx , ( λ lt → ⊥-elim ( ¬∅∋ (subst₂ (λ j k → odef j k ) ? (sym &iso) (Own.ao lt )))) ⟫ + fp23 {x} ⟪ Lx , _ ⟫ = ⟪ Lx , ( λ lt → ⊥-elim ( ¬∅∋ (eq→ (begin + (* o∅) ≈⟨ o∅==od∅ ⟩ + od∅ ∎ ) (subst (λ k → odef (* o∅) k ) (sym &iso) (Own.ao lt ))))) ⟫ + where open EqHOD ==-Setoid fp02 t (fin-i {x} tx ) = record { i = x ; sb = gi fp03 ; t⊆i = fp24 } where -- we have a single cover x, L \ * x is single finite intersection fp24 : (L \ * x) ⊆ (L \ Union (* (& (* x , * x)))) - fp24 {y} ⟪ Lx , not ⟫ = ⟪ Lx , subst (λ k → ¬ odef (Union k) y) ? fp25 ⟫ where - fp25 : ¬ odef (Union (* x , * x)) y - fp25 record { owner = .(& (* x)) ; ao = (case1 refl) ; ox = ox } = not (subst (λ k → odef k y) ? ox ) - fp25 record { owner = .(& (* x)) ; ao = (case2 refl) ; ox = ox } = not (subst (λ k → odef k y) ? ox ) + fp24 {y} ⟪ Lx , not ⟫ = ⟪ Lx , fp26 ⟫ where + fp26 : ¬ odef (Union (* (& (* x , * x)))) y + fp26 record { owner = owner ; ao = ao ; ox = ox } with eq→ *iso ao + ... | case1 refl = not (eq→ *iso ox ) + ... | case2 refl = not (eq→ *iso ox ) fp03 : odef (* X) (& (L \ * x)) -- becase x is an element of Replace (* X) (λ z → L \ z ) - fp03 = ? -- with subst (λ k → odef k x ) ? tx - -- ... | record { z = z1 ; az = az1 ; x=ψz = x=ψz1 } = subst (λ k → odef (* X) k) fip33 az1 where - -- fip34 : * z1 ⊆ L - -- fip34 {w} wz1 = cs⊆L top (subst (λ k → odef (CS top) k) (sym &iso) (CX az1) ) wz1 - -- fip33 : z1 ≡ & (L \ * x) - -- fip33 = begin - -- z1 ≡⟨ sym &iso ⟩ - -- & (* z1) ≡⟨ cong (&) (sym (L\Lx=x fip34 )) ⟩ - -- & (L \ ( L \ * z1)) ≡⟨ cong (λ k → & ( L \ k )) ? ⟩ - -- & (L \ * (& ( L \ * z1))) ≡⟨ cong (λ k → & ( L \ * k )) (sym x=ψz1) ⟩ - -- & (L \ * x ) ∎ where open ≡-Reasoning + fp03 with eq→ *iso tx + ... | record { z = z1 ; az = az1 ; x=ψz = x=ψz1 } = subst (λ k → odef (* X) k) fip33 az1 where + fip34 : * z1 ⊆ L + fip34 {w} wz1 = cs⊆L top (subst (λ k → odef (CS top) k) (sym &iso) (CX az1) ) wz1 + fip33 : z1 ≡ & (L \ * x) + fip33 = trans (sym &iso ) (==→o≡ ( begin + (* z1) ≈⟨ ==-sym (L\Lx=x {* z1} fip34 ) ⟩ + (L \ ( L \ * z1)) ≈⟨ \-cong L L ( L \ * z1) (* x) ==-refl (==-trans (==-sym *iso) (o≡→== (sym x=ψz1)) ) ⟩ + (L \ * x ) ∎ ) ) where open EqHOD ==-Setoid fp02 t (fin-∪ {tx} {ty} ux uy ) = record { i = & (* (SB.i (fp02 tx ux)) ∪ * (SB.i (fp02 ty uy))) ; sb = fp11 ; t⊆i = fp35 } where fp35 : (L \ * (& (* (SB.i (fp02 tx ux)) ∪ * (SB.i (fp02 ty uy))))) ⊆ (L \ Union (* (& (* tx ∪ * ty)))) - fp35 = subst₂ (λ j k → (L \ j ) ⊆ (L \ Union k)) ? ? fp36 where + fp35 = λ lt → eq← fp42 ( fp36 (eq→ ( \-cong L L (* (& (* (SB.i (fp02 tx ux)) ∪ * (SB.i (fp02 ty uy))))) + (* (SB.i (fp02 tx ux)) ∪ * (SB.i (fp02 ty uy))) ==-refl *iso ) lt ) ) where + fp43 : (P : HOD ) → Union (* (& P)) =h= Union P + eq← (fp43 P) record { owner = owner ; ao = ao ; ox = ox } = record { owner = owner ; ao = eq← *iso ao ; ox = ox } + eq→ (fp43 P) record { owner = owner ; ao = ao ; ox = ox } = record { owner = owner ; ao = eq→ *iso ao ; ox = ox } + fp42 : ( L \ Union (* (& (* tx ∪ * ty)))) =h= (L \ Union (* tx ∪ * ty)) + eq→ fp42 {x} ⟪ lx , nux ⟫ = ⟪ lx , (λ lt → nux (eq← (fp43 _) lt) ) ⟫ + eq← fp42 {x} ⟪ lx , nux ⟫ = ⟪ lx , (λ lt → nux (eq→ (fp43 _) lt) ) ⟫ fp40 : {z tz : Ordinal } → Finite-∪ (* (OX CX)) tz → odef (Union (* tz )) z → odef L z fp40 {z} {.(Ordinals.o∅ O)} fin-e record { owner = owner ; ao = ao ; ox = ox } - = ⊥-elim ( ¬∅∋ (subst₂ (λ j k → odef j k ) ? (sym &iso) ao )) - fp40 {z} {.(& (* _ , * _))} (fin-i {w} x) uz = fp41 x (subst (λ k → odef (Union k) z) ? uz) where + = ⊥-elim ( ¬∅∋ (eq→ o∅==od∅ (subst (λ k → odef (* o∅) k ) (sym &iso) ao ))) + fp40 {z} {.(& (* _ , * _))} (fin-i {w} x) uz = fp41 x (eq→ (fp43 _) uz) where fp41 : (x : odef (* (OX CX)) w) → (uz : odef (Union (* w , * w)) z ) → odef L z fp41 x record { owner = .(& (* w)) ; ao = (case1 refl) ; ox = ox } = - os⊆L top (OOX CX (subst (λ k → odef (* (OX CX)) k) (sym &iso) x )) (subst (λ k → odef k z) ? ox ) + os⊆L top (OOX CX (subst (λ k → odef (* (OX CX)) k) (sym &iso) x )) (eq→ *iso ox ) fp41 x record { owner = .(& (* w)) ; ao = (case2 refl) ; ox = ox } = - os⊆L top (OOX CX (subst (λ k → odef (* (OX CX)) k) (sym &iso) x )) (subst (λ k → odef k z) ? ox ) - fp40 {z} {.(& (* _ ∪ * _))} (fin-∪ {x1} {y1} ftx fty) uz = ? -- with subst (λ k → odef (Union k) z ) ? uz - -- ... | record { owner = o ; ao = case1 x1o ; ox = oz } = fp40 ftx record { owner = o ; ao = x1o ; ox = oz } - -- ... | record { owner = o ; ao = case2 y1o ; ox = oz } = fp40 fty record { owner = o ; ao = y1o ; ox = oz } + os⊆L top (OOX CX (subst (λ k → odef (* (OX CX)) k) (sym &iso) x )) (eq→ *iso ox ) + fp40 {z} {.(& (* _ ∪ * _))} (fin-∪ {x1} {y1} ftx fty) uz with eq→ (fp43 _ ) uz + ... | record { owner = o ; ao = case1 x1o ; ox = oz } = fp40 ftx record { owner = o ; ao = x1o ; ox = oz } + ... | record { owner = o ; ao = case2 y1o ; ox = oz } = fp40 fty record { owner = o ; ao = y1o ; ox = oz } fp36 : (L \ (* (SB.i (fp02 tx ux)) ∪ * (SB.i (fp02 ty uy)))) ⊆ (L \ Union (* tx ∪ * ty)) fp36 {z} ⟪ Lz , not ⟫ = ⟪ Lz , fp37 ⟫ where fp37 : ¬ odef (Union (* tx ∪ * ty)) z @@ -573,7 +598,8 @@ fp38 : (L \ (* (SB.i (fp02 tx ux)))) ⊆ (L \ Union (* tx)) fp38 = SB.t⊆i (fp02 tx ux) fp39 : Union (* tx) ⊆ (* (SB.i (fp02 tx ux))) - fp39 {w} txw = ? -- with ∨L\X {L} {* (SB.i (fp02 tx ux))} (fp40 ux txw) + fp39 {w} txw with ∨L\X {L} {(SB.i (fp02 tx ux))} (fp40 ux ?) + ... | t = ? -- ... | case1 sb = sb -- ... | case2 lsb = ⊥-elim ( proj2 (fp38 lsb) txw ) fp37 record { owner = owner ; ao = (case2 ax) ; ox = ox } = not (case2 (fp39 record { owner = _ ; ao = ax ; ox = ox }) ) where @@ -584,16 +610,16 @@ -- ... | case1 sb = sb -- ... | case2 lsb = ⊥-elim ( proj2 (fp38 lsb) tyw ) fp04 : {tx ty : Ordinal} → & (* (& (L \ * tx)) ∩ * (& (L \ * ty))) ≡ & (L \ * (& (* tx ∪ * ty))) - fp04 {tx} {ty} = ? where -- cong (&) ( ==→o≡ record { eq→ = fp05 ; eq← = fp09 } ) where + fp04 {tx} {ty} = ==→o≡ record { eq→ = fp05 ; eq← = fp09 } where fp05 : {x : Ordinal} → odef (* (& (L \ * tx)) ∩ * (& (L \ * ty))) x → odef (L \ * (& (* tx ∪ * ty))) x - fp05 {x} lt = ? -- with subst₂ (λ j k → odef (j ∩ k) x ) ? ? lt - -- ... | ⟪ ⟪ Lx , ¬tx ⟫ , ⟪ Ly , ¬ty ⟫ ⟫ = subst (λ k → odef (L \ k) x) ? ⟪ Lx , fp06 ⟫ where - -- fp06 : ¬ odef (* tx ∪ * ty) x - -- fp06 (case1 tx) = ¬tx tx - -- fp06 (case2 ty) = ¬ty ty + fp05 {x} lt with eq← *iso∩ lt + ... | ⟪ ⟪ Lx , ¬tx ⟫ , ⟪ Ly , ¬ty ⟫ ⟫ = eq→ (\-cong L L (* tx ∪ * ty) (* (& (* tx ∪ * ty))) ==-refl (==-sym *iso) ) ⟪ Lx , fp06 ⟫ where + fp06 : ¬ odef (* tx ∪ * ty) x + fp06 (case1 tx) = ¬tx tx + fp06 (case2 ty) = ¬ty ty fp09 : {x : Ordinal} → odef (L \ * (& (* tx ∪ * ty))) x → odef (* (& (L \ * tx)) ∩ * (& (L \ * ty))) x - fp09 {x} lt with subst (λ k → odef (L \ k) x) ? lt - ... | ⟪ Lx , ¬tx∨ty ⟫ = subst₂ (λ j k → odef (j ∩ k) x ) ? ? + fp09 {x} lt with eq→ (\-cong L L (* (& (* tx ∪ * ty))) (* tx ∪ * ty) ==-refl *iso ) lt + ... | ⟪ Lx , ¬tx∨ty ⟫ = eq→ *iso∩ ⟪ ⟪ Lx , ( λ tx → ¬tx∨ty (case1 tx)) ⟫ , ⟪ Lx , ( λ ty → ¬tx∨ty (case2 ty)) ⟫ ⟫ fp11 : Subbase (* X) (& (L \ * (& ((* (SB.i (fp02 tx ux)) ∪ * (SB.i (fp02 ty uy))))))) fp11 = subst (λ k → Subbase (* X) k ) fp04 ( g∩ (SB.sb (fp02 tx ux)) (SB.sb (fp02 ty uy )) ) @@ -711,4 +737,3 @@ -
--- a/src/ZProduct.agda Mon Jul 01 07:00:04 2024 +0900 +++ b/src/ZProduct.agda Mon Jul 01 15:43:35 2024 +0900 @@ -76,6 +76,9 @@ eq← (proj2 (pair-subst {x} {y} {z} x=y)) {w} (case1 wz) = case1 wz eq← (proj2 (pair-subst {x} {y} {z} x=y)) {w} (case2 wy) = case2 (trans wy (sym ( ==→o≡ x=y))) +pair-subst2 : { x y z w : HOD } → x =h= y → z =h= w → ( (x , z ) =h= ( y , w )) +pair-subst2 x=y z=w = ==-trans (proj1 (pair-subst x=y) ) (proj2 (pair-subst z=w)) + -- We don't have this but x =h= y ( ord→== ) -- ord≡→== : { x y : HOD } → & x ≡ & y → x ≡ y -- ord≡→== eq = ? -- subst₂ (λ j k → j ≡ k ) *iso *iso ( cong ( λ k → * k ) eq )