changeset 1129:5053fd12134a

use different filter
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 10 Jan 2023 18:12:05 +0900
parents 7d4966f2f74d
children 4a4ac5141b95
files src/filter.agda
diffstat 1 files changed, 13 insertions(+), 105 deletions(-) [+]
line wrap: on
line diff
--- a/src/filter.agda	Tue Jan 10 17:16:16 2023 +0900
+++ b/src/filter.agda	Tue Jan 10 18:12:05 2023 +0900
@@ -181,7 +181,7 @@
     field 
        y : Ordinal 
        mfy : odef (filter (MaximumFilter.mf mx)) y
-       x=y∪p : x ≡ & ( * y ∪ * p )
+       y-p⊂x : ( * y \ * p ) ⊂ * x
 
 max→ultra : {L P : HOD} (LP : L ⊆ Power P) 
        → ({p q : HOD} → L ∋ p → L ∋ q → L ∋ (p \ q)) 
@@ -191,115 +191,23 @@
 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
+    ultra {p} Lp lnp with ODC.∋-p O (filter mf) p 
     ... | yes y = case1 y
-    ... | no np with ∋-p (filter mf) (P \ p) 
-    ... | yes y = case2 y
-    ... | no n-p = ⊥-elim (MaximumFilter.is-maximum mx FisFilter FisProper  ⟪ F< , FisGreater ⟫  ) where
-         F⊆L : {x : Ordinal } →  Fp {L} {P} LP mx (& p) x ∨ odef (filter mf) x → odef L x
-         F⊆L (case2 mfx) = f⊆L mf mfx
-         F⊆L {x} (case1 pmf) = mu04 pmf where
-             mu05 : (fp : Fp LP mx (& p) x ) → odef L (Fp.y fp )
-             mu05 fp = f⊆L mf ( Fp.mfy fp )
-             mu04 :  Fp LP mx (& p) x → odef L x
-             mu04 fp = subst (λ k → odef L k ) (sym (trans (Fp.x=y∪p fp ) mu06  )) 
-              ( CUP (subst (λ k → odef L k ) (sym &iso) (mu05 fp)) Lp ) where
-                 mu06 :  & (* (Fp.y fp) ∪ * (& p)) ≡ & (* (Fp.y fp) ∪ p) 
-                 mu06 = cong (λ k → & (* (Fp.y fp) ∪ k))  *iso
-         F : HOD  -- Replace (filter mf) (λ y → y ∪ p ) ∪ filter mf
-         F = record { od = record { def = λ x →  Fp {L} {P} LP mx (& p) x ∨ odef (filter mf) x  } 
-            ; odmax = & L ; <odmax = λ lt → odef< (F⊆L lt) } 
+    ... | no np = ? where
+         F : HOD  
+         F = record { od = record { def = λ x →  odef L x ∧ Fp {L} {P} LP mx (& p) x } 
+            ; odmax = & L ; <odmax = λ lt → odef< (proj1 lt) } 
          mu01 :  {r : HOD} {q : HOD} → L ∋ q → F ∋ r → r ⊆ q → F ∋ q
-         mu01 {r} {q} Lq (case1 record { y = y ; mfy = mfy ; x=y∪p = x=y∪p }) r⊆q = mu03 where
-             y+q-r : HOD
-             y+q-r = * y ∪ ( q \ r )
-             Ly : L ∋ * y
-             Ly = subst (λ k → odef L k) (sym &iso) (f⊆L mf mfy)
-             mu08 : L ∋ y+q-r
-             mu08 = CUP Ly (NEG Lq (subst (λ k → odef L k) 
-               (trans (cong (λ k → & (* y ∪ k)) (sym *iso)) (sym x=y∪p) ) (CUP Ly Lp )) ) 
-             mu09 : * y ⊆ y+q-r
-             mu09 {x} yx = case1 yx
-             mu07 : filter mf  ∋ y+q-r
-             mu07 = filter1 mf {_} {y+q-r} mu08 (subst (λ k → odef (filter mf) k) (sym &iso) mfy) mu09
-             mu03 : odef F (& q) -- y+q-r + p  ≡ y+q-(y+p)+ p = q  so it is in F
-             mu03 = case1 record { y = _  ; mfy = mu07 ; x=y∪p = cong (&) (==→o≡ record { eq→ = mu10 ; eq← = mu11 } ) } where
-                mu12 : r ≡ (* y ∪ p)
-                mu12 = subst₂ (λ j k → j ≡ k ) *iso (trans *iso (cong (λ k → (* y ∪ k)) *iso)) (cong (*) x=y∪p )
-                mu10 : {x : Ordinal} → odef q x → odef (* (& y+q-r) ∪ * (& p)) x
-                mu10 {x} qx with ODC.∋-p O r (* x)
-                ... | no nrx = case1 (subst (λ k → odef k x) (sym *iso) mu13) where
-                      mu13 : odef (* y ∪ (q \ r)) x 
-                      mu13 = case2 ⟪ qx , (λ rx → nrx (subst (λ k → odef r k ) (sym &iso) rx))  ⟫ 
-                ... | yes rx with subst₂ (λ j k → odef j k ) mu12 (sym &iso) rx
-                ... | case1 yx = case1 (subst (λ k → odef k x) (sym *iso) (case1 (subst (λ k → odef (* y) k) (trans &iso &iso) yx) ) )
-                ... | case2 px = case2 (subst₂ (λ j k → odef j k ) (sym *iso) (trans &iso &iso) px )
-                mu11 : {x : Ordinal} → odef (* (& y+q-r) ∪ * (& p)) x → odef q x
-                mu11 {x} (case2 px) = r⊆q (subst (λ k → odef k x) (sym mu12) (case2 (subst (λ k → odef k x) *iso px) )) 
-                mu11 {x} (case1 m06x) with subst (λ k → odef k x) *iso m06x
-                ... | case1 yx = r⊆q (subst (λ k → odef k x) (sym mu12) (case1 yx))
-                ... | case2 q-rx = proj1 q-rx
-         mu01 {r} {q} Lq (case2 mfr) r⊆q = case2 ( filter1 mf Lq mfr r⊆q)  
+         mu01 {r} {q} Lq ⟪ Lr , record { y = y ; mfy = mfy ; y-p⊂x = y-p⊂x } ⟫ r⊆q = ⟪ Lq , record { y = y ; mfy = mfy ; y-p⊂x = ? } ⟫ 
          mu02 : {r : HOD} {q : HOD} → F ∋ r → F ∋ q → L ∋ (r ∩ q) → F ∋ (r ∩ q)
-         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 = case2 mu24 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) )
-              mu26 : (p ∩ q) =h= od∅
-              mu26 = record { eq→ = λ lt → ⊥-elim ( mu29 lt)  ; eq← = λ lt → ⊥-elim ( ¬x<0 lt  ) } where
-                  q-p : HOD
-                  q-p = q \ p
-                  [q-p]⊆q : ?
-                  [q-p]⊆q = ?
-                  mu30 : odef (filter mf ) (& ( q ∩ ( q \ p )))
-                  mu30 = filter2 mf ? ? ?
-                  mu31 : odef (filter mf ) (& p )
-                  mu31 = filter1 mf ? ? ?
-                  mu29 : {x : Ordinal} → ¬ ( odef (p ∩ q) x )
-                  mu29 {x} pqx = ?
-              mu25 : od (r ∩ q) == od (* (& (* ry ∩ q)))
-              mu25 = subst (λ k → od (k ∩ q)== od (* (& (* ry ∩ q)) )) (sym mu21) record { eq→ = mu27 ; eq← = mu28 } where
-                  mu27 : {x : Ordinal} → odef (* ry ∪ p) x ∧ odef q x → odef (* (& (* ry ∩ q))) x 
-                  mu27 {x} ⟪ case1 ryx , qx ⟫ = subst (λ k → odef k x) (sym *iso) ⟪ ryx , qx ⟫ 
-                  mu27 {x} ⟪ case2 px , qx ⟫ = ?
-                  mu28 : {x : Ordinal} → odef (* (& (* ry ∩ q))) x → odef (* ry ∪ p) x ∧ odef q x
-                  mu28 {x} ryq = ?
-              mu24 :   odef (filter mf) (& (r ∩ q))
-              mu24 = ?                             
-         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 = case2 (filter2 mf mfr mfq Lrq )
+         mu02 {r} {q} ⟪ Lr , record { y = ry ; mfy = mfry ; y-p⊂x = ry-p⊂x } ⟫ 
+          ⟪ Lq , record { y = qy ; mfy = mfqy ; y-p⊂x = qy-p⊂x } ⟫  Lrq = ⟪ Lrq , record { y = & (* qy  ∩ * ry) ; mfy = ? ; y-p⊂x = ? } ⟫   
          FisFilter : Filter {L} {P} LP
-         FisFilter = record { filter = F ; f⊆L = F⊆L ; filter1 = mu01 ; filter2 = mu02 }
+         FisFilter = record { filter = F ; f⊆L = ? ; filter1 = mu01 ; filter2 = mu02 }
          FisGreater : {x : Ordinal } → odef (filter (MaximumFilter.mf mx))  x → odef (filter FisFilter ) x
-         FisGreater {x} mfx = case2 mfx
+         FisGreater {x} mfx = ⟪ f⊆L mf mfx , record { y = x ; mfy = mfx ; y-p⊂x = mu03 }  ⟫ where
+             mu03 : (* x \ * (& p)) ⊂ * x
+             mu03 =  ⟪ ? , ?  ⟫
          F< : & (filter (MaximumFilter.mf mx)) o< & F
          F< = ?
          FisProper : ¬ (filter FisFilter ∋ od∅)