changeset 1489:0dbbae768c90 default tip

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 01 Jul 2024 23:04:17 +0900
parents 33116eb3abd1
children
files src/Tychonoff.agda
diffstat 1 files changed, 23 insertions(+), 22 deletions(-) [+]
line wrap: on
line diff
--- a/src/Tychonoff.agda	Mon Jul 01 18:15:45 2024 +0900
+++ b/src/Tychonoff.agda	Mon Jul 01 23:04:17 2024 +0900
@@ -201,21 +201,21 @@
               xp∧xq = * (FBase.x Np) ∩ * (FBase.x Nq)
               sbpq : Subbase (* (& Np+Nq)) (& xp∧xq)
               sbpq = sb⊆ {Np+Nq} {* (& Np+Nq)} (eq← *iso) (  g∩ (sb⊆ case1 (FBase.sb Np)) (sb⊆ case2 (FBase.sb Nq)))
-              -- subst₂ (λ j k → Subbase j k ) (sym *iso) refl (  g∩ (sb⊆ case1 (FBase.sb Np)) (sb⊆ case2 (FBase.sb Nq)))
               f20 : * (& Np+Nq) ⊆ * X
               f20 {x} npq with eq→ *iso npq
               ... | case1 np = FBase.b⊆X Np np
               ... | case2 nq = FBase.b⊆X Nq nq
               f22 : * (& xp∧xq) ⊆ * (& (p ∩ q))
-              f22 = ? -- subst₂ ( λ j k → j ⊆ k ) (sym *iso) (sym *iso) (λ {w} xpq
-                 -- → ⟪ subst (λ k → odef k w) *iso ( FBase.x⊆u Np (proj1 xpq)) ,  subst (λ k → odef k w) *iso ( FBase.x⊆u Nq (proj2 xpq)) ⟫ )
+              f22 {x} xxpq = eq←  *iso ⟪  eq→ *iso ( FBase.x⊆u Np (proj1 xpq)) , eq→ *iso ( FBase.x⊆u Nq (proj2 xpq)) ⟫ where
+                    xpq :  odef (* (FBase.x Np) ∩ * (FBase.x Nq)) x
+                    xpq =  eq→ *iso xxpq
      --
      -- it contains no empty sets becase it is a finite intersection ( Subbase (* X) x )
      --
      proper : {X : Ordinal} → (CSX : * X ⊆ CS TP) → (fip : fip {X} CSX) → ¬ (N CSX fip ∋ od∅)
      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
           x≤0 : x o< osuc  o∅
-          x≤0 = ? -- subst₂ (λ j k → j o< osuc k) &iso (trans (cong (&) *iso) ord-od∅ ) (⊆→o≤ (x⊆u))
+          x≤0 = subst₂ (λ j k → j o< osuc k) &iso (trans (==→o≡ {* (& od∅)} {* o∅} (==-trans *iso (==-sym o∅==od∅)  )) &iso) (⊆→o≤ (x⊆u))
           fp00 : (b x : Ordinal) → * b ⊆ * X → Subbase (* b) x → Subbase (* X) x
           fp00 b y b<X (gi by ) = gi ( b<X by )
           fp00 b _ b<X (g∩ {y} {z} sy sz ) = g∩ (fp00 _ _ b<X sy) (fp00 _ _ b<X sz)
@@ -273,8 +273,8 @@
         uf10 = nlxy
         uf03 : Neighbor TP y (& (P \ * x ))
         uf03 = record { u = _ ; ou = P\CS=OS TP (CSX (subst (λ k → odef (* X) k ) (sym &iso) xx))
-           ; ux = ? -- subst (λ k → odef k y) (sym *iso) uf10
-           ; v⊆P = ? -- λ {z} xz → proj1 (subst(λ k → odef k z) *iso xz )
+           ; ux = eq← *iso uf10
+           ; v⊆P = λ {z} xz → proj1 (eq→ *iso xz )
            ; u⊆v = λ x → x  }
         uf07 : * (& (* x , * x)) ⊆ * X
         uf07 {y} lt with eq→ *iso lt
@@ -282,7 +282,7 @@
         ... | case2 refl = subst (λ k → odef (* X) k ) (sym &iso) xx
         uf05 : odef (filter (MaximumFilter.mf (maxf 0<X CSX fp))) x
         uf05 = MaximumFilter.F⊆mf (maxf 0<X CSX fp) record { b = & (* x , * x) ; b⊆X = uf07
-           ; sb = ? --- gi (subst (λ k → odef k x) (sym *iso) (case1 (sym &iso)) )  
+           ; sb = gi (eq← *iso (case1 (sym &iso)) )  
            ; u⊆P = x⊆P ; x⊆u = λ x → x  }
         -- if we postulate maximum filter, uf061 is an error
         -- uf061 : odef (filter (MaximumFilter.mf (maxf 0<X CSX fp))) (& (* (& (P \ * x ))))
@@ -293,7 +293,7 @@
         uf06 : odef (filter (MaximumFilter.mf (maxf 0<X CSX fp))) (& (P \ * x ))
         uf06 = subst (λ k → odef (filter (MaximumFilter.mf (maxf 0<X CSX fp))) k) &iso uf063
         uf13 : & ((* x) ∩ (P \ * x )) ≡ o∅
-        uf13 = subst₂ (λ j k → j ≡ k ) refl ord-od∅ (cong (&) ? ) where -- ( ==→o≡ record { eq→ = uf14 ; eq← = λ {x} lt → ⊥-elim (¬x<0 lt) }  ) ) where
+        uf13 = subst₂ (λ j k → j ≡ k ) refl ord-od∅ ( ==→o≡ record { eq→ = uf14 ; eq← = λ {x} lt → ⊥-elim (¬x<0 lt) }  ) where
            uf14 : {y : Ordinal} → odef (* x ∩ (P \ * x)) y → odef od∅ y
            uf14 {y} ⟪ xy , ⟪ Px , ¬xy ⟫ ⟫ = ⊥-elim ( ¬xy xy )
         uf12 : odef (Power P) (& ((* x) ∩ (P \ * x )))
@@ -333,8 +333,11 @@
      --
      -- take closure of given filter elements
      --
+     Cl-cong : {x y : HOD} → od x == od y → Cl TP x =h= Cl TP y
+     eq→ (Cl-cong {x} {y} x=y) ⟪ Pz , cl ⟫ = ⟪ Pz , (λ c csc y⊆c → cl c csc (λ lt → y⊆c (eq→ x=y lt)) ) ⟫
+     eq← (Cl-cong {x} {y} x=y) ⟪ Pz , cl ⟫ = ⟪ Pz , (λ c csc x⊆c → cl c csc (λ lt → x⊆c (eq← x=y lt)) ) ⟫
      CF : HOD
-     CF = Replace (filter F) (λ x → Cl TP x  ) {P} record { ≤COD = λ {z} {y} lt → proj1 lt  } 
+     CF = Replace (filter F) (λ x → Cl TP x  ) {P} record { ≤COD = λ {z} {y} lt → proj1 lt ; ψ-eq = λ {x} {y} x=y → Cl-cong {x} {y} x=y } 
      CF⊆CS : CF ⊆ CS TP
      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))
      --
@@ -352,8 +355,7 @@
         ufl07 : odef (filter F) x
         ufl07 = subst (λ k → odef (filter F) k) &iso ( filter1 F (subst (λ k → odef (Power P) k) (trans (sym x=ψz) (sym &iso))  ufl08  )
             (subst (λ k → odef (filter F) k) (sym &iso) az)
-            (subst (λ k → * z ⊆ k ) ? -- (trans (sym *iso) (sym (cong (*) x=ψz)) ) 
-               (x⊆Clx TP {* z} ufl09 ) ))
+            (λ xz → eq→ (==-sym (==-trans (o≡→== x=ψz) *iso )) (x⊆Clx TP {* z} ufl09 xz )))
      F∋sb  (g∩ {x} {y} sx sy) = filter2 F (subst (λ k → odef (filter F) k) (sym &iso) (F∋sb sx))
         (subst (λ k → odef (filter F) k) (sym &iso) (F∋sb sy))
             (λ z xz → fx→px (F∋sb sx) _ (eq← *iso (proj1 (eq→ *iso xz) )))
@@ -366,21 +368,20 @@
            begin
            x  ≡⟨ sym b ⟩
            o∅ ≡⟨ sym ord-od∅ ⟩
-           & od∅  ∎ ) ? -- (F∋sb (subst (λ k → Subbase k x) *iso sb ))
+           & od∅  ∎ ) (F∋sb  (sb⊆ (eq→ *iso) sb ))   -- (F∋sb (subst (λ k → Subbase k x) *iso sb ))
               ))  where open ≡-Reasoning
         ... | tri> ¬a ¬b c = ⊥-elim (¬x<0 c)
-     ufl10 : odef P (FIP.limit fip (subst (λ k → k ⊆ CS TP) ? CF⊆CS) ufl01)
-     ufl10 = FIP.L∋limit fip (subst (λ k → k ⊆ CS TP) ? CF⊆CS) ufl01 {& P} ufl11  where
+     ufl10 : odef P (FIP.limit fip (λ lt → CF⊆CS (eq→ *iso lt) ) ufl01)
+     ufl10 = FIP.L∋limit fip (λ lt → CF⊆CS (eq→ *iso lt)) ufl01 {& P} ufl11  where
          ufl11 : odef (* (& CF)) (& P)
-         ufl11 = eq← *iso record { z = _ ; az  = F∋P ; x=ψz = sym (cong (&) (trans (cong (Cl TP) ? ) ? -- (ClL TP)
-            ))   }
+         ufl11 = eq← *iso record { z = _ ; az  = F∋P ; x=ψz = sym (==→o≡ (==-trans (Cl-cong {* (& P)} {P} *iso) (ClL TP) )) }
      --
      -- so we have a limit
      --
      limit : Ordinal
-     limit = FIP.limit fip (subst (λ k → k ⊆ CS TP) ? CF⊆CS) ufl01
+     limit = FIP.limit fip (λ lt →  CF⊆CS (eq→ *iso lt )) ufl01
      ufl02 : {y : Ordinal } → odef (* (& CF)) y → odef (* y) limit
-     ufl02 = FIP.is-limit fip (subst (λ k → k ⊆ CS TP) ? CF⊆CS) ufl01
+     ufl02 = FIP.is-limit fip (λ lt → CF⊆CS (eq→ *iso lt)) ufl01
      --
      -- Neigbor of limit ⊆ Filter
      --
@@ -396,7 +397,7 @@
      ufl00 :  {v : Ordinal} → Neighbor TP limit v → filter F ∋ * v
      ufl00 {v} nei with ultra-filter.ultra UF (pp nei ) (NEG P (pp nei ))
      ... | case1 fu = subst (λ k → odef (filter F) k) &iso
-       ( filter1 F (subst (λ k → odef (Power P) k ) (sym &iso) px)  fu (subst (λ k → u ⊆ k ) ? (Neighbor.u⊆v nei))) where
+       ( filter1 F (subst (λ k → odef (Power P) k ) (sym &iso) px)  fu (λ lt → eq← *iso (Neighbor.u⊆v nei lt))) where
          u = * (Neighbor.u nei)
          px : Power P ∋ * v
          px z vz = Neighbor.v⊆P nei (eq→ *iso vz )
@@ -405,10 +406,10 @@
          P\u : HOD
          P\u = P \ u
          P\u∋limit : odef P\u limit
-         P\u∋limit = eq→ *iso ( ufl02 (subst (λ k → odef k (& P\u)) ? ufl03 )) where
+         P\u∋limit = eq→ *iso ( ufl02 (eq← *iso ufl03 )) where
              ufl04 : & P\u ≡ & (Cl TP (* (& P\u)))
-             ufl04 = cong (&) (sym (trans (cong (Cl TP) ? ) ? ))
-                -- (CS∋x→Clx=x TP (P\OS=CS TP (subst (λ k → odef (OS TP) k) (sym &iso) (Neighbor.ou nei) )))))
+             ufl04 = ==→o≡ ( ==-sym ( ==-trans (Cl-cong {* (& P\u)} {P\u} *iso )
+                (CS∋x→Clx=x TP (P\OS=CS TP (subst (λ k → odef (OS TP) k) (sym &iso) (Neighbor.ou nei) ))) ))
              ufl03 : odef CF (& P\u )
              ufl03 = record { z = _ ; az = nfu ; x=ψz = ufl04 }
          ¬P\u∋limit : ¬ odef P\u limit