Mercurial > hg > Members > kono > Proof > ZF-in-agda
changeset 1161:b45925515f77
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 20 Jan 2023 22:33:30 +0900 |
parents | 2479884b35b2 |
children | 0a6040d914f8 |
files | src/Topology.agda |
diffstat | 1 files changed, 46 insertions(+), 31 deletions(-) [+] |
line wrap: on
line diff
--- a/src/Topology.agda Fri Jan 20 17:02:09 2023 +0900 +++ b/src/Topology.agda Fri Jan 20 22:33:30 2023 +0900 @@ -39,7 +39,7 @@ OS : HOD OS⊆PL : OS ⊆ Power L o∩ : { p q : HOD } → OS ∋ p → OS ∋ q → OS ∋ (p ∩ q) - o∪ : { P : HOD } → P ⊂ OS → OS ∋ Union P + o∪ : { P : HOD } → P ⊆ OS → OS ∋ Union P OS∋od∅ : OS ∋ od∅ --- we may add -- OS∋L : OS ∋ L @@ -57,11 +57,11 @@ lem0 : L \ * (& L) ≡ od∅ lem0 = subst (λ k → L \ k ≡ od∅) (sym *iso) L\L=0 CS⊆PL : CS ⊆ Power L - CS⊆PL {x} Cx y xy = proj1 Cx xy + 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) (cong (λ k → & ( L \ k)) *iso) olcs P\OS=CS : {cs : HOD} → OS ∋ cs → CS ∋ ( L \ cs ) - P\OS=CS {os} oos = ⟪ subst (λ k → k ⊆ L) (sym *iso) proj1 + P\OS=CS {os} oos = ⟪ subst (λ k → k ⊆ L) (sym *iso) proj1 , subst (λ k → odef OS k) (cong (&) (trans (sym (L\Lx=x (os⊆L oos))) (cong (λ k → L \ k) (sym *iso)) )) oos ⟫ open Topology @@ -75,19 +75,34 @@ → subst (λ k → odef k x) *iso ((proj2 ic) (& L) (CS∋L top) (subst (λ k → L ⊆ k) (sym *iso) ( λ x → x))) ; eq← = λ {x} lx → ⟪ lx , ( λ c cs l⊆c → l⊆c lx) ⟫ } ) -record NAO {L : HOD} (top : Topology L) (A : HOD) (A⊆L : A ⊆ L) (x : Ordinal) : Set n where +record NAO {L : HOD} (top : Topology L) (A : HOD) (A⊆L : A ⊆ L) (o : Ordinal) : Set n where field - ox : odef (OS top) x - na : ¬ ( A ⊆ * x) + ox : odef (OS top) o + na : ¬ ( A ⊆ * o) CS∋Cl : {L : HOD} → (top : Topology L) → (A : HOD) → (A⊆L : A ⊆ L) → CS top ∋ Cl top A A⊆L CS∋Cl {L} top A A⊆L = ⟪ (λ {x} cx → proj1 ( subst (λ k → odef k x) *iso cx )) , ? ⟫ where NCl : HOD NCl = record { od = record { def = λ x → NAO top A A⊆L x } ; odmax = & (OS top) ; <odmax = λ lt → odef< (NAO.ox lt) } - NCl⊂OS : NCl ⊂ OS top - NCl⊂OS = ⟪ ? , ? ⟫ + NCl⊆OS : NCl ⊆ OS top + NCl⊆OS {x} ncl = NAO.ox ncl ccl00 : (L \ (Cl top A A⊆L)) ≡ Union NCl - ccl00 = ==→o≡ ( record { eq→ = ? ; eq← = ? } ) + ccl00 = ==→o≡ ( record { eq→ = ccl01 ; eq← = ? } ) where + ccl01 : {x : Ordinal} → odef (L \ Cl top A A⊆L) x → odef (Union NCl) x + ccl01 {x} ⟪ Lx , nclx ⟫ with ODC.∋-p O A (* x) + ... | yes A∋x = ⊥-elim ( nclx ⟪ Lx , (λ c cc ac → ac (subst (λ k → odef A k) &iso A∋x) ) ⟫ ) + ... | no ¬A∋x with ODC.p∨¬p O (NCl =h= od∅) + ... | case1 ¬nao = ? + ... | case2 nao = record { owner = & o ; ao = ODC.x∋minimal O NCl nao ; ox = subst (λ k → odef k x) (sym *iso) ccl02 } where + o = minimal NCl nao + ccl02 : odef o x + ccl02 with ODC.∋-p O o (* x) + ... | yes y = subst (λ k → odef o k) &iso y + ... | no ¬ox = ⊥-elim ( nclx ⟪ Lx , ? ⟫ ) + -- not A∋x, ¬ ( A ⊆ o) → A ⊆ (L \ o) → (L \ o) ∋ x + -- ¬ox → (L \ o) ∋ x, A ⊆ (L \ o) → + -- ⊥-elim ( NAO.na (ODC.x∋minimal O NCl nao) ( λ oa → ⊥-elim ( nclx ⟪ Lx , (λ c cc ac → ? ) ⟫ ))) + -- Subbase P -- A set of countable intersection of P will be a base (x ix an element of the base) @@ -113,17 +128,17 @@ -- An open set generate from a base -- --- OS = { U ⊂ L | ∀ x ∈ U → ∃ b ∈ P → x ∈ b ⊂ U } +-- OS = { U ⊆ L | ∀ x ∈ U → ∃ b ∈ P → x ∈ b ⊆ U } record Base (L P : HOD) (u x : Ordinal) : Set n where field b : Ordinal - u⊂L : * u ⊆ L + u⊆L : * u ⊆ L sb : Subbase P b b⊆u : * b ⊆ * u bx : odef (* b) x x⊆L : odef L x - x⊆L = u⊂L (b⊆u bx) + x⊆L = u⊆L (b⊆u bx) SO : (L P : HOD) → HOD SO L P = record { od = record { def = λ u → {x : Ordinal } → odef (* u) x → Base L P u x } ; odmax = osuc (& L) ; <odmax = tp00 } where @@ -135,7 +150,7 @@ P⊆PL : P ⊆ Power L -- we may need these if OS ∋ L is necessary -- p : {x : HOD} → L ∋ x → HOD --- Pp : {x : HOD} → {lx : L ∋ x } → P ∋ p lx +-- Pp : {x : HOD} → {lx : L ∋ x } → P ∋ p lx -- px : {x : HOD} → {lx : L ∋ x } → p lx ∋ x InducedTopology : (L P : HOD) → IsSubBase L P → Topology L @@ -145,9 +160,9 @@ tp03 {x} 0x = ⊥-elim ( empty (* x) ( subst₂ (λ j k → odef j k ) *iso (sym &iso) 0x )) tp00 : SO L P ⊆ Power L tp00 {u} ou x ux with ou ux - ... | record { b = b ; u⊂L = u⊂L ; sb = sb ; b⊆u = b⊆u ; bx = bx } = u⊂L (b⊆u bx) + ... | record { b = b ; u⊆L = u⊆L ; sb = sb ; b⊆u = b⊆u ; bx = bx } = u⊆L (b⊆u bx) tp01 : {p q : HOD} → SO L P ∋ p → SO L P ∋ q → SO L P ∋ (p ∩ q) - tp01 {p} {q} op oq {x} ux = record { b = b ; u⊂L = subst (λ k → k ⊆ L) (sym *iso) ul + tp01 {p} {q} op oq {x} ux = record { b = b ; u⊆L = subst (λ k → k ⊆ L) (sym *iso) ul ; sb = g∩ (Base.sb (op px)) (Base.sb (oq qx)) ; b⊆u = tp08 ; bx = tp14 } where px : odef (* (& p)) x px = subst (λ k → odef k x ) (sym *iso) ( proj1 (subst (λ k → odef k _ ) *iso ux ) ) @@ -168,17 +183,17 @@ tp14 : odef (* (& (* (Base.b (op px)) ∩ * (Base.b (oq qx))))) x tp14 = subst (λ k → odef k x ) (sym *iso) ⟪ Base.bx (op px) , Base.bx (oq qx) ⟫ ul : (p ∩ q) ⊆ L - ul = subst (λ k → k ⊆ L ) *iso (λ {z} pq → (Base.u⊂L (op px)) (pz pq) ) where + ul = subst (λ k → k ⊆ L ) *iso (λ {z} pq → (Base.u⊆L (op px)) (pz pq) ) where pz : {z : Ordinal } → odef (* (& (p ∩ q))) z → odef (* (& p)) z pz {z} pq = subst (λ k → odef k z ) (sym *iso) ( proj1 (subst (λ k → odef k _ ) *iso pq ) ) - tp02 : { q : HOD} → q ⊂ SO L P → SO L P ∋ Union q - tp02 {q} q⊂O {x} ux with subst (λ k → odef k x) *iso ux - ... | record { owner = y ; ao = qy ; ox = yx } with proj2 q⊂O qy yx - ... | record { b = b ; u⊂L = u⊂L ; sb = sb ; b⊆u = b⊆u ; bx = bx } = record { b = b ; u⊂L = subst (λ k → k ⊆ L) (sym *iso) tp04 + tp02 : { q : HOD} → q ⊆ SO L P → SO L P ∋ Union q + tp02 {q} q⊆O {x} ux with subst (λ k → odef k x) *iso ux + ... | record { owner = y ; ao = qy ; ox = yx } with q⊆O qy yx + ... | record { b = b ; u⊆L = u⊆L ; sb = sb ; b⊆u = b⊆u ; bx = bx } = record { b = b ; u⊆L = subst (λ k → k ⊆ L) (sym *iso) tp04 ; sb = sb ; b⊆u = subst ( λ k → * b ⊆ k ) (sym *iso) tp06 ; bx = bx } where tp05 : Union q ⊆ L - tp05 {z} record { owner = y ; ao = qy ; ox = yx } with proj2 q⊂O qy yx - ... | record { b = b ; u⊂L = u⊂L ; sb = sb ; b⊆u = b⊆u ; bx = bx } + tp05 {z} record { owner = y ; ao = qy ; ox = yx } with q⊆O qy yx + ... | record { b = b ; u⊆L = u⊆L ; sb = sb ; b⊆u = b⊆u ; bx = bx } = IsSubBase.P⊆PL isb (proj1 (is-sbp P sb bx )) _ (proj2 (is-sbp P sb bx )) tp04 : Union q ⊆ L tp04 = tp05 @@ -449,29 +464,29 @@ -- filter Base record FBase (P : HOD )(X : Ordinal ) (u : Ordinal) : Set n where field - b x : Ordinal + b x : Ordinal b⊆X : * b ⊆ * X - sb : Subbase (* b) x + sb : Subbase (* b) x u⊆P : * u ⊆ P x⊆u : * x ⊆ * u open import maximum-filter O -UFLP→FIP : {P : HOD} (TP : Topology P) → +UFLP→FIP : {P : HOD} (TP : Topology P) → ( {L : HOD} (LP : L ⊆ Power P ) → (F : Filter {L} {P} LP ) (UF : ultra-filter F ) → UFLP TP LP F UF ) → FIP TP UFLP→FIP {P} TP uflp = record { limit = uf00 ; is-limit = {!!} } where fip : {X : Ordinal} → * X ⊆ CS TP → Set n fip {X} CSX = {u x : Ordinal} → * u ⊆ * X → Subbase (* u) x → o∅ o< x N : {X : Ordinal} → (CSX : * X ⊆ CS TP) → fip CSX → HOD - N {X} CSX fp = record { od = record { def = λ u → FBase P X u } ; odmax = osuc (& P) + N {X} CSX fp = record { od = record { def = λ u → FBase P X u } ; odmax = osuc (& P) ; <odmax = λ {x} lt → subst₂ (λ j k → j o< osuc k) &iso refl (⊆→o≤ (FBase.u⊆P lt)) } N⊆PP : {X : Ordinal } → (CSX : * X ⊆ CS TP) → (fp : fip CSX) → N CSX fp ⊆ Power P N⊆PP CSX fp nx b xb = FBase.u⊆P nx xb F : {X : Ordinal} → (CSX : * X ⊆ CS TP) → (fp : fip CSX) → Filter {Power P} {P} (λ x → x) F {X} CSX fp = record { filter = N CSX fp ; f⊆L = N⊆PP CSX fp ; filter1 = f1 ; filter2 = f2 } where f1 : {p q : HOD} → Power P ∋ q → N CSX fp ∋ p → p ⊆ q → N CSX fp ∋ q - f1 {p} {q} Xq record { b = b ; x = x ; b⊆X = b⊆X ; sb = sb ; u⊆P = Xp ; x⊆u = x⊆p } p⊆q = - record { b = b ; x = x ; b⊆X = b⊆X ; sb = sb ; u⊆P = subst (λ k → k ⊆ P) (sym *iso) f10 ; x⊆u = λ {z} xp → + f1 {p} {q} Xq record { b = b ; x = x ; b⊆X = b⊆X ; sb = sb ; u⊆P = Xp ; x⊆u = x⊆p } p⊆q = + record { b = b ; x = x ; b⊆X = b⊆X ; sb = sb ; u⊆P = subst (λ k → k ⊆ P) (sym *iso) f10 ; x⊆u = λ {z} xp → subst (λ k → odef k z) (sym *iso) (p⊆q (subst (λ k → odef k z) *iso (x⊆p xp))) } where f10 : q ⊆ P f10 {x} qx = subst (λ k → odef P k) &iso (power→ P _ Xq (subst (λ k → odef q k) (sym &iso) qx )) @@ -488,7 +503,7 @@ ... | case1 np = FBase.b⊆X Np np ... | case2 nq = FBase.b⊆X Nq nq f22 : * (& xp∧xq) ⊆ * (& (p ∩ q)) - f22 = subst₂ ( λ j k → j ⊆ k ) (sym *iso) (sym *iso) (λ {w} xpq + f22 = subst₂ ( λ j k → j ⊆ k ) (sym *iso) (sym *iso) (λ {w} xpq → ⟪ subst (λ k → odef k w) *iso ( FBase.x⊆u Np (proj1 xpq)) , subst (λ k → odef k w) *iso ( FBase.x⊆u Nq (proj2 xpq)) ⟫ ) proper : {X : Ordinal} → (CSX : * X ⊆ CS TP) → (fp : fip {X} CSX) → ¬ (N CSX fp ∋ od∅) proper = ? @@ -498,7 +513,7 @@ maxf : {X : Ordinal} → (CSX : * X ⊆ CS TP) → (fp : fip {X} CSX) → MaximumFilter (λ x → x) (F CSX fp) maxf {X} CSX fp = F→Maximum {Power P} {P} (λ x → x) (CAP CSX fp) (F CSX fp) ? ? (proper CSX fp) uf00 : {X : Ordinal} → (CSX : * X ⊆ CS TP) → fip {X} CSX → Ordinal - uf00 {X} CSX fp = UFLP.limit ( uflp (λ x → x) + uf00 {X} CSX fp = UFLP.limit ( uflp (λ x → x) ( MaximumFilter.mf (maxf CSX fp) ) (F→ultra {Power P} {P} (λ x → x) (CAP CSX fp) (F CSX fp) ? ? (proper CSX fp))) @@ -539,7 +554,7 @@ ty00 : Proj1PP (filter F) (Power P) (Power Q) ⊆ LP ty00 {x} ⟪ PPx , ppf ⟫ = ⟪ PPx , ( λ y → record { pq = PProj1.pq (ppf y) ; opq = PProj1.opq (ppf y) ; Lpq = f⊆L F (PProj1.Lpq (ppf y)) ; x=pi1 = PProj1.x=pi1 (ppf y) } ) ⟫ - UFP : ultra-filter FP + UFP : ultra-filter FP UFP = record { proper = ? ; ultra = ? } uflp : UFLP TP LPP FP UFP uflp = FIP→UFLP TP (Compact→FIP TP CP) LPP FP UFP