Mercurial > hg > Members > kono > Proof > ZF-in-agda
comparison src/Topology.agda @ 1152:e1c6719a8c38
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 18 Jan 2023 09:30:26 +0900 |
parents | 8a071bf52407 |
children | 5eb972738f9b |
comparison
equal
deleted
inserted
replaced
1151:8a071bf52407 | 1152:e1c6719a8c38 |
---|---|
111 -- we may need these if OS ∋ L is necessary | 111 -- we may need these if OS ∋ L is necessary |
112 -- p : {x : HOD} → L ∋ x → HOD | 112 -- p : {x : HOD} → L ∋ x → HOD |
113 -- Pp : {x : HOD} → {lx : L ∋ x } → P ∋ p lx | 113 -- Pp : {x : HOD} → {lx : L ∋ x } → P ∋ p lx |
114 -- px : {x : HOD} → {lx : L ∋ x } → p lx ∋ x | 114 -- px : {x : HOD} → {lx : L ∋ x } → p lx ∋ x |
115 | 115 |
116 GeneratedTopogy : (L P : HOD) → IsSubBase L P → Topology L | 116 InducedTopology : (L P : HOD) → IsSubBase L P → Topology L |
117 GeneratedTopogy L P isb = record { OS = SO L P ; OS⊆PL = tp00 | 117 InducedTopology L P isb = record { OS = SO L P ; OS⊆PL = tp00 |
118 ; o∪ = tp02 ; o∩ = tp01 ; OS∋od∅ = tp03 } where | 118 ; o∪ = tp02 ; o∩ = tp01 ; OS∋od∅ = tp03 } where |
119 tp03 : {x : Ordinal } → odef (* (& od∅)) x → Base L P (& od∅) x | 119 tp03 : {x : Ordinal } → odef (* (& od∅)) x → Base L P (& od∅) x |
120 tp03 {x} 0x = ⊥-elim ( empty (* x) ( subst₂ (λ j k → odef j k ) *iso (sym &iso) 0x )) | 120 tp03 {x} 0x = ⊥-elim ( empty (* x) ( subst₂ (λ j k → odef j k ) *iso (sym &iso) 0x )) |
121 tp00 : SO L P ⊆ Power L | 121 tp00 : SO L P ⊆ Power L |
122 tp00 {u} ou x ux with ou ux | 122 tp00 {u} ou x ux with ou ux |
197 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 | 197 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 |
198 tp00 : {y : Ordinal} → BaseP TP Q y ∨ BaseQ P TQ y → y o< & (Power (ZFP P Q)) | 198 tp00 : {y : Ordinal} → BaseP TP Q y ∨ BaseQ P TQ y → y o< & (Power (ZFP P Q)) |
199 tp00 {y} bpq = odef< ( pbase⊆PL TP TQ bpq ) | 199 tp00 {y} bpq = odef< ( pbase⊆PL TP TQ bpq ) |
200 | 200 |
201 ProductTopology : {P Q : HOD} → Topology P → Topology Q → Topology (ZFP P Q) | 201 ProductTopology : {P Q : HOD} → Topology P → Topology Q → Topology (ZFP P Q) |
202 ProductTopology {P} {Q} TP TQ = GeneratedTopogy (ZFP P Q) (pbase TP TQ) record { P⊆PL = pbase⊆PL TP TQ } | 202 ProductTopology {P} {Q} TP TQ = InducedTopology (ZFP P Q) (pbase TP TQ) record { P⊆PL = pbase⊆PL TP TQ } |
203 | 203 |
204 -- covers | 204 -- covers ( q ⊆ Union P ) |
205 | 205 |
206 record _covers_ ( P q : HOD ) : Set n where | 206 record _covers_ ( P q : HOD ) : Set n where |
207 field | 207 field |
208 cover : {x : Ordinal } → odef q x → Ordinal | 208 cover : {x : Ordinal } → odef q x → Ordinal |
209 P∋cover : {x : Ordinal } → (lt : odef q x) → odef P (cover lt) | 209 P∋cover : {x : Ordinal } → (lt : odef q x) → odef P (cover lt) |
271 fip06 = os ( subst (λ k → odef (* X) k ) fip07 az ) | 271 fip06 = os ( subst (λ k → odef (* X) k ) fip07 az ) |
272 fip05 : * x ⊆ L | 272 fip05 : * x ⊆ L |
273 fip05 {w} xw = proj1 ( subst (λ k → odef k w) (trans (cong (*) x=ψz) *iso ) xw ) | 273 fip05 {w} xw = proj1 ( subst (λ k → odef k w) (trans (cong (*) x=ψz) *iso ) xw ) |
274 -- | 274 -- |
275 -- X covres L means Intersection of (CX X) contains nothing | 275 -- X covres L means Intersection of (CX X) contains nothing |
276 -- then some finite Intersection of (CX X) contains nothing ( contraposition of FIP ) | 276 -- then some finite Intersection of (CX X) contains nothing ( contraposition of FIP .i.e. CFIP) |
277 -- it means there is a finite cover | 277 -- it means there is a finite cover |
278 -- | 278 -- |
279 record CFIP (X x : Ordinal) : Set n where | 279 record CFIP (X x : Ordinal) : Set n where |
280 field | 280 field |
281 is-CS : * x ⊆ Replace' (* X) (λ z xz → L \ z) | 281 is-CS : * x ⊆ Replace' (* X) (λ z xz → L \ z) |
307 fip21 : odef (L \ * y) ( FIP.limit fip (CCX ox) fip02 ) | 307 fip21 : odef (L \ * y) ( FIP.limit fip (CCX ox) fip02 ) |
308 fip21 = subst (λ k → odef k ( FIP.limit fip (CCX ox) fip02 ) ) *iso ( FIP.is-limit fip (CCX ox) fip02 fip22 ) | 308 fip21 = subst (λ k → odef k ( FIP.limit fip (CCX ox) fip02 ) ) *iso ( FIP.is-limit fip (CCX ox) fip02 fip22 ) |
309 fip09 : {z : Ordinal } → odef L z → ¬ ( {y : Ordinal } → (Xy : odef (* X) y) → ¬ ( odef (* y) z )) | 309 fip09 : {z : Ordinal } → odef L z → ¬ ( {y : Ordinal } → (Xy : odef (* X) y) → ¬ ( odef (* y) z )) |
310 fip09 {z} Lz nc = nc ( P∋cover oc Lz ) (subst (λ k → odef (* (cover oc Lz)) k) refl (isCover oc _ )) | 310 fip09 {z} Lz nc = nc ( P∋cover oc Lz ) (subst (λ k → odef (* (cover oc Lz)) k) refl (isCover oc _ )) |
311 cex : {X : Ordinal } → * X ⊆ OS top → * X covers L → Ordinal | 311 cex : {X : Ordinal } → * X ⊆ OS top → * X covers L → Ordinal |
312 cex {X} ox oc = & ( ODC.minimal O (Cex X) (fip00 ox oc)) | 312 cex {X} ox oc = & ( ODC.minimal O (Cex X) (fip00 ox oc)) -- this will be the finite cover |
313 CXfip : {X : Ordinal } → (ox : * X ⊆ OS top) → (oc : * X covers L) → CFIP X (cex ox oc) | 313 CXfip : {X : Ordinal } → (ox : * X ⊆ OS top) → (oc : * X covers L) → CFIP X (cex ox oc) |
314 CXfip {X} ox oc = ODC.x∋minimal O (Cex X) (fip00 ox oc) | 314 CXfip {X} ox oc = ODC.x∋minimal O (Cex X) (fip00 ox oc) |
315 -- | 315 -- |
316 -- this defines finite cover | 316 -- this defines finite cover |
317 finCover : {X : Ordinal} → * X ⊆ OS top → * X covers L → Ordinal | 317 finCover : {X : Ordinal} → * X ⊆ OS top → * X covers L → Ordinal |
326 ... | record { z = z1 ; az = az1 ; x=ψz = x=ψz1 } = subst (λ k → odef (* X) k) fip33 az1 where | 326 ... | record { z = z1 ; az = az1 ; x=ψz = x=ψz1 } = subst (λ k → odef (* X) k) fip33 az1 where |
327 fip34 : * z1 ⊆ L | 327 fip34 : * z1 ⊆ L |
328 fip34 {w} wz1 = os⊆L top (subst (λ k → odef (OS top) k) (sym &iso) (xo az1)) wz1 | 328 fip34 {w} wz1 = os⊆L top (subst (λ k → odef (OS top) k) (sym &iso) (xo az1)) wz1 |
329 fip33 : z1 ≡ w | 329 fip33 : z1 ≡ w |
330 fip33 = begin | 330 fip33 = begin |
331 z1 ≡⟨ sym &iso ⟩ | 331 z1 ≡⟨ sym &iso ⟩ |
332 & (* z1) ≡⟨ cong (&) (sym (L\Lx=x fip34 )) ⟩ | 332 & (* z1) ≡⟨ cong (&) (sym (L\Lx=x fip34 )) ⟩ |
333 & (L \ ( L \ * z1)) ≡⟨ cong (λ k → & ( L \ k )) (sym *iso) ⟩ | 333 & (L \ ( L \ * z1)) ≡⟨ cong (λ k → & ( L \ k )) (sym *iso) ⟩ |
334 & (L \ * (& ( L \ * z1))) ≡⟨ cong (λ k → & ( L \ * k )) (sym x=ψz1) ⟩ | 334 & (L \ * (& ( L \ * z1))) ≡⟨ cong (λ k → & ( L \ * k )) (sym x=ψz1) ⟩ |
335 & (L \ * z) ≡⟨ sym x=ψz ⟩ | 335 & (L \ * z) ≡⟨ sym x=ψz ⟩ |
336 w ∎ where open ≡-Reasoning | 336 w ∎ where open ≡-Reasoning |
337 fip31 : Finite-∪ (* X) (& (Replace' (* x) (λ z xz → L \ z))) | 337 fip31 : Finite-∪ (* X) (& (Replace' (* x) (λ z xz → L \ z))) |
338 fip31 = fin-e (subst (λ k → k ⊆ * X ) (sym *iso) fip32 ) | 338 fip31 = fin-e (subst (λ k → k ⊆ * X ) (sym *iso) fip32 ) |
339 fip30 x yz x⊆cs (g∩ {y} {z} sy sz) = fip35 where | 339 fip30 x yz x⊆cs (g∩ {y} {z} sy sz) = fip35 where |
340 fip35 : Finite-∪ (* X) (& (Replace' (* x) (λ z₁ xz → L \ z₁))) | 340 fip35 : Finite-∪ (* X) (& (Replace' (* x) (λ z₁ xz → L \ z₁))) |
341 fip35 = subst (λ k → Finite-∪ (* X) k) | 341 fip35 = subst (λ k → Finite-∪ (* X) k) |
342 (cong (&) (subst (λ k → (k ∪ k ) ≡ (Replace' (* x) (λ z₁ xz → L \ z₁)) ) (sym *iso) x∪x≡x )) ( fin-∪ (fip30 _ _ x⊆cs sy) (fip30 _ _ x⊆cs sz) ) | 342 (cong (&) (subst (λ k → (k ∪ k ) ≡ (Replace' (* x) (λ z₁ xz → L \ z₁)) ) (sym *iso) x∪x≡x )) ( fin-∪ (fip30 _ _ x⊆cs sy) (fip30 _ _ x⊆cs sz) ) |
343 -- is also a cover | 343 -- is also a cover |
344 isCover1 : {X : Ordinal} (xo : * X ⊆ OS top) (xcp : * X covers L) → * (finCover xo xcp) covers L | 344 isCover1 : {X : Ordinal} (xo : * X ⊆ OS top) (xcp : * X covers L) → * (finCover xo xcp) covers L |
345 isCover1 {X} xo xcp = subst₂ (λ j k → j covers k ) (sym *iso) (subst (λ k → L \ k ≡ L) (sym o∅≡od∅) L\0=L) | 345 isCover1 {X} xo xcp = subst₂ (λ j k → j covers k ) (sym *iso) (subst (λ k → L \ k ≡ L) (sym o∅≡od∅) L\0=L) |
346 ( fip40 (cex xo xcp) o∅ (CFIP.is-CS (CXfip xo xcp)) (CFIP.sx (CXfip xo xcp))) where | 346 ( fip40 (cex xo xcp) o∅ (CFIP.is-CS (CXfip xo xcp)) (CFIP.sx (CXfip xo xcp))) where |
347 -- record { cover = λ {x} Lx → ? ; P∋cover = ? ; isCover = ? } | |
348 fip45 : {L a b : HOD} → (L \ (a ∩ b)) ⊆ ( (L \ a) ∪ (L \ b)) | 347 fip45 : {L a b : HOD} → (L \ (a ∩ b)) ⊆ ( (L \ a) ∪ (L \ b)) |
349 fip45 {L} {a} {b} {x} Lab with ODC.∋-p O b (* x) | 348 fip45 {L} {a} {b} {x} Lab with ODC.∋-p O b (* x) |
350 ... | yes bx = case1 ⟪ proj1 Lab , (λ ax → proj2 Lab ⟪ ax , subst (λ k → odef b k) &iso bx ⟫ ) ⟫ | 349 ... | yes bx = case1 ⟪ proj1 Lab , (λ ax → proj2 Lab ⟪ ax , subst (λ k → odef b k) &iso bx ⟫ ) ⟫ |
351 ... | no ¬bx = case2 ⟪ proj1 Lab , subst (λ k → ¬ ( odef b k)) &iso ¬bx ⟫ | 350 ... | no ¬bx = case2 ⟪ proj1 Lab , subst (λ k → ¬ ( odef b k)) &iso ¬bx ⟫ |
352 fip43 : {A L a b : HOD } → A covers (L \ a) → A covers (L \ b ) → A covers ( L \ ( a ∩ b ) ) | 351 fip43 : {A L a b : HOD } → A covers (L \ a) → A covers (L \ b ) → A covers ( L \ ( a ∩ b ) ) |
357 ... | case2 Lb = cover cb Lb | 356 ... | case2 Lb = cover cb Lb |
358 fip46 : {x : Ordinal} (lt : odef (L \ (a ∩ b)) x) → odef A (fip44 lt) | 357 fip46 : {x : Ordinal} (lt : odef (L \ (a ∩ b)) x) → odef A (fip44 lt) |
359 fip46 {x} Lab with fip45 {L} {a} {b} Lab | 358 fip46 {x} Lab with fip45 {L} {a} {b} Lab |
360 ... | case1 La = P∋cover ca La | 359 ... | case1 La = P∋cover ca La |
361 ... | case2 Lb = P∋cover cb Lb | 360 ... | case2 Lb = P∋cover cb Lb |
362 fip47 : {x : Ordinal} (lt : odef (L \ (a ∩ b)) x) → odef (* (fip44 lt)) x | 361 fip47 : {x : Ordinal} (lt : odef (L \ (a ∩ b)) x) → odef (* (fip44 lt)) x |
363 fip47 {x} Lab with fip45 {L} {a} {b} Lab | 362 fip47 {x} Lab with fip45 {L} {a} {b} Lab |
364 ... | case1 La = isCover ca La | 363 ... | case1 La = isCover ca La |
365 ... | case2 Lb = isCover cb Lb | 364 ... | case2 Lb = isCover cb Lb |
366 fip40 : ( x y : Ordinal ) → * x ⊆ Replace' (* X) (λ z xz → L \ z) → Subbase (* x) y | 365 fip40 : ( x y : Ordinal ) → * x ⊆ Replace' (* X) (λ z xz → L \ z) → Subbase (* x) y |
367 → (Replace' (* x) (λ z xz → L \ z )) covers (L \ * y ) | 366 → (Replace' (* x) (λ z xz → L \ z )) covers (L \ * y ) |
368 fip40 x .(& (* _ ∩ * _)) x⊆r (g∩ {a} {b} sa sb) = subst (λ k → (Replace' (* x) (λ z xz → L \ z)) covers ( L \ k ) ) (sym *iso) | 367 fip40 x .(& (* _ ∩ * _)) x⊆r (g∩ {a} {b} sa sb) = subst (λ k → (Replace' (* x) (λ z xz → L \ z)) covers ( L \ k ) ) (sym *iso) |
369 ( fip43 {_} {L} {* a} {* b} fip41 fip42 ) where | 368 ( fip43 {_} {L} {* a} {* b} fip41 fip42 ) where |
370 fip41 : Replace' (* x) (λ z xz → L \ z) covers (L \ * a) | 369 fip41 : Replace' (* x) (λ z xz → L \ z) covers (L \ * a) |
371 fip41 = fip40 x a x⊆r sa | 370 fip41 = fip40 x a x⊆r sa |
372 fip42 : Replace' (* x) (λ z xz → L \ z) covers (L \ * b) | 371 fip42 : Replace' (* x) (λ z xz → L \ z) covers (L \ * b) |
373 fip42 = fip40 x b x⊆r sb | 372 fip42 = fip40 x b x⊆r sb |
374 fip40 x y x⊆r (gi sb) with x⊆r sb | 373 fip40 x y x⊆r (gi sb) with x⊆r sb |
375 ... | record { z = z ; az = az ; x=ψz = x=ψz } = record { cover = fip51 ; P∋cover = fip53 ; isCover = fip50 }where | 374 ... | record { z = z ; az = az ; x=ψz = x=ψz } = record { cover = fip51 ; P∋cover = fip53 ; isCover = fip50 }where |
376 fip51 : {w : Ordinal} (Lyw : odef (L \ * y) w) → Ordinal | 375 fip51 : {w : Ordinal} (Lyw : odef (L \ * y) w) → Ordinal |
377 fip51 {w} Lyw = z | 376 fip51 {w} Lyw = z |
378 fip52 : {w : Ordinal} (Lyw : odef (L \ * y) w) → odef (* X) z | 377 fip52 : {w : Ordinal} (Lyw : odef (L \ * y) w) → odef (* X) z |
379 fip52 {w} Lyw = az | 378 fip52 {w} Lyw = az |
380 fip55 : * z ⊆ L | 379 fip55 : * z ⊆ L |
381 fip55 {w} wz1 = os⊆L top (subst (λ k → odef (OS top) k) (sym &iso) (xo az)) wz1 | 380 fip55 {w} wz1 = os⊆L top (subst (λ k → odef (OS top) k) (sym &iso) (xo az)) wz1 |
382 fip56 : * z ≡ L \ * y | 381 fip56 : * z ≡ L \ * y |
383 fip56 = begin | 382 fip56 = begin |
384 * z ≡⟨ sym (L\Lx=x fip55 ) ⟩ | 383 * z ≡⟨ sym (L\Lx=x fip55 ) ⟩ |
385 L \ ( L \ * z ) ≡⟨ cong (λ k → L \ k) (sym *iso) ⟩ | 384 L \ ( L \ * z ) ≡⟨ cong (λ k → L \ k) (sym *iso) ⟩ |
386 L \ * ( & ( L \ * z )) ≡⟨ cong (λ k → L \ * k) (sym x=ψz) ⟩ | 385 L \ * ( & ( L \ * z )) ≡⟨ cong (λ k → L \ * k) (sym x=ψz) ⟩ |
387 L \ * y ∎ where open ≡-Reasoning | 386 L \ * y ∎ where open ≡-Reasoning |
388 fip53 : {w : Ordinal} (Lyw : odef (L \ * y) w) → odef (Replace' (* x) (λ z₁ xz → L \ z₁)) z | 387 fip53 : {w : Ordinal} (Lyw : odef (L \ * y) w) → odef (Replace' (* x) (λ z₁ xz → L \ z₁)) z |
389 fip53 {w} Lyw = record { z = _ ; az = sb ; x=ψz = fip54 } where | 388 fip53 {w} Lyw = record { z = _ ; az = sb ; x=ψz = fip54 } where |
390 fip54 : z ≡ & ( L \ * y ) | 389 fip54 : z ≡ & ( L \ * y ) |
391 fip54 = begin | 390 fip54 = begin |
392 z ≡⟨ sym &iso ⟩ | 391 z ≡⟨ sym &iso ⟩ |
393 & (* z) ≡⟨ cong (&) fip56 ⟩ | 392 & (* z) ≡⟨ cong (&) fip56 ⟩ |
394 & (L \ * y ) | 393 & (L \ * y ) |
395 ∎ where open ≡-Reasoning | 394 ∎ where open ≡-Reasoning |
396 fip50 : {w : Ordinal} (Lyw : odef (L \ * y) w) → odef (* z) w | 395 fip50 : {w : Ordinal} (Lyw : odef (L \ * y) w) → odef (* z) w |
397 fip50 {w} Lyw = subst (λ k → odef k w ) (sym fip56) Lyw | 396 fip50 {w} Lyw = subst (λ k → odef k w ) (sym fip56) Lyw |
398 | 397 |
399 | 398 |
400 | 399 |
401 -- some day | 400 -- some day |
402 Compact→FIP : Set (suc n) | 401 Compact→FIP : Set (suc n) |
420 UFLP→FIP : {P : HOD} (TP : Topology P) → {L : HOD} (LP : L ⊆ Power P ) → | 419 UFLP→FIP : {P : HOD} (TP : Topology P) → {L : HOD} (LP : L ⊆ Power P ) → |
421 ( (F : Filter {L} {P} LP ) (FP : filter F ∋ P) (UF : ultra-filter F ) → UFLP TP LP F FP UF ) → FIP TP | 420 ( (F : Filter {L} {P} LP ) (FP : filter F ∋ P) (UF : ultra-filter F ) → UFLP TP LP F FP UF ) → FIP TP |
422 UFLP→FIP {P} TP {L} LP uflp = record { limit = uf00 ; is-limit = {!!} } where | 421 UFLP→FIP {P} TP {L} LP uflp = record { limit = uf00 ; is-limit = {!!} } where |
423 fip : {X : Ordinal} → * X ⊆ CS TP → Set n | 422 fip : {X : Ordinal} → * X ⊆ CS TP → Set n |
424 fip {X} CSX = {C x : Ordinal} → * C ⊆ * X → Subbase (* C) x → o∅ o< x | 423 fip {X} CSX = {C x : Ordinal} → * C ⊆ * X → Subbase (* C) x → o∅ o< x |
424 N : {X : Ordinal} → (CSX : * X ⊆ CS TP ) → fip {X} CSX → HOD | |
425 N {X} CSX fip = record { od = record { def = λ x → Base L P X x ∧ ( o∅ o< x ) } ; odmax = ? ; <odmax = ? } | |
425 F : {X : Ordinal} → (CSX : * X ⊆ CS TP ) → fip {X} CSX → Filter {L} {P} LP | 426 F : {X : Ordinal} → (CSX : * X ⊆ CS TP ) → fip {X} CSX → Filter {L} {P} LP |
426 F = ? | 427 F {X} CSX fip = record { filter = N CSX fip ; f⊆L = ? ; filter1 = ? ; filter2 = ? } |
427 uf00 : {X : Ordinal} → (CSX : * X ⊆ CS TP) → fip {X} CSX → Ordinal | 428 uf00 : {X : Ordinal} → (CSX : * X ⊆ CS TP) → fip {X} CSX → Ordinal |
428 uf00 {X} CSX fip = UFLP.limit ( uflp (F CSX fip) ? (F→ultra LP ? ? (F CSX fip) ? ? ? ) ) | 429 uf00 {X} CSX fip = UFLP.limit ( uflp |
430 ( MaximumFilter.mf (F→Maximum {L} {P} LP ? ? (F CSX ?) ? ? ? )) | |
431 ? | |
432 (F→ultra LP ? ? (F CSX fip) ? ? ? ) ) | |
429 | 433 |
430 -- some day | 434 -- some day |
431 FIP→UFLP : Set (suc (suc n)) | 435 FIP→UFLP : Set (suc (suc n)) |
432 FIP→UFLP = {P : HOD} (TP : Topology P) → FIP TP | 436 FIP→UFLP = {P : HOD} (TP : Topology P) → FIP TP |
433 → {L : HOD} (LP : L ⊆ Power P ) (F : Filter LP ) (FP : filter F ∋ P) (UF : ultra-filter F ) → UFLP {P} TP {L} LP F FP UF | 437 → {L : HOD} (LP : L ⊆ Power P ) (F : Filter LP ) (FP : filter F ∋ P) (UF : ultra-filter F ) → UFLP {P} TP {L} LP F FP UF |