changeset 1174:375615f9d60f

Func and Funcs
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 18 Feb 2023 11:51:22 +0900
parents 4b2f49a5a1d5
children 7d2bae0ff36b
files src/PFOD.agda src/Tychonoff.agda src/cardinal.agda src/generic-filter.agda src/logic.agda
diffstat 5 files changed, 72 insertions(+), 20 deletions(-) [+]
line wrap: on
line diff
--- a/src/PFOD.agda	Mon Jan 23 10:20:55 2023 +0900
+++ b/src/PFOD.agda	Sat Feb 18 11:51:22 2023 +0900
@@ -144,17 +144,6 @@
         le03 :  x ≡ & (nat→ω (ω→nato wx))
         le03 = subst₂ (λ j k → j ≡ k ) &iso refl (cong (&) (sym ( nat→ω-iso wx ) ) )
 
-¬i0≡i1 : ¬ ( i0 ≡ i1 )
-¬i0≡i1 ()
-
-¬i0→i1 : {x : Two} → ¬ (x ≡ i0 ) → x ≡ i1 
-¬i0→i1 {i0} ne = ⊥-elim ( ne refl )
-¬i0→i1 {i1} ne = refl
-
-¬i1→i0 : {x : Two} → ¬ (x ≡ i1 ) → x ≡ i0 
-¬i1→i0 {i0} ne = refl
-¬i1→i0 {i1} ne = ⊥-elim ( ne refl )
-
 fω→2-iso : (f : Nat → Two) → ω2→f ( fω→2 f ) (ω2∋f f) ≡ f
 fω→2-iso f = f-extensionality (λ x → le01 x ) where
     le01 : (x : Nat) → ω2→f (fω→2 f) (ω2∋f f) x ≡ f x
--- a/src/Tychonoff.agda	Mon Jan 23 10:20:55 2023 +0900
+++ b/src/Tychonoff.agda	Sat Feb 18 11:51:22 2023 +0900
@@ -79,6 +79,9 @@
      N∋nc = ?
      0<PP : o∅ o< & (Power P)
      0<PP = ?
+     --
+     -- FIP defines a filter
+     --
      F : {X : Ordinal} → (CSX : * X ⊆ CS TP) → (fp : fip CSX) → Filter {Power P} {P} (λ x → x)
      F {X} CSX fp = record { filter = N CSX fp ; f⊆L = N⊆PP CSX fp ; filter1 = f1 ; filter2 = f2 } where
          f1 :  {p q : HOD} → Power P ∋ q → N CSX fp ∋ p → p ⊆ q → N CSX fp ∋ q
@@ -102,19 +105,31 @@
               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)) ⟫ )
+     --
+     -- it contains no empty sets
+     -- 
      proper : {X : Ordinal} → (CSX : * X ⊆ CS TP) → (fp : fip {X} CSX) → ¬ (N CSX fp ∋ od∅)
      proper = ?
+     --
+     -- then we have maximum ultra filter 
+     --
      maxf : {X : Ordinal} → (CSX : * X ⊆ CS TP) → (fp : fip {X} CSX) → MaximumFilter (λ x → x) (F CSX fp)
      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)
      mf : {X : Ordinal} → (CSX : * X ⊆ CS TP) → (fp : fip {X} CSX) → Filter {Power P} {P} (λ x → x)
      mf {X} CSX fp =  MaximumFilter.mf (maxf CSX fp) 
      ultraf : {X : Ordinal} → (CSX : * X ⊆ CS TP) → (fp : fip {X} CSX) → ultra-filter ( mf CSX fp)
      ultraf {X} CSX fp = F→ultra {Power P} {P} (λ x → x) (CAP P) (F CSX fp)  0<PP (N∋nc CSX fp) (proper CSX fp)
+     --
+     -- so i has a limit as a limit of UIP
+     --
      limit : {X : Ordinal} → (CSX : * X ⊆ CS TP) → fip {X} CSX → Ordinal
      limit {X} CSX fp = UFLP.limit ( uflp ( mf CSX fp ) (ultraf CSX fp))
      uf02 : {X v  : Ordinal} → (CSX : * X ⊆ CS TP) → (fp : fip {X} CSX) 
         → Neighbor TP (limit CSX fp) v → * v ⊆  filter ( mf CSX fp )  
      uf02 {X} {v} CSX fp nei {x} vx = UFLP.is-limit ( uflp  ( mf CSX fp ) (ultraf CSX fp)) nei vx
+     --
+     -- the limit is an element of entire elements of X
+     --
      uf01 :  {X : Ordinal} (CSX : * X ⊆ CS TP) (fp : fip {X} CSX) {x : Ordinal} → odef (* X) x → odef (* x) (limit CSX fp)
      uf01 {X} CSX fp {x} xx with ODC.∋-p O (* x) (* (limit CSX fp))
      ... | yes y = subst (λ k → odef (* x) k) &iso y
@@ -136,16 +151,28 @@
 FIP→UFLP : {P : HOD} (TP : Topology P) →  FIP TP
    →  (F : Filter {Power P} {P} (λ x → x)) (UF : ultra-filter F ) → UFLP {P} TP F UF
 FIP→UFLP {P} TP fip F UF = record { limit = FIP.limit fip (subst (λ k → k ⊆ CS TP) (sym *iso) CF⊆CS) ufl01 ; P∋limit = ? ; is-limit = ufl00 } where
+     --
+     -- take closure of given filter elements
+     --
      CF : HOD
      CF = Replace' (filter F) (λ x fx → Cl TP x  )
      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)) 
+     --
+     -- it is set of closed set and has FIP ( F is proper )
+     --
      ufl01 : {C x : Ordinal} → * C ⊆ * (& CF) → Subbase (* C) x → o∅ o< x
      ufl01 = ?
+     --
+     -- so we have a limit
+     --
      limit : Ordinal
      limit = FIP.limit fip (subst (λ k → k ⊆ CS TP) (sym *iso) CF⊆CS) ufl01  
      ufl02 : {y : Ordinal } → odef (* (& CF)) y → odef (* y) limit
      ufl02 = FIP.is-limit fip (subst (λ k → k ⊆ CS TP) (sym *iso) CF⊆CS) ufl01  
+     --
+     -- Neigbor of limit ⊆ Filter
+     --
      ufl03 : {f v : Ordinal } → odef (filter F) f → Neighbor TP limit v → ¬ ( * f ∩ * v ) =h= od∅  -- because limit is in CF which is a closure
      ufl03 {f} {v} ff nei fv=0 = ?
      pp :  {v x : Ordinal} → Neighbor TP limit v → odef (* v) x → Power P ∋ (* x)
@@ -211,7 +238,7 @@
                  nei1 : HOD
                  nei1 = Proj1 (* (Neighbor.u npq)) (Power P) (Power Q)
                  plimit : Ordinal
-                 plimit = UFLP.limit uflp ? 
+                 plimit = UFLP.limit uflp 
                  nproper : {b : Ordinal } →  * b ⊆ nei1 → o∅ o< b
                  nproper = ?
                  b∋z : odef nei1 z
--- a/src/cardinal.agda	Mon Jan 23 10:20:55 2023 +0900
+++ b/src/cardinal.agda	Sat Feb 18 11:51:22 2023 +0900
@@ -45,14 +45,28 @@
 -- _⊗_ : (A B : HOD) → HOD
 -- A ⊗ B  = Union ( Replace B (λ b → Replace A (λ a → < a , b > ) ))
 
-Func :  OD
-Func = record { def = λ x → def ZFPair x
-    ∧ ( (a b c : Ordinal) → odef (* x) (& < * a , * b >) ∧ odef (* x) (& < * a , * c >) →  b ≡  c ) }
+record Func (A B : HOD) : Set n where
+    field
+       func : Ordinal → Ordinal
+       is-func : {x : Ordinal } → odef A x → odef B (func x)
+
+data FuncHOD (A B : HOD) : (x : Ordinal) →  Set n where
+     felm :  (F : Func A B) → FuncHOD A B (& ( Replace A ( λ x → < x , (* (Func.func F (& x))) > )))
+
+FuncHOD→F : {A B : HOD} {x : Ordinal} → FuncHOD A B x → Func A B
+FuncHOD→F {A} {B} (felm F) = F
 
-FuncP :  ( A B : HOD ) → HOD
-FuncP A B = record { od = record { def = λ x → odef (ZFP A B) x
-    ∧ ( (x : Ordinal ) (p q : odef (ZFP A B ) x ) → pi1 ? ≡ pi1 ? → pi2 ? ≡ pi2 ? ) }
-       ; odmax = odmax (ZFP A B) ; <odmax = λ lt → <odmax (ZFP A B) (proj1 lt) }
+FuncHOD=R : {A B : HOD} {x : Ordinal} → (fc : FuncHOD A B x) → (* x) ≡  Replace A ( λ x → < x , (* (Func.func (FuncHOD→F fc) (& x))) > )
+FuncHOD=R {A} {B}  (felm F) = *iso
+
+Funcs : (A B : HOD) → HOD
+Funcs A B = record { od = record { def = λ x → FuncHOD A B x } ; odmax = osuc (& (A ⊗ B)) 
+       ; <odmax = λ {y} px → subst ( λ k → k o≤ (& (A ⊗ B)) ) &iso (⊆→o≤ (lemma1 px)) } where
+    lemma1 : {y : Ordinal } → FuncHOD A B y → {x : Ordinal} → odef (* y) x → odef (A ⊗ B) x
+    lemma1 {y} (felm F) {x} yx with subst (λ k → odef k x) *iso yx
+    ... | record { z = z ; az = az ; x=ψz = x=ψz } = subst (λ k → odef (A ⊗ B) k ) (sym x=ψz) (
+       product→ (subst (λ k → odef A k) (sym &iso) az) (subst (λ k → odef B k) 
+         (trans (cong (Func.func F) (sym &iso)) (sym &iso)) (Func.is-func F az) ))
 
 record Injection (A B : Ordinal ) : Set n where
    field
--- a/src/generic-filter.agda	Mon Jan 23 10:20:55 2023 +0900
+++ b/src/generic-filter.agda	Sat Feb 18 11:51:22 2023 +0900
@@ -61,7 +61,8 @@
        ctl<M : (x : Nat) → odef (ctl-M) (ctl→ x) 
        ctl← : (x : Ordinal )→  odef (ctl-M ) x → Nat
        ctl-iso→ : { x : Ordinal } → (lt : odef (ctl-M) x )  → ctl→ (ctl← x lt ) ≡ x 
-       ctl-iso← : { x : Nat }  →  ctl← (ctl→ x ) (ctl<M x)  ≡ x
+       -- we have no otherway round
+       -- ctl-iso← : { x : Nat }  →  ctl← (ctl→ x ) (ctl<M x)  ≡ x
 --
 -- almmost universe
 -- find-p contains ∃ x : Ordinal → x o< & M → ∀ r ∈ M → ∈ Ord x
@@ -241,6 +242,14 @@
     D = ?
 
 --
+-- P-Generic Filter defines a countable model D ⊂ C from P
+--
+
+--
+-- in D, we have V ≠ L
+--
+
+--
 --   val x G = { val y G | ∃ p → G ∋ p → x ∋ < y , p > }
 --
 
--- a/src/logic.agda	Mon Jan 23 10:20:55 2023 +0900
+++ b/src/logic.agda	Sat Feb 18 11:51:22 2023 +0900
@@ -50,6 +50,19 @@
 dont-orb {A} {B} (case2 b) ¬B = ⊥-elim ( ¬B b )
 dont-orb {A} {B} (case1 a) ¬B = a
 
+open import Relation.Binary.PropositionalEquality
+
+¬i0≡i1 : ¬ ( i0 ≡ i1 )
+¬i0≡i1 ()
+
+¬i0→i1 : {x : Two} → ¬ (x ≡ i0 ) → x ≡ i1 
+¬i0→i1 {i0} ne = ⊥-elim ( ne refl )
+¬i0→i1 {i1} ne = refl
+
+¬i1→i0 : {x : Two} → ¬ (x ≡ i1 ) → x ≡ i0 
+¬i1→i0 {i0} ne = refl
+¬i1→i0 {i1} ne = ⊥-elim ( ne refl )
+
 
 infixr  130 _∧_
 infixr  140 _∨_