comparison src/Tychonoff.agda @ 1211:f17d060e0bda

UFLP→FIP FIP→UFLP with Zorn done
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 04 Mar 2023 11:39:46 +0900
parents 806109d79562
children 22de2d4f7271
comparison
equal deleted inserted replaced
1210:806109d79562 1211:f17d060e0bda
33 open ODC O 33 open ODC O
34 34
35 open import filter O 35 open import filter O
36 open import OPair O 36 open import OPair O
37 open import Topology O 37 open import Topology O
38 -- open import maximum-filter O 38 open import maximum-filter O
39 39
40 open Filter 40 open Filter
41 open Topology 41 open Topology
42 42
43 -- FIP is UFL 43 -- FIP is UFL
44 44
45 -- filter Base 45 -- filter Base
46 record FBase (P : HOD ) (X : Ordinal ) (u : Ordinal) : Set n where 46 record FBase (P : HOD ) (X : Ordinal ) (u : Ordinal) : Set n where
54 record UFLP {P : HOD} (TP : Topology P) (F : Filter {Power P} {P} (λ x → x) ) 54 record UFLP {P : HOD} (TP : Topology P) (F : Filter {Power P} {P} (λ x → x) )
55 (ultra : ultra-filter F ) : Set (suc (suc n)) where 55 (ultra : ultra-filter F ) : Set (suc (suc n)) where
56 field 56 field
57 limit : Ordinal 57 limit : Ordinal
58 P∋limit : odef P limit 58 P∋limit : odef P limit
59 is-limit : {v : Ordinal} → Neighbor TP limit v → (* v) ⊆ filter F 59 is-limit : {v : Ordinal} → Neighbor TP limit v → filter F ∋ (* v)
60 60
61 UFLP→FIP : {P : HOD} (TP : Topology P) → 61 UFLP→FIP : {P : HOD} (TP : Topology P) →
62 ((F : Filter {Power P} {P} (λ x → x) ) (UF : ultra-filter F ) → UFLP TP F UF ) → FIP TP 62 ((F : Filter {Power P} {P} (λ x → x) ) (UF : ultra-filter F ) → UFLP TP F UF ) → FIP TP
63 UFLP→FIP {P} TP uflp with trio< (& P) o∅ 63 UFLP→FIP {P} TP uflp with trio< (& P) o∅
64 ... | tri< a ¬b ¬c = ⊥-elim ( ¬x<0 a ) 64 ... | tri< a ¬b ¬c = ⊥-elim ( ¬x<0 a )
94 N⊆PP : {X : Ordinal } → (CSX : * X ⊆ CS TP) → (fp : fip CSX) → N CSX fp ⊆ Power P 94 N⊆PP : {X : Ordinal } → (CSX : * X ⊆ CS TP) → (fp : fip CSX) → N CSX fp ⊆ Power P
95 N⊆PP CSX fp nx b xb = FBase.u⊆P nx xb 95 N⊆PP CSX fp nx b xb = FBase.u⊆P nx xb
96 -- filter base is not empty necessary for generating ultra filter 96 -- filter base is not empty necessary for generating ultra filter
97 nc : {X : Ordinal} → o∅ o< X → (CSX : * X ⊆ CS TP) → (fip : fip CSX) → HOD 97 nc : {X : Ordinal} → o∅ o< X → (CSX : * X ⊆ CS TP) → (fip : fip CSX) → HOD
98 nc {X} 0<X CSX fip = ODC.minimal O (* X) (0<P→ne (subst (λ k → o∅ o< k) (sym &iso) 0<X) ) -- an element of X 98 nc {X} 0<X CSX fip = ODC.minimal O (* X) (0<P→ne (subst (λ k → o∅ o< k) (sym &iso) 0<X) ) -- an element of X
99 N∋nc :{X : Ordinal} → (0<X : o∅ o< X) → (CSX : * X ⊆ CS TP) 99 N∋nc :{X : Ordinal} → (0<X : o∅ o< X) → (CSX : * X ⊆ CS TP)
100 → (fip : fip CSX) → odef (N CSX fip) (& (nc 0<X CSX fip) ) 100 → (fip : fip CSX) → odef (N CSX fip) (& (nc 0<X CSX fip) )
101 N∋nc {X} 0<X CSX fip = record { b = X ; x = & e ; b⊆X = λ x → x ; sb = gi Xe ; u⊆P = nn02 ; x⊆u = λ x → x } where 101 N∋nc {X} 0<X CSX fip = record { b = X ; x = & e ; b⊆X = λ x → x ; sb = gi Xe ; u⊆P = nn02 ; x⊆u = λ x → x } where
102 e : HOD -- we have an element of X 102 e : HOD -- we have an element of X
103 e = ODC.minimal O (* X) (0<P→ne (subst (λ k → o∅ o< k) (sym &iso) 0<X) ) 103 e = ODC.minimal O (* X) (0<P→ne (subst (λ k → o∅ o< k) (sym &iso) 0<X) )
104 Xe : odef (* X) (& e) 104 Xe : odef (* X) (& e)
105 Xe = ODC.x∋minimal O (* X) (0<P→ne (subst (λ k → o∅ o< k) (sym &iso) 0<X) ) 105 Xe = ODC.x∋minimal O (* X) (0<P→ne (subst (λ k → o∅ o< k) (sym &iso) 0<X) )
106 nn01 = ODC.minimal O (* (& e)) (0<P→ne (subst (λ k → o∅ o< k) (sym &iso) (fip (gi Xe))) ) 106 nn01 = ODC.minimal O (* (& e)) (0<P→ne (subst (λ k → o∅ o< k) (sym &iso) (fip (gi Xe))) )
107 nn02 : * (& (nc 0<X CSX fip)) ⊆ P 107 nn02 : * (& (nc 0<X CSX fip)) ⊆ P
108 nn02 = subst (λ k → k ⊆ P ) (sym *iso) (cs⊆L TP (CSX Xe ) ) 108 nn02 = subst (λ k → k ⊆ P ) (sym *iso) (cs⊆L TP (CSX Xe ) )
109 109
110 0<PP : o∅ o< & (Power P) 110 0<PP : o∅ o< & (Power P)
111 0<PP = subst (λ k → k o< & (Power P)) &iso ( c<→o< (subst (λ k → odef (Power P) k) (sym &iso) nn00 )) where 111 0<PP = subst (λ k → k o< & (Power P)) &iso ( c<→o< (subst (λ k → odef (Power P) k) (sym &iso) nn00 )) where
138 f22 : * (& xp∧xq) ⊆ * (& (p ∩ q)) 138 f22 : * (& xp∧xq) ⊆ * (& (p ∩ q))
139 f22 = subst₂ ( λ j k → j ⊆ k ) (sym *iso) (sym *iso) (λ {w} xpq 139 f22 = subst₂ ( λ j k → j ⊆ k ) (sym *iso) (sym *iso) (λ {w} xpq
140 → ⟪ subst (λ k → odef k w) *iso ( FBase.x⊆u Np (proj1 xpq)) , subst (λ k → odef k w) *iso ( FBase.x⊆u Nq (proj2 xpq)) ⟫ ) 140 → ⟪ subst (λ k → odef k w) *iso ( FBase.x⊆u Np (proj1 xpq)) , subst (λ k → odef k w) *iso ( FBase.x⊆u Nq (proj2 xpq)) ⟫ )
141 -- 141 --
142 -- it contains no empty sets becase it is a finite intersection ( Subbase (* X) x ) 142 -- it contains no empty sets becase it is a finite intersection ( Subbase (* X) x )
143 -- 143 --
144 proper : {X : Ordinal} → (CSX : * X ⊆ CS TP) → (fip : fip {X} CSX) → ¬ (N CSX fip ∋ od∅) 144 proper : {X : Ordinal} → (CSX : * X ⊆ CS TP) → (fip : fip {X} CSX) → ¬ (N CSX fip ∋ od∅)
145 proper {X} CSX fip record { b = b ; x = x ; b⊆X = b⊆X ; sb = sb ; u⊆P = u⊆P ; x⊆u = x⊆u } = o≤> x≤0 (fip (fp00 _ _ b⊆X sb)) where 145 proper {X} CSX fip record { b = b ; x = x ; b⊆X = b⊆X ; sb = sb ; u⊆P = u⊆P ; x⊆u = x⊆u } = o≤> x≤0 (fip (fp00 _ _ b⊆X sb)) where
146 x≤0 : x o< osuc o∅ 146 x≤0 : x o< osuc o∅
147 x≤0 = subst₂ (λ j k → j o< osuc k) &iso (trans (cong (&) *iso) ord-od∅ ) (⊆→o≤ (x⊆u)) 147 x≤0 = subst₂ (λ j k → j o< osuc k) &iso (trans (cong (&) *iso) ord-od∅ ) (⊆→o≤ (x⊆u))
148 fp00 : (b x : Ordinal) → * b ⊆ * X → Subbase (* b) x → Subbase (* X) x 148 fp00 : (b x : Ordinal) → * b ⊆ * X → Subbase (* b) x → Subbase (* X) x
149 fp00 b y b<X (gi by ) = gi ( b<X by ) 149 fp00 b y b<X (gi by ) = gi ( b<X by )
150 fp00 b _ b<X (g∩ {y} {z} sy sz ) = g∩ (fp00 _ _ b<X sy) (fp00 _ _ b<X sz) 150 fp00 b _ b<X (g∩ {y} {z} sy sz ) = g∩ (fp00 _ _ b<X sy) (fp00 _ _ b<X sz)
151 -- 151 --
152 -- then we have maximum ultra filter 152 -- then we have maximum ultra filter
153 -- 153 --
154 maxf : {X : Ordinal} → (CSX : * X ⊆ CS TP) → (fp : fip {X} CSX) → MaximumFilter (λ x → x) (F CSX fp) 154 maxf : {X : Ordinal} → o∅ o< X → (CSX : * X ⊆ CS TP) → (fp : fip {X} CSX) → MaximumFilter (λ x → x) (F CSX fp)
155 maxf {X} CSX fp = ? -- F→Maximum {Power P} {P} (λ x → x) (CAP P) (F CSX fp) 0<PP (N∋nc CSX fp) (proper CSX fp) 155 maxf {X} 0<X CSX fp = F→Maximum {Power P} {P} (λ x → x) (CAP P) (F CSX fp) 0<PP (N∋nc 0<X CSX fp) (proper CSX fp)
156 mf : {X : Ordinal} → (CSX : * X ⊆ CS TP) → (fp : fip {X} CSX) → Filter {Power P} {P} (λ x → x) 156 mf : {X : Ordinal} → o∅ o< X → (CSX : * X ⊆ CS TP) → (fp : fip {X} CSX) → Filter {Power P} {P} (λ x → x)
157 mf {X} CSX fp = MaximumFilter.mf (maxf CSX fp) 157 mf {X} 0<X CSX fp = MaximumFilter.mf (maxf 0<X CSX fp)
158 ultraf : {X : Ordinal} → o∅ o< X → (CSX : * X ⊆ CS TP) → (fp : fip {X} CSX) → ultra-filter ( mf CSX fp) 158 ultraf : {X : Ordinal} → (0<X : o∅ o< X ) → (CSX : * X ⊆ CS TP) → (fp : fip {X} CSX) → ultra-filter ( mf 0<X CSX fp)
159 ultraf {X} 0<X CSX fp = ? -- F→ultra {Power P} {P} (λ x → x) (CAP P) (F CSX fp) 0<PP (N∋nc CSX fp) (proper CSX fp) 159 ultraf {X} 0<X CSX fp = F→ultra {Power P} {P} (λ x → x) (CAP P) (F CSX fp) 0<PP (N∋nc 0<X CSX fp) (proper CSX fp)
160 -- 160 --
161 -- so i has a limit as a limit of UIP 161 -- so i has a limit as a limit of UIP
162 -- 162 --
163 limit : {X : Ordinal} → (CSX : * X ⊆ CS TP) → fip {X} CSX → Ordinal 163 limit : {X : Ordinal} → (CSX : * X ⊆ CS TP) → fip {X} CSX → Ordinal
164 limit {X} CSX fp with trio< o∅ X 164 limit {X} CSX fp with trio< o∅ X
165 ... | tri< 0<X ¬b ¬c = UFLP.limit ( uflp ( mf CSX fp ) (ultraf 0<X CSX fp)) 165 ... | tri< 0<X ¬b ¬c = UFLP.limit ( uflp ( mf 0<X CSX fp ) (ultraf 0<X CSX fp))
166 ... | tri≈ ¬a 0=X ¬c = o∅ 166 ... | tri≈ ¬a 0=X ¬c = o∅
167 ... | tri> ¬a ¬b c = ⊥-elim ( ¬x<0 c ) 167 ... | tri> ¬a ¬b c = ⊥-elim ( ¬x<0 c )
168 -- 168 --
169 -- the limit is an limit of entire elements of X 169 -- the limit is an limit of entire elements of X
170 -- 170 --
171 uf01 : {X : Ordinal} (CSX : * X ⊆ CS TP) (fp : fip {X} CSX) {x : Ordinal} → odef (* X) x → odef (* x) (limit CSX fp) 171 uf01 : {X : Ordinal} (CSX : * X ⊆ CS TP) (fp : fip {X} CSX) {x : Ordinal} → odef (* X) x → odef (* x) (limit CSX fp)
172 uf01 {X} CSX fp {x} xx with trio< o∅ X 172 uf01 {X} CSX fp {x} xx with trio< o∅ X
173 ... | tri> ¬a ¬b c = ⊥-elim ( ¬x<0 c ) 173 ... | tri> ¬a ¬b c = ⊥-elim ( ¬x<0 c )
174 ... | tri≈ ¬a 0=X ¬c = ⊥-elim ( ¬a (subst (λ k → o∅ o< k) &iso ( ∈∅< xx ))) 174 ... | tri≈ ¬a 0=X ¬c = ⊥-elim ( ¬a (subst (λ k → o∅ o< k) &iso ( ∈∅< xx )))
175 ... | tri< 0<X ¬b ¬c with ∨L\X {P} {* x} {UFLP.limit ( uflp ( mf CSX fp ) (ultraf 0<X CSX fp))} 175 ... | tri< 0<X ¬b ¬c with ∨L\X {P} {* x} {UFLP.limit ( uflp ( mf 0<X CSX fp ) (ultraf 0<X CSX fp))}
176 (UFLP.P∋limit ( uflp ( mf CSX fp ) (ultraf 0<X CSX fp))) 176 (UFLP.P∋limit ( uflp ( mf 0<X CSX fp ) (ultraf 0<X CSX fp)))
177 ... | case1 lt = lt -- odef (* x) y 177 ... | case1 lt = lt -- odef (* x) y
178 ... | case2 nlxy = ⊥-elim (MaximumFilter.proper (maxf CSX fp) uf11 ) where 178 ... | case2 nlxy = ⊥-elim (MaximumFilter.proper (maxf 0<X CSX fp) uf11 ) where
179 y = UFLP.limit ( uflp ( mf CSX fp ) (ultraf 0<X CSX fp)) 179 y = UFLP.limit ( uflp ( mf 0<X CSX fp ) (ultraf 0<X CSX fp))
180 x⊆P : * x ⊆ P 180 x⊆P : * x ⊆ P
181 x⊆P = cs⊆L TP (CSX (subst (λ k → odef (* X) k) (sym &iso) xx)) 181 x⊆P = cs⊆L TP (CSX (subst (λ k → odef (* X) k) (sym &iso) xx))
182 uf10 : odef (P \ * x ) y 182 uf10 : odef (P \ * x ) y
183 uf10 = nlxy 183 uf10 = nlxy
184 uf03 : Neighbor TP y (& (P \ * x )) 184 uf03 : Neighbor TP y (& (P \ * x ))
185 uf03 = record { u = _ ; ou = P\CS=OS TP (CSX (subst (λ k → odef (* X) k ) (sym &iso) xx)) 185 uf03 = record { u = _ ; ou = P\CS=OS TP (CSX (subst (λ k → odef (* X) k ) (sym &iso) xx))
186 ; ux = subst (λ k → odef k y) (sym *iso) uf10 186 ; ux = subst (λ k → odef k y) (sym *iso) uf10
187 ; v⊆P = λ {z} xz → proj1 (subst(λ k → odef k z) *iso xz ) 187 ; v⊆P = λ {z} xz → proj1 (subst(λ k → odef k z) *iso xz )
188 ; u⊆v = λ x → x } 188 ; u⊆v = λ x → x }
189 uf07 : * (& (* x , * x)) ⊆ * X 189 uf07 : * (& (* x , * x)) ⊆ * X
190 uf07 {y} lt with subst (λ k → odef k y) *iso lt 190 uf07 {y} lt with subst (λ k → odef k y) *iso lt
191 ... | case1 refl = subst (λ k → odef (* X) k ) (sym &iso) xx 191 ... | case1 refl = subst (λ k → odef (* X) k ) (sym &iso) xx
192 ... | case2 refl = subst (λ k → odef (* X) k ) (sym &iso) xx 192 ... | case2 refl = subst (λ k → odef (* X) k ) (sym &iso) xx
193 uf05 : odef (filter (MaximumFilter.mf (maxf CSX fp))) x 193 uf05 : odef (filter (MaximumFilter.mf (maxf 0<X CSX fp))) x
194 uf05 = MaximumFilter.F⊆mf (maxf CSX fp) record { b = & (* x , * x) ; b⊆X = uf07 194 uf05 = MaximumFilter.F⊆mf (maxf 0<X CSX fp) record { b = & (* x , * x) ; b⊆X = uf07
195 ; sb = gi (subst (λ k → odef k x) (sym *iso) (case1 (sym &iso)) ) ; u⊆P = x⊆P ; x⊆u = λ x → x } 195 ; sb = gi (subst (λ k → odef k x) (sym *iso) (case1 (sym &iso)) ) ; u⊆P = x⊆P ; x⊆u = λ x → x }
196 uf06 : odef (filter (MaximumFilter.mf (maxf CSX fp))) (& (P \ * x )) 196 uf06 : odef (filter (MaximumFilter.mf (maxf 0<X CSX fp))) (& (P \ * x ))
197 uf06 = UFLP.is-limit ( uflp ( mf CSX fp ) (ultraf 0<X CSX fp)) uf03 (subst (λ k → odef k y) (sym *iso) uf10) 197 uf06 = subst (λ k → odef (filter (MaximumFilter.mf (maxf 0<X CSX fp))) k) &iso (UFLP.is-limit ( uflp (mf 0<X CSX fp) (ultraf 0<X CSX fp)) {& (P \ * x)} uf03 )
198 uf13 : & ((* x) ∩ (P \ * x )) ≡ o∅ 198 uf13 : & ((* x) ∩ (P \ * x )) ≡ o∅
199 uf13 = subst₂ (λ j k → j ≡ k ) refl ord-od∅ (cong (&) ( ==→o≡ record { eq→ = uf14 ; eq← = λ {x} lt → ⊥-elim (¬x<0 lt) } ) ) where 199 uf13 = subst₂ (λ j k → j ≡ k ) refl ord-od∅ (cong (&) ( ==→o≡ record { eq→ = uf14 ; eq← = λ {x} lt → ⊥-elim (¬x<0 lt) } ) ) where
200 uf14 : {y : Ordinal} → odef (* x ∩ (P \ * x)) y → odef od∅ y 200 uf14 : {y : Ordinal} → odef (* x ∩ (P \ * x)) y → odef od∅ y
201 uf14 {y} ⟪ xy , ⟪ Px , ¬xy ⟫ ⟫ = ⊥-elim ( ¬xy xy ) 201 uf14 {y} ⟪ xy , ⟪ Px , ¬xy ⟫ ⟫ = ⊥-elim ( ¬xy xy )
202 uf12 : odef (Power P) (& ((* x) ∩ (P \ * x ))) 202 uf12 : odef (Power P) (& ((* x) ∩ (P \ * x )))
203 uf12 z pz with subst (λ k → odef k z) *iso pz 203 uf12 z pz with subst (λ k → odef k z) *iso pz
204 ... | ⟪ xz , ⟪ Pz , ¬xz ⟫ ⟫ = Pz 204 ... | ⟪ xz , ⟪ Pz , ¬xz ⟫ ⟫ = Pz
205 uf11 : filter (MaximumFilter.mf (maxf CSX fp)) ∋ od∅ 205 uf11 : filter (MaximumFilter.mf (maxf 0<X CSX fp)) ∋ od∅
206 uf11 = subst (λ k → odef (filter (MaximumFilter.mf (maxf CSX fp))) k ) uf13 206 uf11 = subst (λ k → odef (filter (MaximumFilter.mf (maxf 0<X CSX fp))) k ) (trans uf13 (sym ord-od∅))
207 ( filter2 (MaximumFilter.mf (maxf CSX fp)) uf05 uf06 uf12 ) 207 ( filter2 (MaximumFilter.mf (maxf 0<X CSX fp)) (subst (λ k → odef (filter (MaximumFilter.mf (maxf 0<X CSX fp))) k) (sym &iso) uf05) uf06 uf12 )
208 208
209 x⊆Clx : {P : HOD} (TP : Topology P) → {x : HOD} → x ⊆ P → x ⊆ Cl TP x 209 x⊆Clx : {P : HOD} (TP : Topology P) → {x : HOD} → x ⊆ P → x ⊆ Cl TP x
210 x⊆Clx {P} TP {x} x<p {y} xy = ⟪ x<p xy , (λ c csc x<c → x<c xy ) ⟫ 210 x⊆Clx {P} TP {x} x<p {y} xy = ⟪ x<p xy , (λ c csc x<c → x<c xy ) ⟫
211 P⊆Clx : {P : HOD} (TP : Topology P) → {x : HOD} → x ⊆ P → Cl TP x ⊆ P 211 P⊆Clx : {P : HOD} (TP : Topology P) → {x : HOD} → x ⊆ P → Cl TP x ⊆ P
212 P⊆Clx {P} TP {x} x<p {y} xy = proj1 xy 212 P⊆Clx {P} TP {x} x<p {y} xy = proj1 xy
213 213
214 FIP→UFLP : {P : HOD} (TP : Topology P) → FIP TP 214 FIP→UFLP : {P : HOD} (TP : Topology P) → FIP TP
215 → (F : Filter {Power P} {P} (λ x → x)) (UF : ultra-filter F ) → UFLP {P} TP F UF 215 → (F : Filter {Power P} {P} (λ x → x)) (UF : ultra-filter F ) → UFLP {P} TP F UF
216 FIP→UFLP {P} TP fip F UF = record { limit = FIP.limit fip (subst (λ k → k ⊆ CS TP) (sym *iso) CF⊆CS) ufl01 216 FIP→UFLP {P} TP fip F UF = record { limit = FIP.limit fip (subst (λ k → k ⊆ CS TP) (sym *iso) CF⊆CS) ufl01
217 ; P∋limit = ufl10 ; is-limit = ufl00 } where 217 ; P∋limit = ufl10 ; is-limit = ufl00 } where
218 F∋P : odef (filter F) (& P) 218 F∋P : odef (filter F) (& P)
219 F∋P with ultra-filter.ultra UF {od∅} (λ z az → ⊥-elim (¬x<0 (subst (λ k → odef k z) *iso az)) ) (λ z az → proj1 (subst (λ k → odef k z) *iso az ) ) 219 F∋P with ultra-filter.ultra UF {od∅} (λ z az → ⊥-elim (¬x<0 (subst (λ k → odef k z) *iso az)) ) (λ z az → proj1 (subst (λ k → odef k z) *iso az ) )
220 ... | case1 fp = ⊥-elim ( ultra-filter.proper UF fp ) 220 ... | case1 fp = ⊥-elim ( ultra-filter.proper UF fp )
221 ... | case2 flp = subst (λ k → odef (filter F) k) (cong (&) (==→o≡ fl20)) flp where 221 ... | case2 flp = subst (λ k → odef (filter F) k) (cong (&) (==→o≡ fl20)) flp where
222 fl20 : (P \ Ord o∅) =h= P 222 fl20 : (P \ Ord o∅) =h= P
223 fl20 = record { eq→ = λ {x} lt → proj1 lt ; eq← = λ {x} lt → ⟪ lt , (λ lt → ⊥-elim (¬x<0 lt) ) ⟫ } 223 fl20 = record { eq→ = λ {x} lt → proj1 lt ; eq← = λ {x} lt → ⟪ lt , (λ lt → ⊥-elim (¬x<0 lt) ) ⟫ }
224 0<P : o∅ o< & P 224 0<P : o∅ o< & P
225 0<P with trio< o∅ (& P) 225 0<P with trio< o∅ (& P)
226 ... | tri< a ¬b ¬c = a 226 ... | tri< a ¬b ¬c = a
227 ... | tri≈ ¬a b ¬c = ⊥-elim (ultra-filter.proper UF (subst (λ k → odef (filter F) k) (trans (sym b) (sym ord-od∅)) F∋P) ) 227 ... | tri≈ ¬a b ¬c = ⊥-elim (ultra-filter.proper UF (subst (λ k → odef (filter F) k) (trans (sym b) (sym ord-od∅)) F∋P) )
228 ... | tri> ¬a ¬b c = ⊥-elim (¬x<0 c) 228 ... | tri> ¬a ¬b c = ⊥-elim (¬x<0 c)
230 -- take closure of given filter elements 230 -- take closure of given filter elements
231 -- 231 --
232 CF : HOD 232 CF : HOD
233 CF = Replace (filter F) (λ x → Cl TP x ) 233 CF = Replace (filter F) (λ x → Cl TP x )
234 CF⊆CS : CF ⊆ CS TP 234 CF⊆CS : CF ⊆ CS TP
235 CF⊆CS {x} record { z = z ; az = az ; x=ψz = x=ψz } = subst (λ k → odef (CS TP) k) (sym x=ψz) (CS∋Cl TP (* z)) 235 CF⊆CS {x} record { z = z ; az = az ; x=ψz = x=ψz } = subst (λ k → odef (CS TP) k) (sym x=ψz) (CS∋Cl TP (* z))
236 -- 236 --
237 -- it is set of closed set and has FIP ( F is proper ) 237 -- it is set of closed set and has FIP ( F is proper )
238 -- 238 --
239 ufl08 : {z : Ordinal} → odef (Power P) (& (Cl TP (* z))) 239 ufl08 : {z : Ordinal} → odef (Power P) (& (Cl TP (* z)))
240 ufl08 {z} w zw with subst (λ k → odef k w ) *iso zw 240 ufl08 {z} w zw with subst (λ k → odef k w ) *iso zw
244 F∋sb : {x : Ordinal} → Subbase CF x → odef (filter F) x 244 F∋sb : {x : Ordinal} → Subbase CF x → odef (filter F) x
245 F∋sb {x} (gi record { z = z ; az = az ; x=ψz = x=ψz }) = ufl07 where 245 F∋sb {x} (gi record { z = z ; az = az ; x=ψz = x=ψz }) = ufl07 where
246 ufl09 : * z ⊆ P 246 ufl09 : * z ⊆ P
247 ufl09 {y} zy = f⊆L F az _ zy 247 ufl09 {y} zy = f⊆L F az _ zy
248 ufl07 : odef (filter F) x 248 ufl07 : odef (filter F) x
249 ufl07 = subst (λ k → odef (filter F) k) &iso ( filter1 F (subst (λ k → odef (Power P) k) (trans (sym x=ψz) (sym &iso)) ufl08 ) 249 ufl07 = subst (λ k → odef (filter F) k) &iso ( filter1 F (subst (λ k → odef (Power P) k) (trans (sym x=ψz) (sym &iso)) ufl08 )
250 (subst (λ k → odef (filter F) k) (sym &iso) az) 250 (subst (λ k → odef (filter F) k) (sym &iso) az)
251 (subst (λ k → * z ⊆ k ) (trans (sym *iso) (sym (cong (*) x=ψz)) ) (x⊆Clx TP {* z} ufl09 ) )) 251 (subst (λ k → * z ⊆ k ) (trans (sym *iso) (sym (cong (*) x=ψz)) ) (x⊆Clx TP {* z} ufl09 ) ))
252 F∋sb (g∩ {x} {y} sx sy) = filter2 F (subst (λ k → odef (filter F) k) (sym &iso) (F∋sb sx)) 252 F∋sb (g∩ {x} {y} sx sy) = filter2 F (subst (λ k → odef (filter F) k) (sym &iso) (F∋sb sx))
253 (subst (λ k → odef (filter F) k) (sym &iso) (F∋sb sy)) 253 (subst (λ k → odef (filter F) k) (sym &iso) (F∋sb sy))
254 (λ z xz → fx→px (F∋sb sx) _ (subst (λ k → odef k _) (sym *iso) (proj1 (subst (λ k → odef k z) *iso xz) ))) 254 (λ z xz → fx→px (F∋sb sx) _ (subst (λ k → odef k _) (sym *iso) (proj1 (subst (λ k → odef k z) *iso xz) )))
255 ufl01 : {x : Ordinal} → Subbase (* (& CF)) x → o∅ o< x 255 ufl01 : {x : Ordinal} → Subbase (* (& CF)) x → o∅ o< x
256 ufl01 {x} sb = ufl04 where 256 ufl01 {x} sb = ufl04 where
257 ufl04 : o∅ o< x 257 ufl04 : o∅ o< x
258 ufl04 with trio< o∅ x 258 ufl04 with trio< o∅ x
259 ... | tri< a ¬b ¬c = a 259 ... | tri< a ¬b ¬c = a
260 ... | tri≈ ¬a b ¬c = ⊥-elim ( ultra-filter.proper UF (subst (λ k → odef (filter F) k) ( 260 ... | tri≈ ¬a b ¬c = ⊥-elim ( ultra-filter.proper UF (subst (λ k → odef (filter F) k) (
261 begin 261 begin
262 x ≡⟨ sym b ⟩ 262 x ≡⟨ sym b ⟩
263 o∅ ≡⟨ sym ord-od∅ ⟩ 263 o∅ ≡⟨ sym ord-od∅ ⟩
264 & od∅ ∎ ) (F∋sb (subst (λ k → Subbase k x) *iso sb )) )) where open ≡-Reasoning 264 & od∅ ∎ ) (F∋sb (subst (λ k → Subbase k x) *iso sb )) )) where open ≡-Reasoning
265 ... | tri> ¬a ¬b c = ⊥-elim (¬x<0 c) 265 ... | tri> ¬a ¬b c = ⊥-elim (¬x<0 c)
266 ufl10 : odef P (FIP.limit fip (subst (λ k → k ⊆ CS TP) (sym *iso) CF⊆CS) ufl01) 266 ufl10 : odef P (FIP.limit fip (subst (λ k → k ⊆ CS TP) (sym *iso) CF⊆CS) ufl01)
267 ufl10 = FIP.L∋limit fip (subst (λ k → k ⊆ CS TP) (sym *iso) CF⊆CS) ufl01 {& P} ufl11 where 267 ufl10 = FIP.L∋limit fip (subst (λ k → k ⊆ CS TP) (sym *iso) CF⊆CS) ufl01 {& P} ufl11 where
268 ufl11 : odef (* (& CF)) (& P) 268 ufl11 : odef (* (& CF)) (& P)
269 ufl11 = subst (λ k → odef k (& P)) (sym *iso) record { z = _ ; az = F∋P ; x=ψz = sym (cong (&) (trans (cong (Cl TP) *iso) (ClL TP))) } 269 ufl11 = subst (λ k → odef k (& P)) (sym *iso) record { z = _ ; az = F∋P ; x=ψz = sym (cong (&) (trans (cong (Cl TP) *iso) (ClL TP))) }
270 -- 270 --
271 -- so we have a limit 271 -- so we have a limit
272 -- 272 --
273 limit : Ordinal 273 limit : Ordinal
274 limit = FIP.limit fip (subst (λ k → k ⊆ CS TP) (sym *iso) CF⊆CS) ufl01 274 limit = FIP.limit fip (subst (λ k → k ⊆ CS TP) (sym *iso) CF⊆CS) ufl01
275 ufl02 : {y : Ordinal } → odef (* (& CF)) y → odef (* y) limit 275 ufl02 : {y : Ordinal } → odef (* (& CF)) y → odef (* y) limit
276 ufl02 = FIP.is-limit fip (subst (λ k → k ⊆ CS TP) (sym *iso) CF⊆CS) ufl01 276 ufl02 = FIP.is-limit fip (subst (λ k → k ⊆ CS TP) (sym *iso) CF⊆CS) ufl01
277 -- 277 --
278 -- Neigbor of limit ⊆ Filter 278 -- Neigbor of limit ⊆ Filter
279 -- 279 --
280 -- if odef (* X) x, Cl TP x contains limit (ufl02) 280 -- if odef (* X) x, Cl TP x contains limit (ufl02)
281 -- in (nei : Neighbor TP limit v) , there is an open Set u which contains the limit 281 -- in (nei : Neighbor TP limit v) , there is an open Set u which contains the limit
282 -- F contains u or P \ u because F is ultra 282 -- F contains u or P \ u because F is ultra
283 -- if F ∋ u, then F ∋ v from u ⊆ v which is a propetery of Neighbor 283 -- if F ∋ u, then F ∋ v from u ⊆ v which is a propetery of Neighbor
284 -- if F ∋ P \ u, it is a closed set (Cl (P \ u) ≡ P \ u) and it does not contains the limit 284 -- if F ∋ P \ u, it is a closed set (Cl (P \ u) ≡ P \ u) and it does not contains the limit
285 -- this contradicts ufl02 285 -- this contradicts ufl02
286 pp : {v : Ordinal} → (nei : Neighbor TP limit v ) → Power P ∋ (* (Neighbor.u nei)) 286 pp : {v : Ordinal} → (nei : Neighbor TP limit v ) → Power P ∋ (* (Neighbor.u nei))
287 pp {v} record { u = u ; ou = ou ; ux = ux ; v⊆P = v⊆P ; u⊆v = u⊆v } z pz 287 pp {v} record { u = u ; ou = ou ; ux = ux ; v⊆P = v⊆P ; u⊆v = u⊆v } z pz
288 = os⊆L TP (subst (λ k → odef (OS TP) k) (sym &iso) ou ) (subst (λ k → odef k z) *iso pz ) 288 = os⊆L TP (subst (λ k → odef (OS TP) k) (sym &iso) ou ) (subst (λ k → odef k z) *iso pz )
289 ufl00 : {v : Ordinal} → Neighbor TP limit v → * v ⊆ filter F 289 ufl00 : {v : Ordinal} → Neighbor TP limit v → filter F ∋ * v
290 ufl00 {v} nei {x} vx with ultra-filter.ultra UF (pp nei ) (NEG P (pp nei )) 290 ufl00 {v} nei with ultra-filter.ultra UF (pp nei ) (NEG P (pp nei ))
291 ... | case1 fu = ? where -- Neighbor.u⊆v nei ? where 291 ... | case1 fu = subst (λ k → odef (filter F) k) &iso
292 -- subst (λ k → odef (filter F) k) &iso ( filter1 F ? ? ? ) where 292 ( filter1 F (subst (λ k → odef (Power P) k ) (sym &iso) px) fu (subst (λ k → u ⊆ k ) (sym *iso) (Neighbor.u⊆v nei))) where
293 px : Power P ∋ * x 293 u = * (Neighbor.u nei)
294 px z xz = Neighbor.v⊆P nei ? 294 px : Power P ∋ * v
295 px z vz = Neighbor.v⊆P nei (subst (λ k → odef k z) *iso vz )
295 ... | case2 nfu = ⊥-elim ( ¬P\u∋limit P\u∋limit ) where 296 ... | case2 nfu = ⊥-elim ( ¬P\u∋limit P\u∋limit ) where
296 u = * (Neighbor.u nei) 297 u = * (Neighbor.u nei)
297 P\u : HOD 298 P\u : HOD
298 P\u = P \ u 299 P\u = P \ u
299 P\u∋limit : odef P\u limit 300 P\u∋limit : odef P\u limit
300 P\u∋limit = subst (λ k → odef k limit) *iso ( ufl02 (subst (λ k → odef k (& P\u)) (sym *iso) ufl03 )) where 301 P\u∋limit = subst (λ k → odef k limit) *iso ( ufl02 (subst (λ k → odef k (& P\u)) (sym *iso) ufl03 )) where
301 ufl04 : & P\u ≡ & (Cl TP (* (& P\u))) 302 ufl04 : & P\u ≡ & (Cl TP (* (& P\u)))
302 ufl04 = cong (&) (sym (trans (cong (Cl TP) *iso) 303 ufl04 = cong (&) (sym (trans (cong (Cl TP) *iso)
303 (CS∋x→Clx=x TP (P\OS=CS TP (subst (λ k → odef (OS TP) k) (sym &iso) (Neighbor.ou nei) ))))) 304 (CS∋x→Clx=x TP (P\OS=CS TP (subst (λ k → odef (OS TP) k) (sym &iso) (Neighbor.ou nei) )))))
304 ufl03 : odef CF (& P\u ) 305 ufl03 : odef CF (& P\u )
305 ufl03 = record { z = _ ; az = nfu ; x=ψz = ufl04 } 306 ufl03 = record { z = _ ; az = nfu ; x=ψz = ufl04 }
306 ¬P\u∋limit : ¬ odef P\u limit 307 ¬P\u∋limit : ¬ odef P\u limit
307 ¬P\u∋limit ⟪ Pl , nul ⟫ = nul ( Neighbor.ux nei ) 308 ¬P\u∋limit ⟪ Pl , nul ⟫ = nul ( Neighbor.ux nei )
338 uflq : UFLP TQ FQ UFQ 339 uflq : UFLP TQ FQ UFQ
339 uflq = FIP→UFLP TQ (Compact→FIP TQ CQ) FQ UFQ 340 uflq = FIP→UFLP TQ (Compact→FIP TQ CQ) FQ UFQ
340 341
341 Pf : odef (ZFP P Q) (& < * (UFLP.limit uflp) , * (UFLP.limit uflq) >) 342 Pf : odef (ZFP P Q) (& < * (UFLP.limit uflp) , * (UFLP.limit uflq) >)
342 Pf = ? 343 Pf = ?
343 pq⊆F : {p q : HOD} → Neighbor TP (& p) (UFLP.limit uflp) → Neighbor TP (& q) (UFLP.limit uflq) → ? ⊆ filter F 344 pq⊆F : {p q : HOD} → Neighbor TP (& p) (UFLP.limit uflp) → Neighbor TP (& q) (UFLP.limit uflq) → ? ⊆ filter F
344 pq⊆F = ? 345 pq⊆F = ?
345 isL : {v : Ordinal} → Neighbor (ProductTopology TP TQ) (& < * (UFLP.limit uflp) , * (UFLP.limit uflq) >) v → * v ⊆ filter F 346 isL : {v : Ordinal} → Neighbor (ProductTopology TP TQ) (& < * (UFLP.limit uflp) , * (UFLP.limit uflq) >) v → filter F ∋ * v
346 isL {v} npq {x} fx = ? where 347 isL {v} npq = ? where
347 bpq : Base (ZFP P Q) (pbase TP TQ) (Neighbor.u npq) (& < * (UFLP.limit uflp) , * (UFLP.limit uflq) >) 348 bpq : Base (ZFP P Q) (pbase TP TQ) (Neighbor.u npq) (& < * (UFLP.limit uflp) , * (UFLP.limit uflq) >)
348 bpq = Neighbor.ou npq (Neighbor.ux npq) 349 bpq = Neighbor.ou npq (Neighbor.ux npq)
349 pqb : Subbase (pbase TP TQ) (Base.b bpq ) 350 pqb : Subbase (pbase TP TQ) (Base.b bpq )
350 pqb = Base.sb bpq 351 pqb = Base.sb bpq
351 pqb⊆opq : * (Base.b bpq) ⊆ * ( Neighbor.u npq ) 352 pqb⊆opq : * (Base.b bpq) ⊆ * ( Neighbor.u npq )
352 pqb⊆opq = Base.b⊆u bpq 353 pqb⊆opq = Base.b⊆u bpq
353 base⊆F : {b : Ordinal } → Subbase (pbase TP TQ) b → * b ⊆ * (Neighbor.u npq) → * b ⊆ filter F 354 base⊆F : {b : Ordinal } → Subbase (pbase TP TQ) b → * b ⊆ * (Neighbor.u npq) → * b ⊆ filter F
354 base⊆F (gi (case1 px)) b⊆u {z} bz = fz where 355 base⊆F (gi (case1 px)) b⊆u {z} bz = fz where
355 -- F contains no od∅, because it projection contains no od∅ 356 -- F contains no od∅, because it projection contains no od∅
356 -- x is an element of BaseP, which is a subset of Neighbor npq 357 -- x is an element of BaseP, which is a subset of Neighbor npq
357 -- x is also an elment of Proj1 F because Proj1 F has UFLP (uflp) 358 -- x is also an elment of Proj1 F because Proj1 F has UFLP (uflp)
358 -- BaseP ∩ F is not empty 359 -- BaseP ∩ F is not empty
359 -- (Base P ∩ F) ⊆ F , (Base P ) ⊆ F , 360 -- (Base P ∩ F) ⊆ F , (Base P ) ⊆ F ,
360 il1 : odef (Power P) z ∧ ZProj1 (filter F) z 361 il1 : odef (Power P) z ∧ ZProj1 (filter F) z
361 il1 = UFLP.is-limit uflp ? bz 362 il1 = ? -- UFLP.is-limit uflp ? bz
362 nei1 : HOD 363 nei1 : HOD
363 nei1 = Proj1 (* (Neighbor.u npq)) (Power P) (Power Q) 364 nei1 = Proj1 (* (Neighbor.u npq)) (Power P) (Power Q)
364 plimit : Ordinal 365 plimit : Ordinal
365 plimit = UFLP.limit uflp 366 plimit = UFLP.limit uflp
366 nproper : {b : Ordinal } → * b ⊆ nei1 → o∅ o< b 367 nproper : {b : Ordinal } → * b ⊆ nei1 → o∅ o< b
367 nproper = ? 368 nproper = ?
368 b∋z : odef nei1 z 369 b∋z : odef nei1 z
369 b∋z = ? 370 b∋z = ?
370 bp : BaseP {P} TP Q z 371 bp : BaseP {P} TP Q z
371 bp = record { p = ? ; op = ? ; prod = ? } 372 bp = record { p = ? ; op = ? ; prod = ? }
372 neip : {p : Ordinal } → ( bp : BaseP TP Q p ) → * p ⊆ filter F 373 neip : {p : Ordinal } → ( bp : BaseP TP Q p ) → * p ⊆ filter F
373 neip = ? 374 neip = ?
374 il2 : * z ⊆ ZFP (Power P) (Power Q) 375 il2 : * z ⊆ ZFP (Power P) (Power Q)
375 il2 = ? 376 il2 = ?
376 il3 : filter F ∋ ? 377 il3 : filter F ∋ ?
377 il3 = ? 378 il3 = ?
378 fz : odef (filter F) z 379 fz : odef (filter F) z
379 fz = subst (λ k → odef (filter F) k) &iso (filter1 F ? ? ?) 380 fz = subst (λ k → odef (filter F) k) &iso (filter1 F ? ? ?)
380 base⊆F (gi (case2 qx)) b⊆u {z} bz = ? 381 base⊆F (gi (case2 qx)) b⊆u {z} bz = ?
381 base⊆F (g∩ b1 b2) b⊆u {z} bz = ? 382 base⊆F (g∩ b1 b2) b⊆u {z} bz = ?