changeset 1252:c99c37121d47

generic filter done
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Wed, 15 Mar 2023 22:26:00 +0900
parents a6416ea475bf
children 507f443c97ce
files src/generic-filter.agda
diffstat 1 files changed, 20 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/src/generic-filter.agda	Wed Mar 15 21:44:42 2023 +0900
+++ b/src/generic-filter.agda	Wed Mar 15 22:26:00 2023 +0900
@@ -182,7 +182,7 @@
     rgen = Replace (Filter.filter genf) (λ x → P \ x )
     field
        generic : (D : Dense {L} {P} LP ) → M ∋ Dense.dense D → ¬ ( (Dense.dense D ∩ Replace (Filter.filter genf) (λ x → P \ x )) ≡ od∅ )
-       gfilter1 : {p q : HOD} → rgen ∋ p → q ⊆ p  → rgen ∋ q
+       gfilter1 : {p q : HOD} → rgen ∋ p → q ⊆ p  → L ∋ ( P \ q) → rgen ∋ q
        gfilter2 : {p q : HOD} → (rgen ∋ p ) ∧ (rgen ∋ q) → rgen ∋ (p ∪ q)
 
 P-GenericFilter : (P L p0 : HOD ) → (LP : L ⊆ Power P) → L ∋ p0
@@ -358,9 +358,9 @@
     gpx→⊆P {p} record { z = z ; az = az ; x=ψz = x=ψz } {x} px with subst (λ k → odef k x ) 
        (trans (cong (*) x=ψz) *iso) px
     ... | ⟪ Px , npz ⟫ = Px
-    L∋gpr : {p : HOD } → GPR ∋ p → L ∋ (P \ p)
+    L∋gpr : {p : HOD } → GPR ∋ p → (L ∋ p) ∧ ( L ∋ (P \ p))
     L∋gpr {p} record { z = zp ; az = record { z = z ; az = az ; x=ψz = x=ψzp } ; x=ψz = x=ψz } 
-      = NEG (subst (λ k → odef L k) fd40 (PDN.x∈PP az)) where
+      = ⟪ subst (λ k → odef L k) fd40 (PDN.x∈PP az) , NEG (subst (λ k → odef L k) fd40 (PDN.x∈PP az)) ⟫ where
         fd41 : * z ⊆ P
         fd41 {x} lt = L⊆PP ( PDN.x∈PP az ) _ lt
         fd40 : z ≡ & p
@@ -380,8 +380,9 @@
            & (* zp) ≡⟨ cong (&) (sym (L\Lx=x (gpx→⊆P azp) )) ⟩
            & (P \ (P \ (* zp) )) ≡⟨ cong (λ k → & ( P \ k)) (subst₂ (λ j k → j ≡ k ) *iso *iso (cong (*) (sym x=ψzp)))  ⟩
            & (P \ p) ∎ ) azp
-    gfilter1 : {p q : HOD} → GPR ∋ p → q ⊆ p → GPR ∋ q
-    gfilter1 {p} {q} record { z = np ; az = record { z = z ; az = pdz ; x=ψz = x=ψznp } ; x=ψz = x=ψz } q⊆p = record { z = _ ; az = gf30 ; x=ψz = ? } where
+    gfilter1 : {p q : HOD} → GPR ∋ p → q ⊆ p → L ∋  ( P \ q) → GPR ∋ q
+    gfilter1 {p} {q} record { z = np ; az = record { z = z ; az = pdz ; x=ψz = x=ψznp } ; x=ψz = x=ψz } q⊆p Lpq 
+      = record { z = _ ; az = gf30 ; x=ψz = cong (&) fd42 } where
         gp =  record { z = np ; az = record { z = z ; az = pdz ; x=ψz = x=ψznp } ; x=ψz = x=ψz } 
         open ≡-Reasoning
         fd41 : * z ⊆ P
@@ -396,16 +397,27 @@
            & p ∎ ))) 
         q⊆P : q ⊆ P
         q⊆P {x} lt = L⊆PP ( PDN.x∈PP pdz ) _ (subst (λ k → odef k x) p=*z (q⊆p lt))
+        fd42 : q ≡  P \ * (& (P \ q))
+        fd42 = trans (sym (L\Lx=x  q⊆P )) (cong (λ k → P \ k) (sym *iso) )
         gf32 : (P \ p) ⊆ (P \ q)
         gf32 = proj1 (\-⊆ {P} {q} {p} q⊆P ) q⊆p 
         gf30 : GP ∋ (P \ q )
-        gf30 = f1 ? (gpr→gp gp) gf32
+        gf30 = f1 Lpq (gpr→gp gp) gf32
     gfilter2 : {p q : HOD} → (GPR ∋ p) ∧ (GPR ∋ q) → Replace GP (_\_ P) ∋ (p ∪ q)
     gfilter2 {p} {q} ⟪ gp , gq ⟫ 
-       = record { z = _ ; az = gf31 ; x=ψz = cong (&) ?  } where
+       = record { z = _ ; az = gf31 ; x=ψz = cong (&) gf32  } where
         open ≡-Reasoning
         gf31 : GP ∋ ( (P \ p ) ∩ (P \ q ) )
-        gf31 = f2 (gpr→gp gp) (gpr→gp gq) (CAP (L∋gpr gp) (L∋gpr gq)  ) 
+        gf31 = f2 (gpr→gp gp) (gpr→gp gq) (CAP (proj2 (L∋gpr gp)) (proj2 (L∋gpr gq))  ) 
+        gf33 : (p ∪ q) ⊆ P
+        gf33 {x} (case1 px) = L⊆PP (proj1 (L∋gpr gp)) _ (subst (λ k → odef k x) (sym *iso) px )
+        gf33 {x} (case2 qx) = L⊆PP (proj1 (L∋gpr gq)) _ (subst (λ k → odef k x) (sym *iso) qx )
+        gf32 :  (p ∪ q) ≡ (P \ * (& ((P \ p) ∩ (P \ q))))
+        gf32 = begin
+          p ∪ q ≡⟨ sym ( L\Lx=x gf33 ) ⟩ 
+          P \ (P \ (p ∪ q)) ≡⟨ cong (λ k → P \ k) (sym (gf02 {P} {p}{q} ) ) ⟩ 
+          P \ ((P \ p) ∩ (P \ q)) ≡⟨ cong (λ k → P \ k) (sym *iso) ⟩ 
+          P \ * (& ((P \ p) ∩ (P \ q))) ∎
 
 open GenericFilter
 open Filter