changeset 1484:0b30bb7c7501

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 01 Jul 2024 07:00:04 +0900
parents 2435deeecda9
children 5dacb669f13b
files src/BAlgebra.agda src/Topology.agda
diffstat 2 files changed, 66 insertions(+), 47 deletions(-) [+]
line wrap: on
line diff
--- a/src/BAlgebra.agda	Sun Jun 30 19:36:51 2024 +0900
+++ b/src/BAlgebra.agda	Mon Jul 01 07:00:04 2024 +0900
@@ -39,6 +39,10 @@
     lem1 : {x : Ordinal} → odef  od∅ x → odef (L \ L) x
     lem1 {x} lt = ⊥-elim ( ¬∅∋ (subst (λ k → odef od∅ k) (sym &iso) lt ))
 
+\-cong : (P Q R S : HOD) → P =h= R → Q =h= S →  (P \ Q) =h= (R \ S)
+eq→ (\-cong P Q R S p=r q=s) {x} ⟪ px , npq ⟫ = ⟪ eq→ p=r px , (λ lt → npq (eq← q=s lt) ) ⟫
+eq← (\-cong P Q R S p=r q=s ) {x} ⟪ rx , nrs ⟫ = ⟪ eq← p=r rx , (λ lt → nrs (eq→ q=s lt) ) ⟫
+
 L\Lx=x : {x : HOD} →  x ⊆ L   → (L \ ( L \ x )) =h= x
 L\Lx=x {x} x⊆L = record { eq→ = lem03 ; eq← = lem04 }  where
     lem03 :  {z : Ordinal} → odef (L \ (L \ x)) z → odef x z
--- a/src/Topology.agda	Sun Jun 30 19:36:51 2024 +0900
+++ b/src/Topology.agda	Mon Jul 01 07:00:04 2024 +0900
@@ -59,6 +59,10 @@
 open import ZProduct O HODAxiom ho<
 open import filter O HODAxiom ho< AC
 
+import Relation.Binary.Reasoning.Setoid as EqHOD
+
+LDec : (L : HOD) (P : HOD) → P ⊆ L → (x : HOD) → Dec (x ∈ P)
+LDec L P _ x = ∋-p P x
 
 record Topology  ( L : HOD ) : Set (suc n) where
    field
@@ -70,26 +74,28 @@
 --- we may add
 --     OS∋L   :  OS ∋ L
 -- closed Set
-   open BAlgebra O HODAxiom ho< L ?
+   open BAlgebra O HODAxiom ho< L (LDec L)
    CS : HOD
    CS = record { od = record { def = λ x → (* x ⊆ L) ∧ odef OS (& ( L \ (* x ))) } ; odmax = osuc (& L) ; <odmax = tp02 } where
        tp02 : {y : Ordinal } → (* y ⊆ L) ∧ odef OS (& (L \ * y)) → y o< osuc (& L)
        tp02 {y} nop = subst (λ k → k o≤ & L ) &iso ( ⊆→o≤ (λ {x} yx → proj1 nop yx ))
    os⊆L :  {x : HOD} → OS ∋ x → x ⊆ L
-   os⊆L {x} Ox {y} xy = ( OS⊆PL Ox ) _ (subst (λ k → odef k y) ? xy  )
+   os⊆L {x} Ox {y} xy = ( OS⊆PL Ox ) _ (eq← *iso xy)
    cs⊆L :  {x : HOD} → CS ∋ x → x ⊆ L
-   cs⊆L {x} Cx {y} xy = proj1 Cx (subst (λ k → odef k y ) ? xy )
+   cs⊆L {x} Cx {y} xy = proj1 Cx (eq← *iso xy)
    CS∋L : CS ∋ L
-   CS∋L = ⟪ subst (λ k → k ⊆ L) ? (λ x → x)  , subst (λ k → odef OS (& k)) (sym lem0) OS∋od∅  ⟫ where
-        lem0 : L \ * (& L) ≡ od∅
-        lem0 = subst (λ k → L \ k  ≡ od∅) ? ? -- L\L=0
+   CS∋L = ⟪ (λ lt → eq→ *iso lt)  , subst (λ k → odef OS k) (sym lem0) OS∋od∅  ⟫ where
+        lem0 : & (L \ * (& L)) ≡ & od∅
+        lem0 = ==→o≡ ( ==-trans (\-cong L (* (& L)) L L ==-refl *iso ) L\L=0 )
    CS⊆PL :  CS ⊆ Power L
    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) ?  olcs
+   P\CS=OS {cs} ⟪ cs⊆L , olcs  ⟫ = subst (λ k → odef OS k) (==→o≡ (\-cong L (* (& cs)) L cs ==-refl *iso))  olcs
    P\OS=CS : {cs : HOD} → OS ∋ cs →  CS ∋ ( L \ cs )
-   P\OS=CS {os} oos = ⟪ subst (λ k → k ⊆ L) ? proj1
-      , subst (λ k → odef OS k) (cong (&) (trans (sym ?) (cong (λ k → L \ k) ?) )) oos  ⟫
+   P\OS=CS {os} oos = ⟪ (λ lt →  proj1 (eq→ *iso lt))
+      , subst (λ k → odef OS k) (==→o≡ (==-sym (==-trans (
+           \-cong L (* ( & (L \ os)))  L (L \ os) ==-refl *iso ) (L\Lx=x {os} (os⊆L oos)) ))) oos  ⟫
+
 
 open Topology
 
@@ -101,14 +107,15 @@
 
 ClL : {L : HOD} → (top : Topology L) → Cl top L  =h= L
 ClL {L} top  =  record { eq→ = λ {x} ic
-        → subst (λ k → odef k x) ? ((proj2 ic) (& L) (CS∋L top) (subst (λ k → L ⊆ k) ? ( λ x → x)))
+        → eq→ *iso ((proj2 ic) (& L) (CS∋L top) (λ lt → eq← *iso lt))
     ; eq← =  λ {x} lx → ⟪ lx , ( λ c cs l⊆c → l⊆c lx) ⟫ } 
 
 -- Closure is Closed Set
 
+
 CS∋Cl : {L : HOD} → (top : Topology L) → (A : HOD) → CS top ∋ Cl top A 
-CS∋Cl {L} top A = subst (λ k → CS top ∋ k) ? (P\OS=CS top UOCl-is-OS)  where
-    open BAlgebra O HODAxiom ho< L ?
+CS∋Cl {L} top A = subst (λ k → odef (CS top)  k) (==→o≡ cc00) (P\OS=CS top UOCl-is-OS)  where
+    open BAlgebra O HODAxiom ho< L (LDec L)
     OCl : HOD  -- set of open set which it not contains A 
     OCl = record { od = record { def = λ o → odef (OS top) o ∧ ( A ⊆ (L \ * o) ) } ; odmax = & (OS top) ; <odmax = odef∧< }
     OCl⊆OS  : OCl ⊆  OS top 
@@ -122,28 +129,31 @@
            cc02 : (c : Ordinal) → odef (CS top) c → A ⊆ * c → ¬ odef (Union OCl) x  → odef (* c) x
            cc02 c cc ac nox with ODC.∋-p (* c) (* x)
            ... | yes y = subst (λ k → odef (* c) k) &iso y
-           ... | no ncx = ⊥-elim ( nox record { owner = & ( L \ * c) ; ao = ⟪ proj2 cc , cc07 ⟫ ; ox = subst (λ k → odef k x) ? cc06  } ) where
+           ... | no ncx = ⊥-elim ( nox record { owner = & ( L \ * c) ; ao = ⟪ proj2 cc , cc07 ⟫ ; ox = eq← *iso cc06  } ) where
                 cc06 : odef (L \ * c) x 
                 cc06 = ⟪ Lx , subst (λ k → ¬ odef (* c) k) &iso ncx ⟫
                 cc08 : * c ⊆ L
                 cc08 = cs⊆L top (subst (λ k → odef (CS top) k ) (sym &iso) cc )
+                cc09 : (L \ * (& (L \ * c))) =h= (* c)
+                cc09 = begin 
+                    L \ * (& (L \ * c)) ≈⟨ \-cong L (* (& (L \ * c))) L (L \ * c) ==-refl *iso  ⟩
+                    L \ (L \ * c) ≈⟨  L\Lx=x {* c} cc08 ⟩
+                    * c ∎
+                       where open EqHOD ==-Setoid
                 cc07 :  A ⊆ (L \ * (& (L \ * c)))
-                cc07 {z} az = subst (λ k → odef k z ) (
-                   begin  * c ≡⟨ sym ? ⟩
-                   L \ (L \ * c) ≡⟨ cong (λ k → L \ k ) ? ⟩
-                   L \ * (& (L \ * c)) ∎ ) ( ac az ) where open ≡-Reasoning
+                cc07 {z} az = eq← cc09 ( ac az ) 
         cc03 : {x : Ordinal}  → odef L x ∧ ((c : Ordinal) → odef (CS top) c → A ⊆ * c → odef (* c) x) → odef (L \ Union OCl) x
         cc03 {x} ⟪ Lx , ccx ⟫ = ⟪ Lx , cc04 ⟫ where
            -- if x is in Cl A, it is in some c : CS, OCl says it is not , i.e. L \ o ∋ x, so it is in (L \ Union OCl) x
            cc04 : ¬ odef (Union OCl) x
-           cc04 record { owner = o ; ao = ⟪ oo , A⊆L-o ⟫ ; ox = ox } = proj2 ( subst (λ k → odef k x) ? cc05) ox  where
+           cc04 record { owner = o ; ao = ⟪ oo , A⊆L-o ⟫ ; ox = ox } = proj2 ( eq→ *iso cc05) ox  where
                 cc05 : odef (* (& (L \ * o))) x
-                cc05 = ccx (& (L \ * o)) (P\OS=CS top (subst (λ k → odef (OS top) k) (sym &iso) oo)) (subst (λ k → A ⊆ k) ? A⊆L-o) 
+                cc05 = ccx (& (L \ * o)) (P\OS=CS top (subst (λ k → odef (OS top) k) (sym &iso) oo)) (λ lt → eq← *iso (A⊆L-o lt)) 
 
 CS∋x→Clx=x : {L x : HOD} → (top : Topology L) → CS top ∋ x → Cl top x =h= x 
 CS∋x→Clx=x {L} {x} top cx = record { eq→ = cc10 ; eq← = cc11 } where
     cc10 : {y : Ordinal} → odef L y ∧ ((c : Ordinal) → odef (CS top) c → x ⊆ * c → odef (* c) y) → odef x y
-    cc10 {y} ⟪ Ly , cc ⟫ = subst (λ k → odef k y) ? ( cc (& x) cx (λ {z} xz → subst (λ k → odef k z) ? xz  ) )
+    cc10 {y} ⟪ Ly , cc ⟫ = eq→ *iso ( cc (& x) cx (λ {z} xz → eq← *iso xz  ) )
     cc11 : {y : Ordinal} → odef x y → odef L y ∧ ((c : Ordinal) → odef (CS top) c → x ⊆ * c → odef (* c) y) 
     cc11 {y} xy = ⟪ cs⊆L top cx xy , (λ c oc x⊆c → x⊆c xy ) ⟫
 
@@ -163,7 +173,7 @@
 
 is-sbp :  (P : HOD) {x y : Ordinal } → (px : Subbase P x) → odef (* x) y  → odef P (sbp P px ) ∧ odef (* (sbp P px)) y
 is-sbp P {x} (gi px) xy = ⟪ px , xy ⟫
-is-sbp P {.(& (* _ ∩ * _))} (g∩ {x} {y} px px₁) xy = is-sbp P px (proj1 (subst (λ k → odef k _ ) ?  xy))
+is-sbp P {.(& (* _ ∩ * _))} (g∩ {x} {y} px px₁) xy = is-sbp P px (proj1 (eq→ *iso xy))
 
 sb⊆ : {P Q : HOD} {x : Ordinal } → P ⊆ Q → Subbase P x → Subbase Q x
 sb⊆ {P} {Q} P⊆Q (gi px) = gi (P⊆Q px)
@@ -200,48 +210,48 @@
 InducedTopology L P isb = record { OS = SO L P ; OS⊆PL = tp00
          ; o∪ = tp02 ; o∩ = tp01 ; OS∋od∅ = tp03 } where
     tp03 : {x : Ordinal } → odef (* (& od∅)) x → Base L P (& od∅) x
-    tp03 {x} 0x = ⊥-elim ( empty (* x) ( subst₂ (λ j k → odef j k ) ? (sym &iso) 0x ))
+    tp03 {x} 0x = ⊥-elim ( empty (* x) (eq→ *iso ( subst (λ k → odef (* (& od∅)) k ) (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)
     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) ? ul
+    tp01 {p} {q} op oq {x} ux =  record { b = b ; u⊆L = λ lt → ul (eq→ *iso lt)
       ; 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 ) ? ( proj1 (subst (λ k → odef k _ ) ? ux ) )
+        px = eq← *iso ( proj1 (eq→ *iso ux) )
         qx : odef (* (& q)) x
-        qx = subst (λ k → odef k x ) ? ( proj2 (subst (λ k → odef k _ ) ? ux ) )
+        qx = eq← *iso ( proj2 (eq→ *iso ux) )
         b : Ordinal
         b = & (* (Base.b (op px)) ∩ * (Base.b (oq qx)))
         tp08 :  * b ⊆ * (& (p ∩ q) )
-        tp08 =  subst₂ (λ j k → j ⊆ k ) ?  ? (⊆∩-dist {(* (Base.b (op px)) ∩ * (Base.b (oq qx)))} {p} {q} tp09 tp10 ) where
+        tp08 = λ lt → ( eq← *iso ((⊆∩-dist {(* (Base.b (op px)) ∩ * (Base.b (oq qx)))} {p} {q} tp09 tp10 ) (eq→ *iso lt))) where
              tp11 : * (Base.b (op px))  ⊆ * (& p )
              tp11 = Base.b⊆u (op px)
              tp12 : * (Base.b (oq qx))  ⊆ * (& q )
              tp12 = Base.b⊆u (oq qx)
              tp09 : (* (Base.b (op px)) ∩ * (Base.b (oq qx))) ⊆ p
-             tp09 = ⊆∩-incl-1 {* (Base.b (op px))} {* (Base.b (oq qx))} {p} (subst (λ k → (* (Base.b (op px))) ⊆ k ) ? tp11)
+             tp09 = ⊆∩-incl-1 {* (Base.b (op px))} {* (Base.b (oq qx))} {p} (λ lt → eq→ *iso (tp11 lt))
              tp10 : (* (Base.b (op px)) ∩ * (Base.b (oq qx))) ⊆ q
-             tp10 = ⊆∩-incl-2 {* (Base.b (oq qx))} {* (Base.b (op px))} {q} (subst (λ k → (* (Base.b (oq qx))) ⊆ k ) ? tp12)
+             tp10 = ⊆∩-incl-2 {* (Base.b (oq qx))} {* (Base.b (op px))} {q} (λ lt → eq→ *iso (tp12 lt))
         tp14 : odef (* (& (* (Base.b (op px)) ∩ * (Base.b (oq qx))))) x
-        tp14 = subst (λ k → odef k x ) ? ⟪ Base.bx (op px) , Base.bx (oq qx) ⟫
+        tp14 = eq← *iso ⟪ Base.bx (op px) , Base.bx (oq qx) ⟫
         ul :  (p ∩ q) ⊆ L
-        ul = subst (λ k → k ⊆ L ) ? (λ {z} pq →  (Base.u⊆L (op px)) (pz pq) )  where
+        ul = λ pq →  (Base.u⊆L (op px)) (pz (eq← *iso pq)) where
             pz : {z : Ordinal } → odef (* (& (p ∩ q))) z → odef (* (& p)) z
-            pz {z} pq = subst (λ k → odef k z ) ? ( proj1 (subst (λ k → odef k _ ) ? pq ) )
+            pz {z} pq = eq← *iso ( proj1 (eq→ *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) ? 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) ? tp04
-    --      ; sb = sb ; b⊆u = subst ( λ k → * b ⊆ k ) ? tp06  ; bx = bx } where
-    --   tp05 :  Union q ⊆ L
-    --   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
-    --   tp06 : * b ⊆ Union q
-    --   tp06 {z} bz = record { owner = y ; ao = qy ; ox = b⊆u bz  }
+    tp02 {q} q⊆O {x} ux with eq→ *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 = λ lt → tp04 (eq→ *iso lt)
+         ; sb = sb ; b⊆u = λ lt → eq← *iso (tp06 lt)  ; bx = bx } where
+      tp05 :  Union q ⊆ L
+      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
+      tp06 : * b ⊆ Union q
+      tp06 {z} bz = record { owner = y ; ao = qy ; ox = b⊆u bz  }
 
 -- Product Topology
 
@@ -341,7 +351,7 @@
    fip00 {X} xo xcp = fin-e 
 ... | tri> ¬a ¬b 0<L = record { finCover = finCover ; isCover = isCover1 ; isFinite = isFinite } where
    -- set of coset of X
-   open BAlgebra O HODAxiom ho< L  ?
+   open BAlgebra O HODAxiom ho< L  (LDec L)
    CX : {X : Ordinal} → * X ⊆ OS top → Ordinal
    CX {X} ox = & ( Replace (* X) (λ z → L \  z ) RC\ )
    CCX : {X : Ordinal} → (os :  * X ⊆ OS top) → * (CX os) ⊆ CS top
@@ -481,7 +491,7 @@
    ... | tri> ¬a ¬b c = ⊥-elim ( ¬x<0 c )
 ... | tri> ¬a ¬b 0<L = record { limit = limit ; is-limit = fip00 } where
    -- set of coset of X
-   open BAlgebra O HODAxiom ho< L ?
+   open BAlgebra O HODAxiom ho< L (LDec L)
    OX : {X : Ordinal} → * X ⊆ CS top → Ordinal
    OX {X} ox = & ( Replace (* X) (λ z → L \  z ) RC\)
    OOX : {X : Ordinal} → (cs :  * X ⊆ CS top) → * (OX cs) ⊆ OS top
@@ -691,9 +701,14 @@
 
 CAP : (P : HOD) {p q : HOD } → Power P ∋ p → Power P ∋ q → Power P ∋ (p ∩ q)
 CAP P {p} {q} Pp Pq x pqx with subst (λ k → odef k x ) ? pqx
-... | ⟪ px , qx ⟫ = Pp _ (subst (λ k → odef k x) ? px )
+... | t = ?
+-- ... | ⟪ px , qx ⟫ = Pp _ (subst (λ k → odef k x) ? px )
 
 NEG : (P : HOD) {p : HOD } → Power P ∋ p → Power P ∋ (P \ p )
 NEG P {p} Pp x vx with subst (λ k → odef k x) ? vx
-... | ⟪ Px , npx ⟫ = Px
+... | t = ?
+-- ... | ⟪ Px , npx ⟫ = Px
 
+
+
+