Mercurial > hg > Members > kono > Proof > ZF-in-agda
annotate src/filter.agda @ 1133:c2c0cf7f2d7e
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 12 Jan 2023 20:52:47 +0900 |
parents | 9904b262c08f |
children | 4c85ce2794e9 |
rev | line source |
---|---|
457 | 1 {-# OPTIONS --allow-unsolved-metas #-} |
2 | |
431 | 3 open import Level |
4 open import Ordinals | |
5 module filter {n : Level } (O : Ordinals {n}) where | |
6 | |
7 open import zf | |
8 open import logic | |
9 import OD | |
10 | |
11 open import Relation.Nullary | |
12 open import Data.Empty | |
13 open import Relation.Binary.Core | |
14 open import Relation.Binary.PropositionalEquality | |
1124 | 15 import BAlgebra |
431 | 16 |
1124 | 17 open BAlgebra O |
431 | 18 |
19 open inOrdinal O | |
20 open OD O | |
21 open OD.OD | |
22 open ODAxiom odAxiom | |
23 | |
24 import OrdUtil | |
25 import ODUtil | |
26 open Ordinals.Ordinals O | |
27 open Ordinals.IsOrdinals isOrdinal | |
28 open Ordinals.IsNext isNext | |
29 open OrdUtil O | |
30 open ODUtil O | |
31 | |
32 | |
33 import ODC | |
34 open ODC O | |
35 | |
36 open _∧_ | |
37 open _∨_ | |
38 open Bool | |
39 | |
1133 | 40 -- L is a boolean algebra, but we don't assume this explicitly |
41 -- | |
42 -- NEG : {p : HOD} → L ∋ p → L ∋ (P \ p) | |
43 -- CAP : {p q : HOD} → L ∋ p → L ∋ q → L ∋ (p ∩ q ) | |
44 -- | |
431 | 45 -- Kunen p.76 and p.53, we use ⊆ |
1124 | 46 record Filter { L P : HOD } (LP : L ⊆ Power P) : Set (suc n) where |
431 | 47 field |
456
9207b0c3cfe9
fix filter on subset of Power P
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
455
diff
changeset
|
48 filter : HOD |
9207b0c3cfe9
fix filter on subset of Power P
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
455
diff
changeset
|
49 f⊆L : filter ⊆ L |
9207b0c3cfe9
fix filter on subset of Power P
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
455
diff
changeset
|
50 filter1 : { p q : HOD } → L ∋ q → filter ∋ p → p ⊆ q → filter ∋ q |
461 | 51 filter2 : { p q : HOD } → filter ∋ p → filter ∋ q → L ∋ (p ∩ q) → filter ∋ (p ∩ q) |
431 | 52 |
53 open Filter | |
54 | |
1124 | 55 record prime-filter { L P : HOD } {LP : L ⊆ Power P} (F : Filter {L} {P} LP) : Set (suc (suc n)) where |
431 | 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 | 58 prime : {p q : HOD } → L ∋ p → L ∋ q → L ∋ (p ∪ q) → filter F ∋ (p ∪ q) → ( filter F ∋ p ) ∨ ( filter F ∋ q ) |
431 | 59 |
1124 | 60 record ultra-filter { L P : HOD } {LP : L ⊆ Power P} (F : Filter {L} {P} LP) : Set (suc (suc n)) where |
431 | 61 field |
456
9207b0c3cfe9
fix filter on subset of Power P
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
455
diff
changeset
|
62 proper : ¬ (filter F ∋ od∅) |
461 | 63 ultra : {p : HOD } → L ∋ p → L ∋ ( P \ p) → ( filter F ∋ p ) ∨ ( filter F ∋ ( P \ p) ) |
431 | 64 |
1124 | 65 ∈-filter : {L P p : HOD} → {LP : L ⊆ Power P} → (F : Filter {L} {P} LP ) → filter F ∋ p → L ∋ p |
1096 | 66 ∈-filter {L} {p} {LP} F lt = ( f⊆L F) lt |
458 | 67 |
1124 | 68 ⊆-filter : {L P p q : HOD } → {LP : L ⊆ Power P } → (F : Filter {L} {P} LP) → L ∋ q → q ⊆ P |
1096 | 69 ⊆-filter {L} {P} {p} {q} {LP} F lt = power→⊆ P q ( LP lt ) |
431 | 70 |
71 ∪-lemma1 : {L p q : HOD } → (p ∪ q) ⊆ L → p ⊆ L | |
1096 | 72 ∪-lemma1 {L} {p} {q} lt p∋x = lt (case1 p∋x) |
431 | 73 |
74 ∪-lemma2 : {L p q : HOD } → (p ∪ q) ⊆ L → q ⊆ L | |
1096 | 75 ∪-lemma2 {L} {p} {q} lt p∋x = lt (case2 p∋x) |
431 | 76 |
77 q∩q⊆q : {p q : HOD } → (q ∩ p) ⊆ q | |
1096 | 78 q∩q⊆q lt = proj1 lt |
431 | 79 |
80 open HOD | |
81 | |
82 ----- | |
83 -- | |
84 -- ultra filter is prime | |
85 -- | |
86 | |
461 | 87 filter-lemma1 : {P L : HOD} → (LP : L ⊆ Power P) |
88 → ({p : HOD} → L ∋ p → L ∋ (P \ p)) | |
89 → ({p q : HOD} → L ∋ p → L ∋ q → L ∋ (p ∩ q )) | |
1124 | 90 → (F : Filter {L} {P} LP) → ultra-filter F → prime-filter F |
461 | 91 filter-lemma1 {P} {L} LP NG IN F u = record { |
431 | 92 proper = ultra-filter.proper u |
93 ; prime = lemma3 | |
94 } where | |
461 | 95 lemma3 : {p q : HOD} → L ∋ p → L ∋ q → L ∋ (p ∪ q) → filter F ∋ (p ∪ q) → ( filter F ∋ p ) ∨ ( filter F ∋ q ) |
96 lemma3 {p} {q} Lp Lq _ lt with ultra-filter.ultra u Lp (NG Lp) | |
458 | 97 ... | case1 p∈P = case1 p∈P |
98 ... | case2 ¬p∈P = case2 (filter1 F {q ∩ (P \ p)} Lq lemma7 lemma8) where | |
99 lemma5 : ((p ∪ q ) ∩ (P \ p)) =h= (q ∩ (P \ p)) | |
431 | 100 lemma5 = record { eq→ = λ {x} lt → ⟪ lemma4 x lt , proj2 lt ⟫ |
101 ; eq← = λ {x} lt → ⟪ case2 (proj1 lt) , proj2 lt ⟫ | |
102 } where | |
458 | 103 lemma4 : (x : Ordinal ) → odef ((p ∪ q) ∩ (P \ p)) x → odef q x |
431 | 104 lemma4 x lt with proj1 lt |
105 lemma4 x lt | case1 px = ⊥-elim ( proj2 (proj2 lt) px ) | |
106 lemma4 x lt | case2 qx = qx | |
461 | 107 lemma9 : L ∋ ((p ∪ q ) ∩ (P \ p)) |
108 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
|
109 lemma6 : filter F ∋ ((p ∪ q ) ∩ (P \ p)) |
461 | 110 lemma6 = filter2 F lt ¬p∈P lemma9 |
458 | 111 lemma7 : filter F ∋ (q ∩ (P \ p)) |
112 lemma7 = subst (λ k → filter F ∋ k ) (==→o≡ lemma5 ) lemma6 | |
113 lemma8 : (q ∩ (P \ p)) ⊆ q | |
1124 | 114 lemma8 lt = proj1 lt |
431 | 115 |
116 ----- | |
117 -- | |
1124 | 118 -- if Filter {L} {P} contains L, prime filter is ultra |
431 | 119 -- |
120 | |
461 | 121 filter-lemma2 : {P L : HOD} → (LP : L ⊆ Power P) |
122 → ({p : HOD} → L ∋ p → L ∋ ( P \ p)) | |
1124 | 123 → (F : Filter {L} {P} LP) → filter F ∋ P → prime-filter F → ultra-filter F |
459 | 124 filter-lemma2 {P} {L} LP Lm F f∋P prime = record { |
458 | 125 proper = prime-filter.proper prime |
1096 | 126 ; 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 | 127 } where |
128 open _==_ | |
459 | 129 p⊆L : {p : HOD} → L ∋ p → p ⊆ P |
1096 | 130 p⊆L {p} lt = power→⊆ P p ( LP lt ) |
459 | 131 p+1-p=1 : {p : HOD} → p ⊆ P → P =h= (p ∪ (P \ p)) |
132 eq→ (p+1-p=1 {p} p⊆P) {x} lt with ODC.decp O (odef p x) | |
133 eq→ (p+1-p=1 {p} p⊆P) {x} lt | yes p∋x = case1 p∋x | |
134 eq→ (p+1-p=1 {p} p⊆P) {x} lt | no ¬p = case2 ⟪ lt , ¬p ⟫ | |
1096 | 135 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 | 136 eq← (p+1-p=1 {p} p⊆P) {x} ( case2 ¬p ) = proj1 ¬p |
458 | 137 lemma : (p : HOD) → p ⊆ P → filter F ∋ (p ∪ (P \ p)) |
459 | 138 lemma p p⊆P = subst (λ k → filter F ∋ k ) (==→o≡ (p+1-p=1 {p} p⊆P)) f∋P |
461 | 139 lemma10 : {p : HOD} → L ∋ p → L ∋ P → L ∋ (p ∪ (P \ p)) |
140 lemma10 {p} L∋p lt = subst (λ k → L ∋ k ) (==→o≡ (p+1-p=1 {p} (p⊆L L∋p))) lt | |
431 | 141 |
458 | 142 record Dense {L P : HOD } (LP : L ⊆ Power P) : Set (suc n) where |
431 | 143 field |
144 dense : HOD | |
456
9207b0c3cfe9
fix filter on subset of Power P
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
455
diff
changeset
|
145 d⊆P : dense ⊆ L |
9207b0c3cfe9
fix filter on subset of Power P
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
455
diff
changeset
|
146 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
|
147 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
|
148 dense-p : { p : HOD} → (lt : L ∋ p) → (dense-f lt) ⊆ p |
431 | 149 |
458 | 150 record Ideal {L P : HOD } (LP : L ⊆ Power P) : Set (suc n) where |
431 | 151 field |
152 ideal : HOD | |
456
9207b0c3cfe9
fix filter on subset of Power P
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
455
diff
changeset
|
153 i⊆L : ideal ⊆ L |
9207b0c3cfe9
fix filter on subset of Power P
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
455
diff
changeset
|
154 ideal1 : { p q : HOD } → L ∋ q → ideal ∋ p → q ⊆ p → ideal ∋ q |
431 | 155 ideal2 : { p q : HOD } → ideal ∋ p → ideal ∋ q → ideal ∋ (p ∪ q) |
156 | |
157 open Ideal | |
158 | |
1124 | 159 proper-ideal : {L P : HOD} → (LP : L ⊆ Power P) → (P : Ideal {L} {P} LP ) → {p : HOD} → Set n |
458 | 160 proper-ideal {L} {P} LP I = ideal I ∋ od∅ |
431 | 161 |
1124 | 162 prime-ideal : {L P : HOD} → (LP : L ⊆ Power P) → Ideal {L} {P} LP → ∀ {p q : HOD } → Set n |
458 | 163 prime-ideal {L} {P} LP I {p} {q} = ideal I ∋ ( p ∩ q) → ( ideal I ∋ p ) ∨ ( ideal I ∋ q ) |
431 | 164 |
1131 | 165 open import Relation.Binary.Definitions |
431 | 166 |
461 | 167 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
|
168 field |
1124 | 169 genf : Filter {L} {P} LP |
170 generic : (D : Dense {L} {P} LP ) → M ∋ Dense.dense D → ¬ ( (Dense.dense D ∩ Filter.filter genf ) ≡ od∅ ) | |
431 | 171 |
478 | 172 record MaximumFilter {L P : HOD} (LP : L ⊆ Power P) : Set (suc n) where |
173 field | |
1124 | 174 mf : Filter {L} {P} LP |
478 | 175 proper : ¬ (filter mf ∋ od∅) |
1124 | 176 is-maximum : ( f : Filter {L} {P} LP ) → ¬ (filter f ∋ od∅) → ¬ ( filter mf ⊂ filter f ) |
478 | 177 |
1131 | 178 record Fp {L P : HOD} (LP : L ⊆ Power P) (mx : MaximumFilter {L} {P} LP ) (p x : Ordinal ) : Set n where |
179 field | |
180 y : Ordinal | |
181 mfy : odef (filter (MaximumFilter.mf mx)) y | |
182 y-p⊂x : ( * y \ * p ) ⊆ * x | |
183 | |
1125 | 184 max→ultra : {L P : HOD} (LP : L ⊆ Power P) |
1127 | 185 → ({p q : HOD} → L ∋ p → L ∋ q → L ∋ (p ∩ q)) |
1132 | 186 → (mx : MaximumFilter {L} {P} LP ) → {y : Ordinal } → odef (filter (MaximumFilter.mf mx)) y → ultra-filter ( MaximumFilter.mf mx ) |
187 max→ultra {L} {P} LP CAP mx {y} mxy = record { proper = MaximumFilter.proper mx ; ultra = ultra } where | |
479 | 188 mf = MaximumFilter.mf mx |
189 ultra : {p : HOD} → L ∋ p → L ∋ (P \ p) → (filter mf ∋ p) ∨ (filter mf ∋ (P \ p)) | |
1131 | 190 ultra {p} Lp Lnp with ODC.∋-p O (filter mf) p |
479 | 191 ... | yes y = case1 y |
1132 | 192 ... | no np = case2 (subst (λ k → k ∋ (P \ p)) F=mf F∋P-p) where |
1129 | 193 F : HOD |
194 F = record { od = record { def = λ x → odef L x ∧ Fp {L} {P} LP mx (& p) x } | |
195 ; odmax = & L ; <odmax = λ lt → odef< (proj1 lt) } | |
1124 | 196 mu01 : {r : HOD} {q : HOD} → L ∋ q → F ∋ r → r ⊆ q → F ∋ q |
1130 | 197 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 = mu03 } ⟫ where |
198 mu05 : (* y \ p) ⊆ r | |
1131 | 199 mu05 = subst₂ (λ j k → (* y \ j ) ⊆ k ) *iso *iso y-p⊂x |
1130 | 200 mu04 : (* y \ * (& p)) ⊆ * (& q) |
201 mu04 {x} ⟪ yx , npx ⟫ = subst (λ k → odef k x ) (sym *iso) (r⊆q (mu05 ⟪ yx , (λ px1 → npx (subst (λ k → odef k x) (sym *iso) px1 )) ⟫ ) ) | |
1131 | 202 mu03 : (* y \ * (& p)) ⊆ * (& q) |
203 mu03 = mu04 | |
1125 | 204 mu02 : {r : HOD} {q : HOD} → F ∋ r → F ∋ q → L ∋ (r ∩ q) → F ∋ (r ∩ q) |
1129 | 205 mu02 {r} {q} ⟪ Lr , record { y = ry ; mfy = mfry ; y-p⊂x = ry-p⊂x } ⟫ |
1130 | 206 ⟪ Lq , record { y = qy ; mfy = mfqy ; y-p⊂x = qy-p⊂x } ⟫ Lrq = ⟪ Lrq , record { y = & (* qy ∩ * ry) ; mfy = mu20 ; y-p⊂x = mu22 } ⟫ where |
207 mu21 : L ∋ (* qy ∩ * ry) | |
208 mu21 = CAP (subst (λ k → odef L k ) (sym &iso) (f⊆L mf mfqy)) (subst (λ k → odef L k ) (sym &iso) (f⊆L mf mfry)) | |
209 mu20 : odef (filter mf) (& (* qy ∩ * ry)) | |
210 mu20 = filter2 mf (subst (λ k → odef (filter mf) k) (sym &iso) mfqy) (subst (λ k → odef (filter mf) k) (sym &iso) mfry) mu21 | |
211 mu24 : ((* qy ∩ * ry) \ * (& p)) ⊆ (r ∩ q) | |
1131 | 212 mu24 {x} ⟪ qry , npx ⟫ = ⟪ subst (λ k → odef k x) *iso ( ry-p⊂x ⟪ proj2 qry , npx ⟫ ) |
213 , subst (λ k → odef k x) *iso ( qy-p⊂x ⟪ proj1 qry , npx ⟫ ) ⟫ | |
214 mu23 : ((* qy ∩ * ry) \ * (& p) ) ⊆ (r ∩ q) | |
215 mu23 = mu24 | |
216 mu22 : (* (& (* qy ∩ * ry)) \ * (& p)) ⊆ * (& (r ∩ q)) | |
217 mu22 = subst₂ (λ j k → (j \ * (& p)) ⊆ k ) (sym *iso) (sym *iso) mu23 | |
1124 | 218 FisFilter : Filter {L} {P} LP |
1131 | 219 FisFilter = record { filter = F ; f⊆L = λ {x} lt → proj1 lt ; filter1 = mu01 ; filter2 = mu02 } |
1124 | 220 FisGreater : {x : Ordinal } → odef (filter (MaximumFilter.mf mx)) x → odef (filter FisFilter ) x |
1129 | 221 FisGreater {x} mfx = ⟪ f⊆L mf mfx , record { y = x ; mfy = mfx ; y-p⊂x = mu03 } ⟫ where |
1131 | 222 mu03 : (* x \ * (& p)) ⊆ * x |
223 mu03 {z} ⟪ xz , _ ⟫ = xz | |
224 F∋P-p : F ∋ (P \ p ) | |
1132 | 225 F∋P-p = ⟪ Lnp , record { y = y ; mfy = mxy ; y-p⊂x = mu30 } ⟫ where |
226 mu30 : (* y \ * (& p)) ⊆ * (& (P \ p)) | |
227 mu30 {z} ⟪ yz , ¬pz ⟫ = subst (λ k → odef k z) (sym *iso) ( ⟪ Pz , (λ pz → ¬pz (subst (λ k → odef k z) (sym *iso) pz )) ⟫ ) where | |
228 Pz : odef P z | |
229 Pz = LP (f⊆L mf mxy) _ yz | |
1133 | 230 FisProper : ¬ (filter FisFilter ∋ od∅) -- if F contains p, p is in mf which contract np |
231 FisProper ⟪ L0 , record { y = z ; mfy = mfz ; y-p⊂x = z-p⊂x } ⟫ = | |
232 ⊥-elim ( np (filter1 mf Lp (subst (λ k → odef (filter mf) k) (sym &iso) mfz) mu31) ) where | |
233 mu31 : * z ⊆ p | |
234 mu31 {x} zx with ODC.decp O (odef p x) | |
235 ... | yes px = px | |
236 ... | no npx = ⊥-elim ( ¬x<0 (subst (λ k → odef k x) *iso (z-p⊂x ⟪ zx , (λ px → npx (subst (λ k → odef k x) *iso px) ) ⟫ ) ) ) | |
1132 | 237 mu40 = (MaximumFilter.is-maximum mx) |
238 F=mf : F ≡ filter mf | |
239 F=mf with osuc-≡< ( ⊆→o≤ FisGreater ) | |
240 ... | case1 eq = &≡&→≡ (sym eq) | |
241 ... | case2 lt = ⊥-elim ( MaximumFilter.is-maximum mx FisFilter FisProper ⟪ lt , FisGreater ⟫ ) | |
478 | 242 |
480 | 243 open _==_ |
244 | |
1124 | 245 ultra→max : {L P : HOD} (LP : L ⊆ Power P) → ({p : HOD} |
246 → L ∋ p → L ∋ ( P \ p)) | |
247 → ({p q : HOD} → L ∋ p → L ∋ q → L ∋ (p ∩ q)) | |
248 → (U : Filter {L} {P} LP) → ultra-filter U → MaximumFilter LP | |
481 | 249 ultra→max {L} {P} LP NG CAP U u = record { mf = U ; proper = ultra-filter.proper u ; is-maximum = is-maximum } where |
1124 | 250 is-maximum : (F : Filter {L} {P} LP) → (¬ (filter F ∋ od∅)) → (U⊂F : filter U ⊂ filter F ) → ⊥ |
251 is-maximum F Prop ⟪ U<F , U⊆F ⟫ = Prop f0 where | |
480 | 252 GT : HOD |
1124 | 253 GT = record { od = record { def = λ x → odef (filter F) x ∧ (¬ odef (filter U) x) } ; odmax = & L ; <odmax = um02 } where |
254 um02 : {y : Ordinal } → odef (filter F) y ∧ (¬ odef (filter U) y) → y o< & L | |
255 um02 {y} Fy = odef< ( f⊆L F (proj1 Fy ) ) | |
480 | 256 GT≠∅ : ¬ (GT =h= od∅) |
1124 | 257 GT≠∅ eq = ⊥-elim (U≠F ( ==→o≡ ((⊆→= {filter U} {filter F}) U⊆F (U-F=∅→F⊆U {filter F} {filter U} gt01)))) where |
258 U≠F : ¬ ( filter U ≡ filter F ) | |
259 U≠F eq = o<¬≡ (cong (&) eq) U<F | |
260 gt01 : (x : Ordinal) → ¬ ( odef (filter F) x ∧ (¬ odef (filter U) x)) | |
480 | 261 gt01 x not = ¬x<0 ( eq→ eq not ) |
262 p : HOD | |
263 p = ODC.minimal O GT GT≠∅ | |
264 ¬U∋p : ¬ ( filter U ∋ p ) | |
265 ¬U∋p = proj2 (ODC.x∋minimal O GT GT≠∅) | |
1124 | 266 L∋p : L ∋ p |
267 L∋p = f⊆L F ( proj1 (ODC.x∋minimal O GT GT≠∅)) | |
268 um00 : ¬ odef (filter U) (& p) | |
269 um00 = proj2 (ODC.x∋minimal O GT GT≠∅) | |
270 L∋-p : L ∋ ( P \ p ) | |
271 L∋-p = NG L∋p | |
480 | 272 U∋-p : filter U ∋ ( P \ p ) |
1124 | 273 U∋-p with ultra-filter.ultra u {p} L∋p L∋-p |
480 | 274 ... | case1 ux = ⊥-elim ( ¬U∋p ux ) |
275 ... | case2 u-x = u-x | |
276 F∋p : filter F ∋ p | |
277 F∋p = proj1 (ODC.x∋minimal O GT GT≠∅) | |
278 F∋-p : filter F ∋ ( P \ p ) | |
1096 | 279 F∋-p = U⊆F U∋-p |
480 | 280 f0 : filter F ∋ od∅ |
1124 | 281 f0 = subst (λ k → odef (filter F) k ) (trans (cong (&) ∩-comm) (cong (&) [a-b]∩b=0 ) ) ( filter2 F F∋p F∋-p ( CAP L∋p L∋-p) ) |
516 | 282 |
1133 | 283 -- if there is a filter , there is a ultra filter under the axiom of choise |
284 -- Zorn Lemma | |
285 | |
516 | 286 import zorn |
1126 | 287 |
288 open import Relation.Binary | |
289 | |
290 PO : IsStrictPartialOrder _≡_ _⊂_ | |
291 PO = record { isEquivalence = record { refl = refl ; sym = sym ; trans = trans } | |
292 ; trans = λ {a} {b} {c} → trans-⊂ {a} {b} {c} | |
1133 | 293 ; irrefl = λ x=y x<y → o<¬≡ (cong (&) x=y) (proj1 x<y) |
294 ; <-resp-≈ = record { fst = ( λ {x} {y} {y1} y=y1 xy1 → subst (λ k → x ⊂ k) y=y1 xy1 ) | |
295 ; snd = (λ {x} {x1} {y} x=x1 x1y → subst (λ k → k ⊂ x) x=x1 x1y ) } } | |
1126 | 296 |
297 open zorn O _⊂_ PO | |
574 | 298 |
299 open import Relation.Binary.Structures | |
481 | 300 |
1133 | 301 record is-filter { L P : HOD } (LP : L ⊆ Power P) (filter : Ordinal ) : Set n where |
302 field | |
303 f⊆L : (* filter) ⊆ L | |
304 filter1 : { p q : Ordinal } → odef L q → odef (* filter) p → (* p) ⊆ (* q) → odef (* filter) q | |
305 filter2 : { p q : Ordinal } → odef (* filter) p → odef (* filter) q → odef L (& ((* p) ∩ (* q))) → odef (* filter) (& ((* p) ∩ (* q))) | |
306 proper : ¬ (odef (* filter ) o∅) | |
1126 | 307 |
1133 | 308 -- all filter contains F |
309 F⊆X : { L P : HOD } (LP : L ⊆ Power P) → Filter {L} {P} LP → HOD | |
310 F⊆X {L} {P} LP F = record { od = record { def = λ x → is-filter {L} {P} LP x ∧ ( filter F ⊆ * x) } ; odmax = osuc (& L) | |
311 ; <odmax = λ {x} lt → fx00 lt } where | |
312 fx00 : {x : Ordinal } → is-filter LP x ∧ filter F ⊆ * x → x o< osuc (& L) | |
313 fx00 {x} lt = subst (λ k → k o< osuc (& L)) &iso ( ⊆→o≤ (is-filter.f⊆L (proj1 lt )) ) | |
503 | 314 |
516 | 315 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)) |
1124 | 316 → (F : Filter {L} {P} LP) → o∅ o< & L → o∅ o< & (filter F) → (¬ (filter F ∋ od∅)) → MaximumFilter {L} {P} LP |
516 | 317 MaximumFilterExist {L} {P} LP NEG CAP F 0<L 0<F Fprop = record { mf = {!!} ; proper = {!!} ; is-maximum = {!!} } where |
1133 | 318 FX : HOD |
319 FX = F⊆X {L} {P} LP F | |
320 FX∋F : odef FX (& (filter F)) | |
321 FX∋F = ⟪ record { f⊆L = subst (λ k → k ⊆ L) (sym *iso) (f⊆L F) ; filter1 = ? ; filter2 = ? ; proper = ? } , subst (λ k → filter F ⊆ k ) (sym *iso) ( λ x → x ) ⟫ | |
322 SUP⊆ : (B : HOD) → B ⊆ FX → IsTotalOrderSet B → SUP FX B | |
323 SUP⊆ B B⊆FX OB = record { sup = Union B ; isSUP = record { ax = ? ; x≤sup = ? } } | |
324 mf01 : Maximal FX | |
325 mf01 = Zorn-lemma (∈∅< FX∋F) SUP⊆ | |
481 | 326 |
327 |