annotate src/filter.agda @ 1096:55ab5de1ae02

recovery
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Fri, 23 Dec 2022 12:54:05 +0900
parents 9084a26445a7
children d122d0c1b094
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
457
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 456
diff changeset
1 {-# OPTIONS --allow-unsolved-metas #-}
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 456
diff changeset
2
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 open import Level
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 open import Ordinals
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 module filter {n : Level } (O : Ordinals {n}) where
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 open import zf
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 open import logic
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 import OD
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 open import Relation.Nullary
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 open import Data.Empty
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 open import Relation.Binary.Core
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 open import Relation.Binary.PropositionalEquality
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 import BAlgbra
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 open BAlgbra O
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 open inOrdinal O
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 open OD O
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 open OD.OD
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 open ODAxiom odAxiom
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 import OrdUtil
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 import ODUtil
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 open Ordinals.Ordinals O
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 open Ordinals.IsOrdinals isOrdinal
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 open Ordinals.IsNext isNext
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 open OrdUtil O
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 open ODUtil O
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
32
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 import ODC
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 open ODC O
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
35
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
36 open _∧_
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 open _∨_
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 open Bool
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
39
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 -- Kunen p.76 and p.53, we use ⊆
458
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 457
diff changeset
41 record Filter { L P : HOD } (LP : L ⊆ Power P) : Set (suc n) where
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 field
456
9207b0c3cfe9 fix filter on subset of Power P
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 455
diff changeset
43 filter : HOD
9207b0c3cfe9 fix filter on subset of Power P
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 455
diff changeset
44 f⊆L : filter ⊆ L
9207b0c3cfe9 fix filter on subset of Power P
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 455
diff changeset
45 filter1 : { p q : HOD } → L ∋ q → filter ∋ p → p ⊆ q → filter ∋ q
461
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 459
diff changeset
46 filter2 : { p q : HOD } → filter ∋ p → filter ∋ q → L ∋ (p ∩ q) → filter ∋ (p ∩ q)
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
47
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 open Filter
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
49
458
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 457
diff changeset
50 record prime-filter { L P : HOD } {LP : L ⊆ Power P} (F : Filter LP) : Set (suc (suc n)) where
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 field
456
9207b0c3cfe9 fix filter on subset of Power P
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 455
diff changeset
52 proper : ¬ (filter F ∋ od∅)
461
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 459
diff changeset
53 prime : {p q : HOD } → L ∋ p → L ∋ q → L ∋ (p ∪ q) → filter F ∋ (p ∪ q) → ( filter F ∋ p ) ∨ ( filter F ∋ q )
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
54
458
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 457
diff changeset
55 record ultra-filter { L P : HOD } {LP : L ⊆ Power P} (F : Filter LP) : Set (suc (suc n)) where
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
56 field
456
9207b0c3cfe9 fix filter on subset of Power P
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 455
diff changeset
57 proper : ¬ (filter F ∋ od∅)
461
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 459
diff changeset
58 ultra : {p : HOD } → L ∋ p → L ∋ ( P \ p) → ( filter F ∋ p ) ∨ ( filter F ∋ ( P \ p) )
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
59
458
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 457
diff changeset
60 ∈-filter : {L P p : HOD} → {LP : L ⊆ Power P} → (F : Filter LP ) → filter F ∋ p → L ∋ p
1096
55ab5de1ae02 recovery
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 574
diff changeset
61 ∈-filter {L} {p} {LP} F lt = ( f⊆L F) lt
458
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 457
diff changeset
62
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 457
diff changeset
63 ⊆-filter : {L P p q : HOD } → {LP : L ⊆ Power P } → (F : Filter LP) → L ∋ q → q ⊆ P
1096
55ab5de1ae02 recovery
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 574
diff changeset
64 ⊆-filter {L} {P} {p} {q} {LP} F lt = power→⊆ P q ( LP lt )
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
65
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
66 ∪-lemma1 : {L p q : HOD } → (p ∪ q) ⊆ L → p ⊆ L
1096
55ab5de1ae02 recovery
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 574
diff changeset
67 ∪-lemma1 {L} {p} {q} lt p∋x = lt (case1 p∋x)
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
68
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
69 ∪-lemma2 : {L p q : HOD } → (p ∪ q) ⊆ L → q ⊆ L
1096
55ab5de1ae02 recovery
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 574
diff changeset
70 ∪-lemma2 {L} {p} {q} lt p∋x = lt (case2 p∋x)
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
71
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
72 q∩q⊆q : {p q : HOD } → (q ∩ p) ⊆ q
1096
55ab5de1ae02 recovery
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 574
diff changeset
73 q∩q⊆q lt = proj1 lt
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
74
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
75 open HOD
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
76
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
77 -----
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
78 --
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
79 -- ultra filter is prime
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
80 --
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
81
461
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 459
diff changeset
82 filter-lemma1 : {P L : HOD} → (LP : L ⊆ Power P)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 459
diff changeset
83 → ({p : HOD} → L ∋ p → L ∋ (P \ p))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 459
diff changeset
84 → ({p q : HOD} → L ∋ p → L ∋ q → L ∋ (p ∩ q ))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 459
diff changeset
85 → (F : Filter LP) → ultra-filter F → prime-filter F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 459
diff changeset
86 filter-lemma1 {P} {L} LP NG IN F u = record {
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
87 proper = ultra-filter.proper u
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
88 ; prime = lemma3
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
89 } where
461
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 459
diff changeset
90 lemma3 : {p q : HOD} → L ∋ p → L ∋ q → L ∋ (p ∪ q) → filter F ∋ (p ∪ q) → ( filter F ∋ p ) ∨ ( filter F ∋ q )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 459
diff changeset
91 lemma3 {p} {q} Lp Lq _ lt with ultra-filter.ultra u Lp (NG Lp)
458
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 457
diff changeset
92 ... | case1 p∈P = case1 p∈P
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 457
diff changeset
93 ... | case2 ¬p∈P = case2 (filter1 F {q ∩ (P \ p)} Lq lemma7 lemma8) where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 457
diff changeset
94 lemma5 : ((p ∪ q ) ∩ (P \ p)) =h= (q ∩ (P \ p))
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
95 lemma5 = record { eq→ = λ {x} lt → ⟪ lemma4 x lt , proj2 lt ⟫
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
96 ; eq← = λ {x} lt → ⟪ case2 (proj1 lt) , proj2 lt ⟫
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
97 } where
458
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 457
diff changeset
98 lemma4 : (x : Ordinal ) → odef ((p ∪ q) ∩ (P \ p)) x → odef q x
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
99 lemma4 x lt with proj1 lt
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
100 lemma4 x lt | case1 px = ⊥-elim ( proj2 (proj2 lt) px )
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
101 lemma4 x lt | case2 qx = qx
461
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 459
diff changeset
102 lemma9 : L ∋ ((p ∪ q ) ∩ (P \ p))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 459
diff changeset
103 lemma9 = subst (λ k → L ∋ k ) (sym (==→o≡ lemma5)) (IN Lq (NG Lp))
456
9207b0c3cfe9 fix filter on subset of Power P
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 455
diff changeset
104 lemma6 : filter F ∋ ((p ∪ q ) ∩ (P \ p))
461
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 459
diff changeset
105 lemma6 = filter2 F lt ¬p∈P lemma9
458
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 457
diff changeset
106 lemma7 : filter F ∋ (q ∩ (P \ p))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 457
diff changeset
107 lemma7 = subst (λ k → filter F ∋ k ) (==→o≡ lemma5 ) lemma6
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 457
diff changeset
108 lemma8 : (q ∩ (P \ p)) ⊆ q
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
109 lemma8 = q∩q⊆q
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
110
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
111 -----
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
112 --
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
113 -- if Filter contains L, prime filter is ultra
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
114 --
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
115
461
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 459
diff changeset
116 filter-lemma2 : {P L : HOD} → (LP : L ⊆ Power P)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 459
diff changeset
117 → ({p : HOD} → L ∋ p → L ∋ ( P \ p))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 459
diff changeset
118 → (F : Filter LP) → filter F ∋ P → prime-filter F → ultra-filter F
459
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 458
diff changeset
119 filter-lemma2 {P} {L} LP Lm F f∋P prime = record {
458
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 457
diff changeset
120 proper = prime-filter.proper prime
1096
55ab5de1ae02 recovery
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 574
diff changeset
121 ; ultra = λ {p} L∋p _ → prime-filter.prime prime L∋p (Lm L∋p) (lemma10 L∋p ((f⊆L F) f∋P) ) (lemma p (p⊆L L∋p ))
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
122 } where
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
123 open _==_
459
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 458
diff changeset
124 p⊆L : {p : HOD} → L ∋ p → p ⊆ P
1096
55ab5de1ae02 recovery
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 574
diff changeset
125 p⊆L {p} lt = power→⊆ P p ( LP lt )
459
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 458
diff changeset
126 p+1-p=1 : {p : HOD} → p ⊆ P → P =h= (p ∪ (P \ p))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 458
diff changeset
127 eq→ (p+1-p=1 {p} p⊆P) {x} lt with ODC.decp O (odef p x)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 458
diff changeset
128 eq→ (p+1-p=1 {p} p⊆P) {x} lt | yes p∋x = case1 p∋x
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 458
diff changeset
129 eq→ (p+1-p=1 {p} p⊆P) {x} lt | no ¬p = case2 ⟪ lt , ¬p ⟫
1096
55ab5de1ae02 recovery
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 574
diff changeset
130 eq← (p+1-p=1 {p} p⊆P) {x} ( case1 p∋x ) = subst (λ k → odef P k ) &iso (p⊆P ( subst (λ k → odef p k) (sym &iso) p∋x ))
459
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 458
diff changeset
131 eq← (p+1-p=1 {p} p⊆P) {x} ( case2 ¬p ) = proj1 ¬p
458
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 457
diff changeset
132 lemma : (p : HOD) → p ⊆ P → filter F ∋ (p ∪ (P \ p))
459
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 458
diff changeset
133 lemma p p⊆P = subst (λ k → filter F ∋ k ) (==→o≡ (p+1-p=1 {p} p⊆P)) f∋P
461
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 459
diff changeset
134 lemma10 : {p : HOD} → L ∋ p → L ∋ P → L ∋ (p ∪ (P \ p))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 459
diff changeset
135 lemma10 {p} L∋p lt = subst (λ k → L ∋ k ) (==→o≡ (p+1-p=1 {p} (p⊆L L∋p))) lt
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
136
458
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 457
diff changeset
137 -----
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 457
diff changeset
138 --
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 457
diff changeset
139 -- if there is a filter , there is a ultra filter under the axiom of choise
461
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 459
diff changeset
140 -- Zorn Lemma
458
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 457
diff changeset
141
459
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 458
diff changeset
142 -- filter→ultra : {P L : HOD} → (LP : L ⊆ Power P) → ({p : HOD} → L ∋ p → L ∋ ( P \ p)) → (F : Filter LP) → ultra-filter F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 458
diff changeset
143 -- filter→ultra {P} {L} LP Lm F = {!!}
458
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 457
diff changeset
144
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 457
diff changeset
145 record Dense {L P : HOD } (LP : L ⊆ Power P) : Set (suc n) where
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
146 field
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
147 dense : HOD
456
9207b0c3cfe9 fix filter on subset of Power P
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 455
diff changeset
148 d⊆P : dense ⊆ L
9207b0c3cfe9 fix filter on subset of Power P
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 455
diff changeset
149 dense-f : {p : HOD} → L ∋ p → HOD
9207b0c3cfe9 fix filter on subset of Power P
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 455
diff changeset
150 dense-d : { p : HOD} → (lt : L ∋ p) → dense ∋ dense-f lt
9207b0c3cfe9 fix filter on subset of Power P
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 455
diff changeset
151 dense-p : { p : HOD} → (lt : L ∋ p) → (dense-f lt) ⊆ p
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
152
458
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 457
diff changeset
153 record Ideal {L P : HOD } (LP : L ⊆ Power P) : Set (suc n) where
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
154 field
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
155 ideal : HOD
456
9207b0c3cfe9 fix filter on subset of Power P
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 455
diff changeset
156 i⊆L : ideal ⊆ L
9207b0c3cfe9 fix filter on subset of Power P
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 455
diff changeset
157 ideal1 : { p q : HOD } → L ∋ q → ideal ∋ p → q ⊆ p → ideal ∋ q
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
158 ideal2 : { p q : HOD } → ideal ∋ p → ideal ∋ q → ideal ∋ (p ∪ q)
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
159
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
160 open Ideal
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
161
458
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 457
diff changeset
162 proper-ideal : {L P : HOD} → (LP : L ⊆ Power P) → (P : Ideal LP ) → {p : HOD} → Set n
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 457
diff changeset
163 proper-ideal {L} {P} LP I = ideal I ∋ od∅
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
164
458
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 457
diff changeset
165 prime-ideal : {L P : HOD} → (LP : L ⊆ Power P) → Ideal LP → ∀ {p q : HOD } → Set n
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 457
diff changeset
166 prime-ideal {L} {P} LP I {p} {q} = ideal I ∋ ( p ∩ q) → ( ideal I ∋ p ) ∨ ( ideal I ∋ q )
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
167
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
168
461
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 459
diff changeset
169 record GenericFilter {L P : HOD} (LP : L ⊆ Power P) (M : HOD) : Set (suc n) where
456
9207b0c3cfe9 fix filter on subset of Power P
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 455
diff changeset
170 field
458
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 457
diff changeset
171 genf : Filter LP
461
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 459
diff changeset
172 generic : (D : Dense LP ) → M ∋ Dense.dense D → ¬ ( (Dense.dense D ∩ Filter.filter genf ) ≡ od∅ )
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
173
478
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 461
diff changeset
174 record MaximumFilter {L P : HOD} (LP : L ⊆ Power P) : Set (suc n) where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 461
diff changeset
175 field
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 461
diff changeset
176 mf : Filter LP
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 461
diff changeset
177 proper : ¬ (filter mf ∋ od∅)
481
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 480
diff changeset
178 is-maximum : ( f : Filter LP ) → ¬ (filter f ∋ od∅) → ¬ filter mf ≡ filter f → ¬ ( filter mf ⊆ filter f )
478
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 461
diff changeset
179
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 461
diff changeset
180 max→ultra : {L P : HOD} (LP : L ⊆ Power P) → (mx : MaximumFilter LP ) → ultra-filter ( MaximumFilter.mf mx )
479
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 478
diff changeset
181 max→ultra {L} {P} LP mx = record { proper = MaximumFilter.proper mx ; ultra = ultra } where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 478
diff changeset
182 mf = MaximumFilter.mf mx
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 478
diff changeset
183 ultra : {p : HOD} → L ∋ p → L ∋ (P \ p) → (filter mf ∋ p) ∨ (filter mf ∋ (P \ p))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 478
diff changeset
184 ultra {p} lp lnp with ∋-p (filter mf) p
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 478
diff changeset
185 ... | yes y = case1 y
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 478
diff changeset
186 ... | no np with ∋-p (filter mf) (P \ p)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 478
diff changeset
187 ... | yes y = case2 y
1096
55ab5de1ae02 recovery
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 574
diff changeset
188 ... | no n-p = ⊥-elim (MaximumFilter.is-maximum mx FisFilter FisProper {!!} ? ) where
479
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 478
diff changeset
189 Y : (y : Ordinal) → (my : odef (filter mf) y ) → HOD
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 478
diff changeset
190 Y y my = record { od = record { def = λ x → (x ≡ y) ∨ (x ≡ & p) } ; odmax = & L ; <odmax = {!!} }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 478
diff changeset
191 F : HOD
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 478
diff changeset
192 F = record { od = record { def = λ x → (x ≡ & p) ∨ ((y : Ordinal) → (my : odef (filter mf) y ) → x ≡ & (Y y my) ) } ; odmax = & L ; <odmax = {!!} }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 478
diff changeset
193 FisFilter : Filter LP
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 478
diff changeset
194 FisFilter = record { filter = F ; f⊆L = {!!} ; filter1 = {!!} ; filter2 = {!!} }
480
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 479
diff changeset
195 FisGreater : {x : HOD} → filter (MaximumFilter.mf mx) ∋ x → filter FisFilter ∋ x
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 479
diff changeset
196 FisGreater = {!!}
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 479
diff changeset
197 FisProper : ¬ (filter FisFilter ∋ od∅)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 479
diff changeset
198 FisProper = {!!}
478
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 461
diff changeset
199
480
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 479
diff changeset
200 open _==_
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 479
diff changeset
201
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 479
diff changeset
202 open import Relation.Binary.Definitions
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 479
diff changeset
203
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 479
diff changeset
204 ultra→max : {L P : HOD} (LP : L ⊆ Power P) → ({p : HOD} → L ∋ p → L ∋ ( P \ p)) → ({p q : HOD} → L ∋ p → L ∋ q → L ∋ (p ∩ q))
481
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 480
diff changeset
205 → (U : Filter LP) → ultra-filter U → MaximumFilter LP
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 480
diff changeset
206 ultra→max {L} {P} LP NG CAP U u = record { mf = U ; proper = ultra-filter.proper u ; is-maximum = is-maximum } where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 480
diff changeset
207 is-maximum : (F : Filter LP) → (¬ (filter F ∋ od∅)) → ( U≠F : ¬ filter U ≡ filter F ) → (U⊆F : filter U ⊆ filter F ) → ⊥
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 480
diff changeset
208 is-maximum F Prop U≠F U⊆F = Prop f0 where
480
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 479
diff changeset
209 GT : HOD
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 479
diff changeset
210 GT = record { od = record { def = λ x → odef (filter F) x ∧ (¬ odef (filter U) x) } ; odmax = {!!} ; <odmax = {!!} }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 479
diff changeset
211 GT≠∅ : ¬ (GT =h= od∅)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 479
diff changeset
212 GT≠∅ eq = ⊥-elim (U≠F ( ==→o≡ (⊆→= U⊆F (U-F=∅→F⊆U gt01)))) where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 479
diff changeset
213 gt01 : (x : Ordinal) → ¬ odef (filter F) x ∧ (¬ odef (filter U) x)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 479
diff changeset
214 gt01 x not = ¬x<0 ( eq→ eq not )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 479
diff changeset
215 p : HOD
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 479
diff changeset
216 p = ODC.minimal O GT GT≠∅
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 479
diff changeset
217 ¬U∋p : ¬ ( filter U ∋ p )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 479
diff changeset
218 ¬U∋p = proj2 (ODC.x∋minimal O GT GT≠∅)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 479
diff changeset
219 U∋-p : filter U ∋ ( P \ p )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 479
diff changeset
220 U∋-p with ultra-filter.ultra u {p} {!!} {!!}
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 479
diff changeset
221 ... | case1 ux = ⊥-elim ( ¬U∋p ux )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 479
diff changeset
222 ... | case2 u-x = u-x
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 479
diff changeset
223 F∋p : filter F ∋ p
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 479
diff changeset
224 F∋p = proj1 (ODC.x∋minimal O GT GT≠∅)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 479
diff changeset
225 F∋-p : filter F ∋ ( P \ p )
1096
55ab5de1ae02 recovery
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 574
diff changeset
226 F∋-p = U⊆F U∋-p
480
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 479
diff changeset
227 f0 : filter F ∋ od∅
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 479
diff changeset
228 f0 = subst (λ k → odef (filter F) k ) (trans (cong (&) ∩-comm) (cong (&) [a-b]∩b=0 ) ) ( filter2 F F∋p F∋-p ( CAP {!!} {!!}) )
516
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 503
diff changeset
229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 503
diff changeset
230 import zorn
1096
55ab5de1ae02 recovery
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 574
diff changeset
231 open zorn O _⊆_
574
9084a26445a7 ZC data won't work
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 516
diff changeset
232
9084a26445a7 ZC data won't work
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 516
diff changeset
233 open import Relation.Binary.Structures
481
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 480
diff changeset
234
516
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 503
diff changeset
235 MaximumSubset : {L P : HOD}
1096
55ab5de1ae02 recovery
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 574
diff changeset
236 → o∅ o< & L → o∅ o< & P → P ⊆ L
55ab5de1ae02 recovery
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 574
diff changeset
237 → (PO : IsStrictPartialOrder _≡_ _⊆_ )
574
9084a26445a7 ZC data won't work
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 516
diff changeset
238 → ( (B : HOD) → B ⊆ P → IsTotalOrderSet PO B → SUP PO P B )
9084a26445a7 ZC data won't work
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 516
diff changeset
239 → Maximal PO P
9084a26445a7 ZC data won't work
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 516
diff changeset
240 MaximumSubset {L} {P} 0<L 0<P P⊆L PO C = Zorn-lemma PO 0<P {!!}
503
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 485
diff changeset
241
516
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 503
diff changeset
242 MaximumFilterExist : {L P : HOD} (LP : L ⊆ Power P) → ({p : HOD} → L ∋ p → L ∋ ( P \ p)) → ({p q : HOD} → L ∋ p → L ∋ q → L ∋ (p ∩ q))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 503
diff changeset
243 → (F : Filter LP) → o∅ o< & L → o∅ o< & (filter F) → (¬ (filter F ∋ od∅)) → MaximumFilter LP
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 503
diff changeset
244 MaximumFilterExist {L} {P} LP NEG CAP F 0<L 0<F Fprop = record { mf = {!!} ; proper = {!!} ; is-maximum = {!!} } where
574
9084a26445a7 ZC data won't work
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 516
diff changeset
245 mf01 : Maximal {!!} {!!}
9084a26445a7 ZC data won't work
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 516
diff changeset
246 mf01 = MaximumSubset 0<L {!!} {!!} {!!} {!!}
481
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 480
diff changeset
247
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 480
diff changeset
248