changeset 1127:c4f4868a8cdd

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 10 Jan 2023 09:29:58 +0900
parents 3091ac71a999
children 7d4966f2f74d
files src/filter.agda
diffstat 1 files changed, 44 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/filter.agda	Tue Jan 10 03:00:04 2023 +0900
+++ b/src/filter.agda	Tue Jan 10 09:29:58 2023 +0900
@@ -185,9 +185,10 @@
 
 max→ultra : {L P : HOD} (LP : L ⊆ Power P) 
        → ({p q : HOD} → L ∋ p → L ∋ q → L ∋ (p \ q)) 
+       → ({p q : HOD} → L ∋ p → L ∋ q → L ∋ (p ∩ q))
        → ({p q : HOD} → L ∋ p → L ∋ q → L ∋ (p ∪ q))
        → (mx : MaximumFilter {L} {P} LP ) → ultra-filter ( MaximumFilter.mf mx )
-max→ultra {L} {P} LP NEG CUP mx = record { proper = MaximumFilter.proper mx ; ultra = ultra } where
+max→ultra {L} {P} LP NEG CAP CUP mx = record { proper = MaximumFilter.proper mx ; ultra = ultra } where
     mf = MaximumFilter.mf mx
     ultra : {p : HOD} → L ∋ p → L ∋ (P \ p) → (filter mf ∋ p) ∨ (filter mf ∋ (P \ p))
     ultra {p} Lp lnp with ∋-p (filter mf) p
@@ -240,10 +241,49 @@
                 ... | case2 q-rx = proj1 q-rx
          mu01 {r} {q} Lq (case2 mfr) r⊆q = case2 ( filter1 mf Lq mfr r⊆q)  
          mu02 : {r : HOD} {q : HOD} → F ∋ r → F ∋ q → L ∋ (r ∩ q) → F ∋ (r ∩ q)
-         mu02 {r} {q} (case1 record { y = y₁ ; mfy = mfy₁ ; x=y∪p = x=y∪p₁ }) (case1 record { y = y ; mfy = mfy ; x=y∪p = x=y∪p }) Lrq = ?
-         mu02 {r} {q} (case1 record { y = y ; mfy = mfy ; x=y∪p = x=y∪p }) (case2 mfq) Lrq = ?
+         mu02 {r} {q} (case1 record { y = ry ; mfy = mfry ; x=y∪p = x=ry∪p }) (case1 record { y = qy ; mfy = mfqy ; x=y∪p = x=qy∪p }) Lrq = mu20 where
+              mu21 : r ≡ * ry ∪ p
+              mu21 = subst₂ (λ j k → j ≡ k ) *iso (trans *iso (cong (λ k → (* ry ∪ k)) *iso)) (cong (*) x=ry∪p )
+              mu22 : q ≡ * qy ∪ p
+              mu22 = subst₂ (λ j k → j ≡ k ) *iso (trans *iso (cong (λ k → (* qy ∪ k)) *iso)) (cong (*) x=qy∪p )
+              mu23 : odef (filter mf) (& (* ry ∩ * qy))
+              mu23 = filter2 mf (subst (λ k → odef (filter mf) k) (sym &iso) mfry) (subst (λ k → odef (filter mf) k) (sym &iso) mfqy) 
+                (CAP (subst (λ k → odef L k ) (sym &iso) (f⊆L mf mfry)) (subst (λ k → odef L k ) (sym &iso) (f⊆L mf mfqy)))
+              mu25 : (r ∩ q) =h= ((* ry ∩ * qy) ∪ * (& p))
+              mu25 = record { eq→ = mu27 ; eq← = mu28 } where
+                 mu27 : {x : Ordinal } → odef (r ∩ q) x → odef ((* ry ∩ * qy) ∪ * (& p)) x
+                 mu27 {x} rqx with subst₂ (λ j k → odef ( j  ∩ k ) x ) mu21 mu22 rqx
+                 ... | ⟪ case1 ryx , case1 qyx ⟫ = case1 ⟪ ryx , qyx ⟫
+                 ... | ⟪ case1 ryx , case2 px ⟫ = case2 (subst (λ k → odef k x) (sym *iso) px)
+                 ... | ⟪ case2 px , case1 qyx ⟫ = case2 (subst (λ k → odef k x) (sym *iso) px)
+                 ... | ⟪ case2 px , case2 px₂ ⟫ = case2 (subst (λ k → odef k x) (sym *iso) px)
+                 mu28 : {x : Ordinal } → odef ((* ry ∩ * qy) ∪ * (& p)) x → odef (r ∩ q) x
+                 mu28 {x} (case1 ryqy) = subst₂ (λ j k → odef (j ∩ k ) x ) (sym mu21) (sym mu22) ⟪ case1 (proj1 ryqy) , case1 (proj2 ryqy) ⟫ 
+                 mu28 {x} (case2 px) = subst₂ (λ j k → odef (j ∩ k ) x ) (sym mu21) (sym mu22) 
+                    ⟪ case2 (subst (λ k → odef k x) *iso px) , case2 (subst (λ k → odef k x) *iso px) ⟫
+              mu26 : ((* ry ∩ * qy) ∪ * (& p)) ≡ (* (& (* ry ∩ * qy)) ∪ * (& p))
+              mu26 = cong (λ k → (k ∪ * (& p))) (sym *iso)
+              mu24 : & (r ∩ q) ≡ & (* (& (* ry ∩ * qy)) ∪ * (& p))
+              mu24 = subst (λ k → & (r ∩ q) ≡ k ) (cong (&) mu26) (cong (&) (==→o≡ mu25) ) 
+              mu20 : F ∋ (r ∩ q)
+              mu20 = case1 record { y = & ( * ry ∩ * qy ) ; mfy = mu23 ; x=y∪p = mu24 }
+         mu02 {r} {q} (case1 record { y = ry ; mfy = mfry ; x=y∪p = x=ry∪p }) (case2 mfq) Lrq = 
+           case1 record { y = & ( * ry ∩ q ) ; mfy = mu23 ; x=y∪p = cong (&) (==→o≡ mu25) } where
+              mu21 : r ≡ * ry ∪ p
+              mu21 = subst₂ (λ j k → j ≡ k ) *iso (trans *iso (cong (λ k → (* ry ∪ k)) *iso)) (cong (*) x=ry∪p )
+              mu23 : odef (filter mf) (& (* ry ∩ q))
+              mu23 = filter2 mf (subst (λ k → odef (filter mf) k) (sym &iso) mfry) mfq
+                (CAP (subst (λ k → odef L k ) (sym &iso) (f⊆L mf mfry)) (f⊆L mf mfq) )
+              mu25 : od (r ∩ q) == od (* (& (* ry ∩ q)) ∪ * (& p))
+              mu25 = subst (λ k → od (k ∩ q)== od (* (& (* ry ∩ q)) ∪ * (& p))) (sym mu21) record { eq→ = mu27 ; eq← = mu28 } where
+                  mu27 : {x : Ordinal} → odef (* ry ∪ p) x ∧ odef q x → odef (* (& (* ry ∩ q))) x ∨ odef (* (& p)) x
+                  mu27 {x} ⟪ case1 ryx , qx ⟫ = case1 (subst (λ k → odef k x) (sym *iso) ⟪ ryx , qx ⟫ )
+                  mu27 {x} ⟪ case2 px , qx ⟫ = case2 (subst (λ k → odef k x) (sym *iso) px )
+                  mu28 : {x : Ordinal} → odef (* (& (* ry ∩ q))) x ∨ odef (* (& p)) x → odef (* ry ∪ p) x ∧ odef q x
+                  mu28 {x} (case1 ryq) = ?
+                  mu28 {x} (case2 px) = ⟪  case2 (subst (λ k → odef k x) *iso px ) , ? ⟫
          mu02 {r} {q} (case2 mfr) (case1 record { y = y ; mfy = mfp ; x=y∪p = x=y∪p }) Lrq = ?
-         mu02 {r} {q} (case2 mfr) (case2 mfq ) Lrq = ?
+         mu02 {r} {q} (case2 mfr) (case2 mfq ) Lrq = case2 (filter2 mf mfr mfq Lrq )
          FisFilter : Filter {L} {P} LP
          FisFilter = record { filter = F ; f⊆L = F⊆L ; filter1 = mu01 ; filter2 = mu02 }
          FisGreater : {x : Ordinal } → odef (filter (MaximumFilter.mf mx))  x → odef (filter FisFilter ) x