changeset 1260:8a8052df5254

generic filter modification
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 18 Mar 2023 11:30:42 +0900
parents 4993a95d3fc8
children 2fccbe475cf7
files src/filter.agda src/generic-filter.agda
diffstat 2 files changed, 61 insertions(+), 54 deletions(-) [+]
line wrap: on
line diff
--- a/src/filter.agda	Fri Mar 17 11:33:20 2023 +0900
+++ b/src/filter.agda	Sat Mar 18 11:30:42 2023 +0900
@@ -160,6 +160,7 @@
 
 open Ideal
 
+
 proper-ideal : {L P : HOD} → (LP : L ⊆ Power P) → (P : Ideal {L} {P} LP ) → {p : HOD} → Set n
 proper-ideal {L} {P} LP I = ideal I ∋ od∅
 
--- a/src/generic-filter.agda	Fri Mar 17 11:33:20 2023 +0900
+++ b/src/generic-filter.agda	Sat Mar 18 11:30:42 2023 +0900
@@ -3,7 +3,7 @@
 open import Ordinals
 module generic-filter {n : Level.Level } (O : Ordinals {n})   where
 
-import filter
+-- import filter
 open import zf
 open import logic
 -- open import partfunc {n} O
@@ -35,7 +35,7 @@
 
 import ODC
 
-open filter O
+-- open filter O
 
 open _∧_
 open _∨_
@@ -150,27 +150,41 @@
 ... | tri≈ ¬a refl ¬c = λ x → x
 ... | tri> ¬a ¬b c = ⊥-elim ( nat-≤> n≤m c )
 
-record Expansion  (L : HOD) {p : HOD } (dense : HOD) (Lp : L ∋ p) : Set (Level.suc n) where
+record Expansion  (p : HOD) (dense : HOD)  : Set (Level.suc n) where
    field
        exp : HOD
        D∋exp : dense ∋ exp 
        p⊆exp : p ⊆ exp 
 
-record Dense  {L P : HOD } (LP : L ⊆ Power P)  : Set (Level.suc n) where
+record Dense  (L : HOD ) : Set (Level.suc n) where
    field
        dense : HOD
        d⊆P :  dense ⊆ L
-       has-exp : {p : HOD} → (Lp : L ∋ p) → Expansion L dense Lp
+       has-exp : {p : HOD} → (Lp : L ∋ p) → Expansion p dense 
+
+record Exp2 (I : HOD)  ( p q : HOD ) : Set (Level.suc n) where
+   field 
+       exp : HOD
+       I∋exp : I ∋ exp 
+       p⊆exp : p ⊆ exp 
+       q⊆exp : q ⊆ exp 
+
+record ⊆-Ideal {L P : HOD } (LP : L ⊆ Power P) : Set (Level.suc n) where
+   field
+       ideal : HOD   
+       i⊆L :  ideal ⊆ L 
+       ideal1 : { p q : HOD } →  L ∋ q  → ideal ∋ p →  q ⊆ p  → ideal ∋ q
+       exp : { p q : HOD } → ideal ∋ p → ideal ∋ q → Exp2 ideal p q
 
 record GenericFilter {L P : HOD} (LP : L ⊆ Power P) (M : HOD) : Set (Level.suc n) where
     field
-       genf : Ideal {L} {P} LP
-       generic : (D : Dense {L} {P} LP ) → M ∋ Dense.dense D → ¬ ( (Dense.dense D ∩ Ideal.ideal genf ) ≡ od∅ )
+       genf : ⊆-Ideal {L} {P} LP
+       generic : (D : Dense L ) → M ∋ Dense.dense D → ¬ ( (Dense.dense D ∩ ⊆-Ideal.ideal genf ) ≡ od∅ )
 
 P-GenericFilter : (P L p0 : HOD ) → (LP : L ⊆ Power P) → L ∋ p0
       → (C : CountableModel ) → GenericFilter {L} {P} LP ( ctl-M C )
 P-GenericFilter P L p0 L⊆PP Lp0 C = record {
-      genf = record { ideal = PDHOD L p0 C ; i⊆L = x∈PP ; ideal1 = ideal1 ; ideal2 =  ideal2 }
+      genf = record { ideal = PDHOD L p0 C ; i⊆L = x∈PP ; ideal1 = ideal1 ; exp = λ ip iq → exp1 ip iq }
     ; generic = fdense
    } where
        ideal1 : {p q : HOD} → L ∋ q → PDHOD L p0 C ∋ p → q ⊆ p → PDHOD L p0 C ∋ q
@@ -178,41 +192,37 @@
                  record { gr = gr ; pn<gr = λ y qy → pn<gr y (gf00 qy) ; x∈PP = Lq }  where
             gf00 : {y : Ordinal } →  odef (* (& q)) y → odef (* (& p)) y  
             gf00 {y} qy = subst (λ k → odef k y ) (sym *iso) (q⊆p (subst (λ k → odef k y) *iso qy ))
-       ideal2 : {p q : HOD} → PDHOD L p0 C ∋ p → PDHOD L p0 C ∋ q → L ∋ (p ∪ q) → PDHOD L p0 C ∋ (p ∪ q)
-       ideal2 {p} {q} record { gr = pgr ; pn<gr = ppn ; x∈PP = PPp } 
-                      record { gr = qgr ; pn<gr = qpn ; x∈PP = PPq } Lpq = gf01 where
+       Lfp : (i : ℕ ) →  odef L (find-p L C i (& p0))
+       Lfp zero = Lp0
+       Lfp (suc i) with is-o∅ ( & ( PGHOD i L C (find-p L C i (& p0))) )
+       ... | yes y  = Lfp i
+       ... | no not  = proj1 ( ODC.x∋minimal O ( PGHOD i L C (find-p L C i (& p0))) (λ eq → not (=od∅→≡o∅ eq))) 
+       exp1 : {p q : HOD} → (ip : PDHOD L p0 C ∋ p) → (ip : PDHOD L p0 C ∋ q) → Exp2 (PDHOD L p0 C) p q
+       exp1 {p} {q} record { gr = pgr ; pn<gr = ppn ; x∈PP = PPp } 
+                      record { gr = qgr ; pn<gr = qpn ; x∈PP = PPq } = gf01 where
             Pp = record { gr = pgr ; pn<gr = ppn ; x∈PP = PPp } 
             Pq = record { gr = qgr ; pn<gr = qpn ; x∈PP = PPq } 
-            gf01 : PDHOD L p0 C ∋ (p ∪ q)
+            gf17 : {q : HOD} → (Pq : PDHOD L p0 C ∋ q ) → PDHOD L p0 C ∋ * (find-p L C (gr Pq) (& p0))
+            gf17 {q} Pq = record { gr = PDN.gr Pq  ; pn<gr = λ y qq → subst (λ k → odef (* k) y) &iso qq  
+                 ; x∈PP = subst (λ k → odef L k ) (sym &iso) (Lfp (PDN.gr Pq))  } 
+            gf01 : Exp2 (PDHOD L p0 C) p q
             gf01 with <-cmp pgr qgr
-            ... | tri< a ¬b ¬c = record { gr = qgr ; pn<gr = gf03 ; x∈PP = Lpq } where
-               gf03 : (y : Ordinal) → odef (* (& (p ∪ q))) y → odef (* (find-p L C qgr (& p0))) y
-               gf03 y pqy = gf15 y pqy where
+            ... | tri< a ¬b ¬c = record { exp = * (find-p L C (gr Pq) (& p0))  ; I∋exp = gf17 Pq ; p⊆exp = λ px → gf15 _ px 
+                    ; q⊆exp = λ {x} qx → qpn _ (subst (λ k → odef k x) (sym *iso) qx)  } where
                  gf16 : gr Pp ≤ gr Pq
                  gf16 = <to≤ a
-                 gf15 :  (y : Ordinal) → odef (* (& (p ∪ q))) y → odef (* (find-p L C (gr Pq) (& p0))) y
-                 gf15 y gpqy with subst (λ k → odef k y ) *iso gpqy
-                 ... | case1 xpy = p-monotonic L p0 C gf16 (PDN.pn<gr Pp y (subst (λ k → odef k y) (sym *iso) xpy) )
-                 ... | case2 xqy = PDN.pn<gr Pq _ (subst (λ k → odef k y) (sym *iso) xqy)
-            ... | tri≈ ¬a refl ¬c = record { gr = qgr ; pn<gr = gf03 ; x∈PP = Lpq } where
-               gf03 : (y : Ordinal) → odef (* (& (p ∪ q))) y → odef (* (find-p L C qgr (& p0))) y
-               gf03 y pqy = gf15 y pqy where
-                 gf16 : gr Pp ≤ gr Pq
-                 gf16 = ≤-refl
-                 gf15 :  (y : Ordinal) → odef (* (& (p ∪ q))) y → odef (* (find-p L C (gr Pq) (& p0))) y
-                 gf15 y gpqy with subst (λ k → odef k y ) *iso gpqy
-                 ... | case1 xpy = p-monotonic L p0 C gf16 (PDN.pn<gr Pp y (subst (λ k → odef k y) (sym *iso) xpy) )
-                 ... | case2 xqy = PDN.pn<gr Pq _ (subst (λ k → odef k y) (sym *iso) xqy)
-            ... | tri> ¬a ¬b c = record { gr = pgr ; pn<gr = gf03 ; x∈PP = Lpq } where
-               gf03 : (y : Ordinal) → odef (* (& (p ∪ q))) y → odef (* (find-p L C pgr (& p0))) y
-               gf03 y ppy = gf15 y ppy where
+                 gf15 :  (y : Ordinal) → odef p y → odef (* (find-p L C (gr Pq) (& p0))) y
+                 gf15 y xpy = p-monotonic L p0 C gf16 (PDN.pn<gr Pp y (subst (λ k → odef k y) (sym *iso) xpy) )
+            ... | tri≈ ¬a refl ¬c = record { exp = * (find-p L C (gr Pq) (& p0))  ; I∋exp = gf17 Pq
+                    ; p⊆exp = λ {x} px → ppn _ (subst (λ k → odef k x) (sym *iso) px)   
+                    ; q⊆exp = λ {x} qx → qpn _ (subst (λ k → odef k x) (sym *iso) qx)  } 
+            ... | tri> ¬a ¬b c = record { exp = * (find-p L C (gr Pp) (& p0))  ; I∋exp = gf17 Pp ; q⊆exp = λ qx → gf15 _ qx 
+                    ; p⊆exp = λ {x} px → ppn _ (subst (λ k → odef k x) (sym *iso) px)  } where
                  gf16 : gr Pq ≤ gr Pp
                  gf16 = <to≤ c
-                 gf15 :  (y : Ordinal) → odef (* (& (p ∪ q))) y → odef (* (find-p L C (gr Pp) (& p0))) y
-                 gf15 y gppy with subst (λ k → odef k y ) *iso gppy
-                 ... | case2 xqy = p-monotonic L p0 C gf16 (PDN.pn<gr Pq y (subst (λ k → odef k y) (sym *iso) xqy) )
-                 ... | case1 xpy = PDN.pn<gr Pp _ (subst (λ k → odef k y) (sym *iso) xpy)
-       fdense : (D : Dense {L} {P} L⊆PP ) → (ctl-M C ) ∋ Dense.dense D  → ¬ (Dense.dense D ∩ (PDHOD L p0 C)) ≡ od∅
+                 gf15 :  (y : Ordinal) → odef q y → odef (* (find-p L C (gr Pp) (& p0))) y
+                 gf15 y xqy = p-monotonic L p0 C gf16 (PDN.pn<gr Pq y (subst (λ k → odef k y) (sym *iso) xqy) )
+       fdense : (D : Dense L ) → (ctl-M C ) ∋ Dense.dense D  → ¬ (Dense.dense D ∩ (PDHOD L p0 C)) ≡ od∅
        fdense D MD eq0  = ⊥-elim (  ∅< {Dense.dense D ∩ PDHOD L p0 C} fd01 (≡od∅→=od∅ eq0 )) where
            open Dense
            open Expansion
@@ -264,7 +274,7 @@
            fd01 = ⟪ subst (λ k → odef (dense D)  k ) (sym &iso) fd07 , subst (λ k → odef  (PDHOD L p0 C) k) (sym &iso) fd03 ⟫  
 
 open GenericFilter
-open Filter
+-- open Filter
 
 record NotCompatible  (L p : HOD ) (L∋a : L ∋ p ) : Set (Level.suc (Level.suc n)) where
    field
@@ -279,26 +289,26 @@
       → (C : CountableModel ) 
       → ctl-M C ∋ L
       → ( {p : HOD} → (Lp : L ∋ p ) → NotCompatible L p Lp )
-      →  ¬ ( ctl-M C ∋  Ideal.ideal (genf ( P-GenericFilter P L p0 LPP Lp0 C )))
+      →  ¬ ( ctl-M C ∋  ⊆-Ideal.ideal (genf ( P-GenericFilter P L p0 LPP Lp0 C )))
 lemma232 P L p0 LPP Lp0 C ML NC MF = ¬rgf∩D=0 record { eq→ = λ {x} rgf∩D → ⊥-elim( proj2 (proj1 rgf∩D) (proj2 rgf∩D)) 
         ; eq← = λ lt → ⊥-elim (¬x<0 lt) } where
     PG = P-GenericFilter P L p0 LPP Lp0 C 
     GF =  genf PG
-    rgf =  Ideal.ideal (genf PG)
+    rgf =  ⊆-Ideal.ideal (genf PG)
     M = ctl-M C
     D : HOD  
     D = L \ rgf
     M∋DM : M ∋ (D ∩ M )
     M∋DM = is-model C D ?
+    -- M∋G : M ∋ rgf
+    -- M∋G = MF
     M∋D : M ∋ D 
     M∋D = ?
-    M∋G : M ∋ rgf
-    M∋G = MF
     D⊆PP : D ⊆ Power P
     D⊆PP {x} ⟪ Lx , ngx ⟫  = LPP Lx 
-    DD : Dense {L} {P} LPP
+    DD : Dense L 
     DD = record { dense = D ; d⊆P = proj1 ; has-exp = exp } where
-        exp : {p : HOD} → (Lp : L ∋ p) → Expansion L D Lp
+        exp : {p : HOD} → (Lp : L ∋ p) → Expansion p D 
         exp {p} Lp = exp1 where
             q : HOD
             q = NotCompatible.q (NC Lp)
@@ -308,20 +318,16 @@
             Lq = NotCompatible.Lq (NC Lp)
             Lr : L ∋ r
             Lr = NotCompatible.Lr (NC Lp)
-            exp1 : Expansion L D Lp
+            exp1 : Expansion p D 
             exp1  with ODC.p∨¬p O (rgf ∋ q)
             ... | case2 ngq = record { exp = q  ; D∋exp = ⟪ Lq , ngq ⟫ ; p⊆exp = NotCompatible.p⊆q (NC Lp)}  
             ... | case1 gq with ODC.p∨¬p O (rgf ∋ r)
             ... | case2 ngr = record { exp = r  ; D∋exp = ⟪ Lr , ngr ⟫ ; p⊆exp = NotCompatible.p⊆r (NC Lp)}  
-            ... | case1 gr = ⊥-elim ( ll02 ⟪ ? , ? ⟫ ) where
-                ll02 : ¬ ( (q ⊆ p) ∧ (r ⊆ p) )
-                ll02 = NotCompatible.¬compat (NC Lp) p ? 
-                ll05 : ¬ ( (q ⊆ (q ∪ r) ∧ (r ⊆ (q ∪ r)) ))
-                ll05 = NotCompatible.¬compat (NC Lp )  (q ∪ r) ?
-                ll03 : rgf ∋ p → rgf ∋ q → rgf ∋ (p ∪ q)
-                ll03 rp rq = Ideal.ideal2 GF rp rq ? -- ⟪ rp , rq ⟫ 
-                ll04 : rgf ∋ p → q ⊆ p → rgf ∋ q
-                ll04 rp q⊆p = Ideal.ideal1 GF Lq rp q⊆p 
+            ... | case1 gr = ⊥-elim ( NotCompatible.¬compat (NC Lp) ex2 Le ⟪  q⊆ex2 , r⊆ex2 ⟫ ) where
+                ex2 = Exp2.exp (⊆-Ideal.exp GF gq gr)
+                Le =  ⊆-Ideal.i⊆L GF (Exp2.I∋exp (⊆-Ideal.exp GF gq gr))
+                q⊆ex2 = Exp2.p⊆exp (⊆-Ideal.exp GF gq gr) 
+                r⊆ex2 = Exp2.q⊆exp (⊆-Ideal.exp GF gq gr) 
     ¬rgf∩D=0 : ¬ ( (D ∩ rgf ) =h= od∅ )
     ¬rgf∩D=0 eq =  generic PG DD M∋D (==→o≡ eq)
 
@@ -352,5 +358,5 @@
     →  HOD
 val x G = TransFinite {λ x → HOD } ind (& x) where
   ind : (x : Ordinal) → ((y : Ordinal) → y o< x → HOD) → HOD
-  ind x valy = record { od = record { def = λ y → valS x y (& (Ideal.ideal (genf G))) } ; odmax = {!!} ; <odmax = {!!} }
+  ind x valy = record { od = record { def = λ y → valS x y (& (⊆-Ideal.ideal (genf G))) } ; odmax = {!!} ; <odmax = {!!} }