open import Level open import Ordinals module Topology {n : Level } (O : Ordinals {n}) where open import zf open import logic open _∧_ open _∨_ open Bool import OD open import Relation.Nullary open import Data.Empty open import Relation.Binary.Core open import Relation.Binary.PropositionalEquality import BAlgbra open BAlgbra O open inOrdinal O open OD O open OD.OD open ODAxiom odAxiom import OrdUtil import ODUtil open Ordinals.Ordinals O open Ordinals.IsOrdinals isOrdinal open Ordinals.IsNext isNext open OrdUtil O open ODUtil O import ODC open ODC O open import filter O open import OPair O record Topology ( L : HOD ) : Set (suc n) where field 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 -- closed Set CS : HOD CS = record { od = record { def = λ x → odef OS (& ( L \ (* x ))) } ; odmax = & L ; ; P∋limit = ? ; is-limit = ? } where LP : (L : HOD ) (LPQ : L ⊆ Power (ZFP P Q)) → HOD LP L LPQ = Replace' L ( λ x lx → Replace' x ( λ z xz → * ( zπ1 (LPQ lx (& z) (subst (λ k → odef k (& z)) (sym *iso) xz )))) ) LPP : (L : HOD) (LPQ : L ⊆ Power (ZFP P Q)) → LP L LPQ ⊆ Power P LPP L LPQ record { z = z ; az = az ; x=ψz = x=ψz } w xw = tp02 (subst (λ k → odef k w) (subst₂ (λ j k → j ≡ k) refl *iso (cong (*) x=ψz) ) xw) where tp02 : Replace' (* z) (λ z₁ xz → * (zπ1 (LPQ (subst (odef L) (sym &iso) az) (& z₁) (subst (λ k → odef k (& z₁)) (sym *iso) xz)))) ⊆ P tp02 record { z = z1 ; az = az1 ; x=ψz = x=ψz1 } = subst (λ k → odef P k ) (trans (sym &iso) (sym x=ψz1) ) (zp1 (LPQ (subst (λ k → odef L k) (sym &iso) az) _ (tp03 az1 ))) where tp03 : odef (* z) z1 → odef (* (& (* z))) (& (* z1)) tp03 lt = subst (λ k → odef k (& (* z1))) (sym *iso) (subst (odef (* z)) (sym &iso) lt) FP : Filter (LPP L LPQ) FP = record { filter = LP (filter F) (λ x → LPQ (f⊆L F x )) ; f⊆L = tp04 ; filter1 = ? ; filter2 = ? } where tp04 : LP (filter F) (λ x → LPQ (f⊆L F x )) ⊆ LP L LPQ tp04 record { z = z ; az = az ; x=ψz = x=ψz } = record { z = z ; az = f⊆L F az ; x=ψz = ? } uFP : ultra-filter FP uFP = record { proper = ? ; ultra = ? } uflpp : UFLP {P} TP {LP L LPQ} (LPP L LPQ) FP uFP uflpp = FIP→UFLP TP (Compact→FIP TP CP) (LPP L LPQ) FP uFP LQ : HOD LQ = Replace' L ( λ x lx → Replace' x ( λ z xz → * ( zπ2 (LPQ lx (& z) (subst (λ k → odef k (& z)) (sym *iso) xz )))) ) LQQ : LQ ⊆ Power Q LQQ = ?