view filter.agda @ 268:7b4a66710cdd

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 30 Sep 2019 21:22:07 +0900
parents e469de3ae7cc
children 30e419a2be24
line wrap: on
line source

open import Level
open import Ordinals
module filter {n : Level } (O : Ordinals {n})   where

open import zf
open import logic
import OD 

open import Relation.Nullary
open import Relation.Binary
open import Data.Empty
open import Relation.Binary
open import Relation.Binary.Core
open import  Relation.Binary.PropositionalEquality
open import Data.Nat renaming ( zero to Zero ; suc to Suc ;  ℕ to Nat ; _⊔_ to _n⊔_ ) 

open inOrdinal O
open OD O
open OD.OD

open _∧_
open _∨_
open Bool

_∩_ : ( A B : OD  ) → OD
A ∩ B = record { def = λ x → def A x ∧ def B x } 

_∪_ : ( A B : OD  ) → OD
A ∪ B = Union (A , B)    

record Filter  ( L : OD  ) : Set (suc n) where
   field
       F1 : { p q : OD } → L ∋ p →  ({ x : OD} → _⊆_ q p {x} ) → L ∋ q
       F2 : { p q : OD } → L ∋ p →  L ∋ q  → L ∋ (p ∩ q)

open Filter

proper-filter : {L : OD} → Filter L → Set n
proper-filter {L} P = ¬ ( L ∋ od∅ )

prime-filter : {L : OD} → Filter L → {p q : OD } → Set n
prime-filter {L} P {p} {q} =  L ∋ ( p ∪ q) → ( L ∋ p ) ∨ ( L ∋ q )

ultra-filter :  {L : OD} → Filter L → {p : OD } → Set n 
ultra-filter {L} P {p} = ( L ∋ p ) ∨ ( ¬ ( L ∋ p ))

postulate
   dist-ord : {p q r : OD } → p ∩ ( q ∪ r ) ≡   ( p ∩ q ) ∪ ( p ∩ r )

filter-lemma1 :  {L : OD} → (P : Filter L)  → {p q : OD } → ( (p : OD ) → ultra-filter {L} P {p} ) → prime-filter {L} P {p} {q}
filter-lemma1 {L} P {p} {q} u lt with u p | u q
filter-lemma1 {L} P {p} {q} u lt | case1 x | case1 y = case1 x
filter-lemma1 {L} P {p} {q} u lt | case1 x | case2 y = case1 x
filter-lemma1 {L} P {p} {q} u lt | case2 x | case1 y = case2 y
filter-lemma1 {L} P {p} {q} u lt | case2 x | case2 y = ⊥-elim (lemma (record { proj1 = x ; proj2 = y })) where
    lemma :  ¬ ( ¬ ( L ∋ p ) ) ∧ ( ¬ ( L ∋ q )) 
    lemma = {!!}

generated-filter : {L : OD} → Filter L → (p : OD ) → Filter ( record { def = λ x → def L x ∨ (x ≡ od→ord p) } )
generated-filter {L} P p = record {
     F1 = {!!} ; F2 = {!!}
   }

-- H(ω,2) = Power ( Power ω ) = Def ( Def ω))

infinite = ZF.infinite OD→ZF

Hω2 : Filter (Power (Power infinite))
Hω2 = record { F1 = {!!} ; F2 = {!!} }