Mercurial > hg > Members > kono > Proof > ZF-in-agda
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 = ? |