changeset 434:5f22af3562b7

generic filter
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Fri, 18 Feb 2022 11:44:08 +0900
parents e787d37d27a0
children b18ca68d115a
files src/generic-filter.agda src/partfunc.agda
diffstat 2 files changed, 47 insertions(+), 40 deletions(-) [+]
line wrap: on
line diff
--- a/src/generic-filter.agda	Sat Sep 04 01:43:27 2021 +0900
+++ b/src/generic-filter.agda	Fri Feb 18 11:44:08 2022 +0900
@@ -54,31 +54,22 @@
 import OPair
 open OPair O
 
-record CountableOrdinal : Set (suc (suc n)) where
-   field
-       ctl→ : Nat → Ordinal
-       ctl← : Ordinal → Nat
-       ctl-iso→ : { x : Ordinal } → ctl→ (ctl← x ) ≡ x 
-       ctl-iso← : { x : Nat }  → ctl← (ctl→ x ) ≡ x
-
-record CountableHOD : Set (suc (suc n)) where
+record CountableModel : Set (suc (suc n)) where
    field
-       mhod : HOD
-       mtl→ : Nat → Ordinal
-       mtl→∈P : (i : Nat) → odef mhod (mtl→ i)
-       mtl← : (x : Ordinal) → odef mhod x → Nat
-       mtl-iso→ : { x : Ordinal } → (lt : odef mhod x ) → mtl→ (mtl← x lt ) ≡ x 
-       mtl-iso← : { x : Nat }  → mtl← (mtl→ x ) (mtl→∈P x) ≡ x
-   
-       
-open CountableOrdinal 
-open CountableHOD
+       ctl-M : Ordinal
+       ctl→ : Nat → Ordinal
+       ctl← : (x : Ordinal )→  x o< ctl-M → Nat
+       is-Model : (x : Nat) → ctl→ x o< ctl-M
+       ctl-iso→ : { x : Ordinal } → (lt : x o< ctl-M)  → ctl→ (ctl← x lt ) ≡ x 
+       ctl-iso← : { x : Nat }  →  ctl← (ctl→ x ) (is-Model x)  ≡ x
+
+open CountableModel 
 
 ----
 --   a(n) ∈ M
 --   ∃ q ∈ Power P → q ∈ a(n) ∧ p(n) ⊆ q    
 --
-PGHOD :  (i : Nat) → (C : CountableOrdinal) → (P : HOD) → (p : Ordinal) → HOD
+PGHOD :  (i : Nat) → (C : CountableModel) → (P : HOD) → (p : Ordinal) → HOD
 PGHOD i C P p = record { od = record { def = λ x  →
        odef (Power P) x ∧ odef (* (ctl→ C i)) x  ∧  ( (y : Ordinal ) → odef (* p) y →  odef (* x) y ) }
    ; odmax = odmax (Power P)  ; <odmax = λ {y} lt → <odmax (Power P) (proj1 lt) }  
@@ -92,16 +83,16 @@
 next-p p f | no not = & (ODC.minimal O (f (* p) ) (λ eq → not (=od∅→≡o∅ eq)))  -- axiom of choice
 
 ---
---  ascendant search on p(n)
+--  search on p(n)
 --
-find-p :  (C : CountableOrdinal) (P : HOD ) (i : Nat) → (x : Ordinal) → Ordinal
+find-p :  (C : CountableModel) (P : HOD ) (i : Nat) → (x : Ordinal) → Ordinal
 find-p C P Zero x = x
 find-p C P (Suc i) x = find-p C P i ( next-p x (λ p → PGHOD i C P (& p) ))
 
 ---
 -- G = { r ∈ Power P | ∃ n → r ⊆ p(n) }
 --
-record PDN  (C : CountableOrdinal) (P : HOD ) (x : Ordinal) : Set n where
+record PDN  (C : CountableModel) (P : HOD ) (x : Ordinal) : Set n where
    field
        gr : Nat
        pn<gr : (y : Ordinal) → odef (* x) y → odef (* (find-p C P gr o∅)) y
@@ -112,7 +103,7 @@
 ---
 -- G as a HOD
 --
-PDHOD :  (C : CountableOrdinal) → (P : HOD ) → HOD
+PDHOD :  (C : CountableModel) → (P : HOD ) → HOD
 PDHOD C P = record { od = record { def = λ x →  PDN C P x }
     ; odmax = odmax (Power P) ; <odmax = λ {y} lt → <odmax (Power P) {y} (PDN.x∈PP lt)  } 
 
@@ -122,7 +113,7 @@
 --  Generic Filter on Power P for HOD's Countable Ordinal (G ⊆ Power P ≡ G i.e. Nat → P → Set )
 --
 --  p 0 ≡ ∅
---  p (suc n) = if ∃ q ∈ * ( ctl→ n ) ∧ p n ⊆ q → q  (axiom of choice)
+--  p (suc n) = if ∃ q ∈ M ∧ p n ⊆ q → q  (by axiom of choice) ( q =  * ( ctl→ n ) )
 ---             else p n
 
 P∅ : {P : HOD} → odef (Power P) o∅
@@ -134,18 +125,33 @@
 
 open _⊆_
 
-P-GenericFilter : (C : CountableOrdinal) → (P : HOD ) → GenericFilter P
+P-GenericFilter : (C : CountableModel) → (P : HOD ) → GenericFilter P
 P-GenericFilter C P = record {
-      genf = record { filter = PDHOD C P ; f⊆PL =  f⊆PL ; filter1 = {!!} ; filter2 = {!!} }
+      genf = record { filter = PDHOD C P ; f⊆PL =  f⊆PL ; filter1 = f1 ; filter2 = f2 }
     ; generic = λ D → {!!}
    } where
-        find-p-⊆P : (C : CountableOrdinal) (P : HOD ) (i : Nat) → (x y : Ordinal)  → odef (Power P) x → odef (* (find-p C P i x)) y → odef P y 
-        find-p-⊆P C P Zero x y Px Py = subst (λ k → odef P k ) &iso
+        PGHOD∈PL :  (i : Nat) → (x : Ordinal) →  PGHOD i C P x ⊆ Power P
+        PGHOD∈PL i x = record { incl = λ {x} p → proj1 p }
+        find-p-⊆P :  (i : Nat) → (x y : Ordinal)  → odef (Power P) x → odef (* (find-p C P i x)) y → odef P y 
+        find-p-⊆P Zero x y Px Py = subst (λ k → odef P k ) &iso
             ( incl (ODC.power→⊆ O P (* x) (d→∋ (Power P)  Px)) (x<y→∋ Py))
-        find-p-⊆P C P (Suc i) x y Px Py = find-p-⊆P C P i (next-p x (λ p → PGHOD i C P (& p)))   y {!!} {!!}
+        find-p-⊆P (Suc i) x y Px Py with is-o∅  ( & (PGHOD i C P (& (* x))))
+        ... | yes y1 = find-p-⊆P i x y Px Py
+        ... | no not = find-p-⊆P i (& fmin) y pg-01 Py where
+            fmin : HOD
+            fmin = ODC.minimal O (PGHOD i C P (& (* x))) (λ eq → not (=od∅→≡o∅ eq))
+            fmin∈PGHOD : PGHOD i C P (& (* x)) ∋ fmin
+            fmin∈PGHOD = ODC.x∋minimal O (PGHOD i C P (& (* x))) (λ eq → not (=od∅→≡o∅ eq))
+            pg-01 : Power P ∋ fmin 
+            pg-01 = incl (PGHOD∈PL i x ) (subst (λ k → PGHOD i C P k ∋ fmin ) &iso  fmin∈PGHOD )
         f⊆PL :  PDHOD C P ⊆ Power P
         f⊆PL = record { incl = λ {x} lt → power← P x (λ {y} y<x →
-             find-p-⊆P C P (gr lt) o∅ (& y) P∅ (pn<gr lt (& y) (subst (λ k → odef k (& y)) (sym *iso) y<x))) }
+             find-p-⊆P (gr lt) o∅ (& y) P∅ (pn<gr lt (& y) (subst (λ k → odef k (& y)) (sym *iso) y<x))) }
+        f1 : {p q : HOD} → q ⊆ P → PDHOD C P ∋ p → p ⊆ q → PDHOD C P ∋ q
+        f1 {p} {q}  q⊆P PD∋p p⊆q = {!!}
+        f2 : {p q : HOD} → PDHOD C P ∋ p → PDHOD C P ∋ q → PDHOD C P ∋ (p ∩ q)
+        f2 {p} {q} PD∋p PD∋q = {!!}
+
 
 
 open GenericFilter
@@ -153,13 +159,14 @@
 
 record Incompatible  (P : HOD ) : Set (suc (suc n)) where
    field
-      except : HOD → ( HOD ∧ HOD )
-      incompatible : { p : HOD } →  Power P ∋ p  →  Power P ∋ proj1 (except p )  →  Power P ∋ proj2 (except p ) 
-          → ( p ⊆ proj1 (except p)  ) ∧ ( p ⊆ proj2 (except p)  )
-          → ∀ ( r : HOD ) →  Power P ∋ r → ¬ (( proj1 (except p)  ⊆ r ) ∧ ( proj2 (except p)  ⊆ r ))
+      q : {p : HOD } → Power P ∋ p → HOD 
+      r : {p : HOD } → Power P ∋ p → HOD 
+      incompatible : { p : HOD } →  (P∋p : Power P ∋ p)  →  Power P ∋ q P∋p  →  Power P ∋ r P∋p
+          → ( p ⊆ q P∋p)   ∧ ( p ⊆ r P∋p)  
+          → ∀ ( s : HOD ) →  Power P ∋ s → ¬ (( q P∋p  ⊆ s  ) ∧ ( r P∋p  ⊆ s ))
 
-lemma725 : (M : CountableHOD ) (C : CountableOrdinal) (P : HOD ) →  mhod M ∋ Power P
-    →  Incompatible P → ¬ ( mhod M ∋ filter ( genf ( P-GenericFilter C P )))
+lemma725 : (C : CountableModel) (P : HOD ) 
+    →  Incompatible P → ¬ ( * (ctl-M C) ∋ filter ( genf ( P-GenericFilter C P )))
 lemma725 = {!!}
 
 open import PFOD O
@@ -172,7 +179,7 @@
 lemma725-1 :   Incompatible HODω2
 lemma725-1 = {!!}
 
-lemma726 :  (C : CountableOrdinal) (P : HOD ) 
+lemma726 :  (C : CountableModel) (P : HOD ) 
     →  Union ( filter ( genf ( P-GenericFilter C HODω2 ))) =h= ω→2
 lemma726 = {!!}
 
--- a/src/partfunc.agda	Sat Sep 04 01:43:27 2021 +0900
+++ b/src/partfunc.agda	Fri Feb 18 11:44:08 2022 +0900
@@ -2,8 +2,8 @@
 open import Level
 open import Relation.Nullary 
 open import Relation.Binary.PropositionalEquality
-open import Ordinals
-module partfunc {n : Level } (O : Ordinals {n})  where
+-- open import Ordinals
+module partfunc {n : Level } where -- (O : Ordinals {n})  where
 
 open import logic
 open import Relation.Binary 
@@ -13,7 +13,7 @@
 open import Relation.Binary
 open import Relation.Binary.Core
 open import Data.Nat renaming ( zero to Zero ; suc to Suc ;  ℕ to Nat ; _⊔_ to _n⊔_ ) 
-open import filter O
+-- open import filter O
 
 open _∧_
 open _∨_