annotate src/Tychonoff.agda @ 1240:fbe072447243

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sun, 12 Mar 2023 13:02:09 +0900
parents 5223f0b40d91
children b15dd4438d50
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1175
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1174
diff changeset
1 {-# OPTIONS --allow-unsolved-metas #-}
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 open import Level
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 open import Ordinals
1170
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1169
diff changeset
4 module Tychonoff {n : Level } (O : Ordinals {n}) where
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 open import zf
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 open import logic
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 open _∧_
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 open _∨_
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 open Bool
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11
1113
384ba5a3c019 fix Topology definition
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1112
diff changeset
12 import OD
384ba5a3c019 fix Topology definition
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1112
diff changeset
13 open import Relation.Nullary
384ba5a3c019 fix Topology definition
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1112
diff changeset
14 open import Data.Empty
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 open import Relation.Binary.Core
1143
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1142
diff changeset
16 open import Relation.Binary.Definitions
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 open import Relation.Binary.PropositionalEquality
1124
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1123
diff changeset
18 import BAlgebra
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1123
diff changeset
19 open BAlgebra O
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 open inOrdinal O
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 open OD O
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 open OD.OD
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 open ODAxiom odAxiom
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 import ODC
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 open ODC O
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
34
1102
a9a7ad7784cc fix topology
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1101
diff changeset
35 open import filter O
1218
362e43a1477c brain damaged fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1217
diff changeset
36 open import ZProduct O
1170
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1169
diff changeset
37 open import Topology O
1235
d2506e861dbf almost done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1234
diff changeset
38 open import maximum-filter O
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
39
1211
f17d060e0bda UFLP→FIP FIP→UFLP with Zorn done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1210
diff changeset
40 open Filter
f17d060e0bda UFLP→FIP FIP→UFLP with Zorn done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1210
diff changeset
41 open Topology
1169
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1168
diff changeset
42
1237
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1236
diff changeset
43 --
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1236
diff changeset
44 -- Tychonoff : {P Q : HOD } → (TP : Topology P) → (TQ : Topology Q)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1236
diff changeset
45 -- → Compact TP → Compact TQ → Compact (ProductTopology TP TQ)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1236
diff changeset
46 --
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1236
diff changeset
47 -- ULFP : Compact <=> Every ultra filter F have a limit i.e. open sets which contains the limit (Neighbor limit) is in F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1236
diff changeset
48 --
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1236
diff changeset
49 -- Tychonoff {P} {Q} TP TQ CP CQ = FIP→Compact (ProductTopology TP TQ) (UFLP→FIP (ProductTopology TP TQ) uflPQ ) where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1236
diff changeset
50 --
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1236
diff changeset
51 -- FP FQ : create projections of a filter F, so it is ULFP
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1236
diff changeset
52 --
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1236
diff changeset
53 -- Pf : odef (ZFP P Q) (& < * (UFLP.limit uflp) , * (UFLP.limit uflq) >)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1236
diff changeset
54 --
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1236
diff changeset
55 -- the product of each limits must be a limit of ultra filter F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1236
diff changeset
56 --
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1236
diff changeset
57 -- its neighbor is in F, because we can decompose Neighbors nei into subbase of Product Topology which is a open set of P ∋ p or Q ∋ q
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1236
diff changeset
58 -- so (P x q) ∋ limit ∨ (q x P) ∋ limit. P x q ⊆ nei , so nei ∋ limit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1236
diff changeset
59 --
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1236
diff changeset
60 -- uflPQ : (F : Filter {Power (ZFP P Q)} {ZFP P Q} (λ x → x)) (UF : ultra-filter F)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1236
diff changeset
61 -- → UFLP (ProductTopology TP TQ) F UF
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1236
diff changeset
62 --
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1236
diff changeset
63 -- QED.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1236
diff changeset
64
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
65 -- FIP is UFL
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
66
1159
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1158
diff changeset
67 -- filter Base
1205
kono
parents: 1204
diff changeset
68 record FBase (P : HOD ) (X : Ordinal ) (u : Ordinal) : Set n where
1153
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1152
diff changeset
69 field
1161
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1160
diff changeset
70 b x : Ordinal
1155
c4fd0bfdfbae FIP to Filter done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1154
diff changeset
71 b⊆X : * b ⊆ * X
1161
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1160
diff changeset
72 sb : Subbase (* b) x
1158
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1155
diff changeset
73 u⊆P : * u ⊆ P
1154
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1153
diff changeset
74 x⊆u : * x ⊆ * u
1155
c4fd0bfdfbae FIP to Filter done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1154
diff changeset
75
1170
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1169
diff changeset
76 record UFLP {P : HOD} (TP : Topology P) (F : Filter {Power P} {P} (λ x → x) )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1169
diff changeset
77 (ultra : ultra-filter F ) : Set (suc (suc n)) where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1169
diff changeset
78 field
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1169
diff changeset
79 limit : Ordinal
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1169
diff changeset
80 P∋limit : odef P limit
1211
f17d060e0bda UFLP→FIP FIP→UFLP with Zorn done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1210
diff changeset
81 is-limit : {v : Ordinal} → Neighbor TP limit v → filter F ∋ (* v)
1165
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1164
diff changeset
82
1161
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1160
diff changeset
83 UFLP→FIP : {P : HOD} (TP : Topology P) →
1169
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1168
diff changeset
84 ((F : Filter {Power P} {P} (λ x → x) ) (UF : ultra-filter F ) → UFLP TP F UF ) → FIP TP
1163
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1162
diff changeset
85 UFLP→FIP {P} TP uflp with trio< (& P) o∅
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1162
diff changeset
86 ... | tri< a ¬b ¬c = ⊥-elim ( ¬x<0 a )
1201
kono
parents: 1200
diff changeset
87 ... | tri≈ ¬a P=0 ¬c = record { limit = λ CX fip → o∅ ; is-limit = fip03 } where
1237
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1236
diff changeset
88 -- P is empty ( this case cannot happen because ulfp → 0 < P )
1163
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1162
diff changeset
89 fip02 : {x : Ordinal } → ¬ odef P x
1201
kono
parents: 1200
diff changeset
90 fip02 {x} Px = ⊥-elim ( o<¬≡ (sym P=0) (∈∅< Px) )
kono
parents: 1200
diff changeset
91 fip03 : {X : Ordinal} (CX : * X ⊆ CS TP) (fip : {x : Ordinal} → Subbase (* X) x → o∅ o< x) {x : Ordinal} →
kono
parents: 1200
diff changeset
92 odef (* X) x → odef (* x) o∅
kono
parents: 1200
diff changeset
93 -- empty P case
kono
parents: 1200
diff changeset
94 -- if 0 < X then 0 < x ∧ P ∋ xfrom fip
kono
parents: 1200
diff changeset
95 -- if 0 ≡ X then ¬ odef X x
kono
parents: 1200
diff changeset
96 fip03 {X} CX fip {x} xx with trio< o∅ X
kono
parents: 1200
diff changeset
97 ... | tri< 0<X ¬b ¬c = ⊥-elim ( ¬∅∋ (subst₂ (λ j k → odef j k ) (trans (trans (sym *iso) (cong (*) P=0)) o∅≡od∅ ) (sym &iso)
kono
parents: 1200
diff changeset
98 ( cs⊆L TP (subst (λ k → odef (CS TP) k ) (sym &iso) (CX xx)) xe ))) where
kono
parents: 1200
diff changeset
99 0<x : o∅ o< x
kono
parents: 1200
diff changeset
100 0<x = fip (gi xx )
kono
parents: 1200
diff changeset
101 e : HOD -- we have an element of x
kono
parents: 1200
diff changeset
102 e = ODC.minimal O (* x) (0<P→ne (subst (λ k → o∅ o< k) (sym &iso) 0<x) )
kono
parents: 1200
diff changeset
103 xe : odef (* x) (& e)
kono
parents: 1200
diff changeset
104 xe = ODC.x∋minimal O (* x) (0<P→ne (subst (λ k → o∅ o< k) (sym &iso) 0<x) )
kono
parents: 1200
diff changeset
105 ... | tri≈ ¬a 0=X ¬c = ⊥-elim ( ¬∅∋ (subst₂ (λ j k → odef j k ) ( begin
kono
parents: 1200
diff changeset
106 * X ≡⟨ cong (*) (sym 0=X) ⟩
kono
parents: 1200
diff changeset
107 * o∅ ≡⟨ o∅≡od∅ ⟩
kono
parents: 1200
diff changeset
108 od∅ ∎ ) (sym &iso) xx ) ) where open ≡-Reasoning
kono
parents: 1200
diff changeset
109 ... | tri> ¬a ¬b c = ⊥-elim ( ¬x<0 c )
1204
kono
parents: 1203
diff changeset
110 ... | tri> ¬a ¬b 0<P = record { limit = λ CSX fip → limit CSX fip ; is-limit = uf01 } where
1143
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1142
diff changeset
111 fip : {X : Ordinal} → * X ⊆ CS TP → Set n
1187
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
112 fip {X} CSX = {x : Ordinal} → Subbase (* X) x → o∅ o< x
1154
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1153
diff changeset
113 N : {X : Ordinal} → (CSX : * X ⊆ CS TP) → fip CSX → HOD
1161
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1160
diff changeset
114 N {X} CSX fp = record { od = record { def = λ u → FBase P X u } ; odmax = osuc (& P)
1159
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1158
diff changeset
115 ; <odmax = λ {x} lt → subst₂ (λ j k → j o< osuc k) &iso refl (⊆→o≤ (FBase.u⊆P lt)) }
1158
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1155
diff changeset
116 N⊆PP : {X : Ordinal } → (CSX : * X ⊆ CS TP) → (fp : fip CSX) → N CSX fp ⊆ Power P
1159
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1158
diff changeset
117 N⊆PP CSX fp nx b xb = FBase.u⊆P nx xb
1237
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1236
diff changeset
118 -- filter base is not empty, it is necessary to maximize fip filter
1204
kono
parents: 1203
diff changeset
119 nc : {X : Ordinal} → o∅ o< X → (CSX : * X ⊆ CS TP) → (fip : fip CSX) → HOD
1205
kono
parents: 1204
diff changeset
120 nc {X} 0<X CSX fip = ODC.minimal O (* X) (0<P→ne (subst (λ k → o∅ o< k) (sym &iso) 0<X) ) -- an element of X
1211
f17d060e0bda UFLP→FIP FIP→UFLP with Zorn done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1210
diff changeset
121 N∋nc :{X : Ordinal} → (0<X : o∅ o< X) → (CSX : * X ⊆ CS TP)
1204
kono
parents: 1203
diff changeset
122 → (fip : fip CSX) → odef (N CSX fip) (& (nc 0<X CSX fip) )
1205
kono
parents: 1204
diff changeset
123 N∋nc {X} 0<X CSX fip = record { b = X ; x = & e ; b⊆X = λ x → x ; sb = gi Xe ; u⊆P = nn02 ; x⊆u = λ x → x } where
1201
kono
parents: 1200
diff changeset
124 e : HOD -- we have an element of X
kono
parents: 1200
diff changeset
125 e = ODC.minimal O (* X) (0<P→ne (subst (λ k → o∅ o< k) (sym &iso) 0<X) )
kono
parents: 1200
diff changeset
126 Xe : odef (* X) (& e)
kono
parents: 1200
diff changeset
127 Xe = ODC.x∋minimal O (* X) (0<P→ne (subst (λ k → o∅ o< k) (sym &iso) 0<X) )
1211
f17d060e0bda UFLP→FIP FIP→UFLP with Zorn done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1210
diff changeset
128 nn01 = ODC.minimal O (* (& e)) (0<P→ne (subst (λ k → o∅ o< k) (sym &iso) (fip (gi Xe))) )
1205
kono
parents: 1204
diff changeset
129 nn02 : * (& (nc 0<X CSX fip)) ⊆ P
kono
parents: 1204
diff changeset
130 nn02 = subst (λ k → k ⊆ P ) (sym *iso) (cs⊆L TP (CSX Xe ) )
kono
parents: 1204
diff changeset
131
1237
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1236
diff changeset
132 0<PP : o∅ o< & (Power P) -- Power P contaisn od∅, so it is not empty
1201
kono
parents: 1200
diff changeset
133 0<PP = subst (λ k → k o< & (Power P)) &iso ( c<→o< (subst (λ k → odef (Power P) k) (sym &iso) nn00 )) where
kono
parents: 1200
diff changeset
134 nn00 : odef (Power P) o∅
kono
parents: 1200
diff changeset
135 nn00 x lt with subst (λ k → odef k x) o∅≡od∅ lt
kono
parents: 1200
diff changeset
136 ... | x<0 = ⊥-elim ( ¬x<0 x<0)
1174
375615f9d60f Func and Funcs
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1173
diff changeset
137 --
375615f9d60f Func and Funcs
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1173
diff changeset
138 -- FIP defines a filter
375615f9d60f Func and Funcs
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1173
diff changeset
139 --
1158
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1155
diff changeset
140 F : {X : Ordinal} → (CSX : * X ⊆ CS TP) → (fp : fip CSX) → Filter {Power P} {P} (λ x → x)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1155
diff changeset
141 F {X} CSX fp = record { filter = N CSX fp ; f⊆L = N⊆PP CSX fp ; filter1 = f1 ; filter2 = f2 } where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1155
diff changeset
142 f1 : {p q : HOD} → Power P ∋ q → N CSX fp ∋ p → p ⊆ q → N CSX fp ∋ q
1161
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1160
diff changeset
143 f1 {p} {q} Xq record { b = b ; x = x ; b⊆X = b⊆X ; sb = sb ; u⊆P = Xp ; x⊆u = x⊆p } p⊆q =
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1160
diff changeset
144 record { b = b ; x = x ; b⊆X = b⊆X ; sb = sb ; u⊆P = subst (λ k → k ⊆ P) (sym *iso) f10 ; x⊆u = λ {z} xp →
1158
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1155
diff changeset
145 subst (λ k → odef k z) (sym *iso) (p⊆q (subst (λ k → odef k z) *iso (x⊆p xp))) } where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1155
diff changeset
146 f10 : q ⊆ P
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1155
diff changeset
147 f10 {x} qx = subst (λ k → odef P k) &iso (power→ P _ Xq (subst (λ k → odef q k) (sym &iso) qx ))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1155
diff changeset
148 f2 : {p q : HOD} → N CSX fp ∋ p → N CSX fp ∋ q → Power P ∋ (p ∩ q) → N CSX fp ∋ (p ∩ q)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1155
diff changeset
149 f2 {p} {q} Np Nq Xpq = record { b = & Np+Nq ; x = & xp∧xq ; b⊆X = f20 ; sb = sbpq ; u⊆P = p∩q⊆p ; x⊆u = f22 } where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1155
diff changeset
150 p∩q⊆p : * (& (p ∩ q)) ⊆ P
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1155
diff changeset
151 p∩q⊆p {x} pqx = subst (λ k → odef P k) &iso (power→ P _ Xpq (subst₂ (λ j k → odef j k ) *iso (sym &iso) pqx ))
1159
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1158
diff changeset
152 Np+Nq = * (FBase.b Np) ∪ * (FBase.b Nq)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1158
diff changeset
153 xp∧xq = * (FBase.x Np) ∩ * (FBase.x Nq)
1155
c4fd0bfdfbae FIP to Filter done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1154
diff changeset
154 sbpq : Subbase (* (& Np+Nq)) (& xp∧xq)
1159
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1158
diff changeset
155 sbpq = subst₂ (λ j k → Subbase j k ) (sym *iso) refl ( g∩ (sb⊆ case1 (FBase.sb Np)) (sb⊆ case2 (FBase.sb Nq)))
1155
c4fd0bfdfbae FIP to Filter done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1154
diff changeset
156 f20 : * (& Np+Nq) ⊆ * X
c4fd0bfdfbae FIP to Filter done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1154
diff changeset
157 f20 {x} npq with subst (λ k → odef k x) *iso npq
1159
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1158
diff changeset
158 ... | case1 np = FBase.b⊆X Np np
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1158
diff changeset
159 ... | case2 nq = FBase.b⊆X Nq nq
1155
c4fd0bfdfbae FIP to Filter done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1154
diff changeset
160 f22 : * (& xp∧xq) ⊆ * (& (p ∩ q))
1161
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1160
diff changeset
161 f22 = subst₂ ( λ j k → j ⊆ k ) (sym *iso) (sym *iso) (λ {w} xpq
1159
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1158
diff changeset
162 → ⟪ subst (λ k → odef k w) *iso ( FBase.x⊆u Np (proj1 xpq)) , subst (λ k → odef k w) *iso ( FBase.x⊆u Nq (proj2 xpq)) ⟫ )
1174
375615f9d60f Func and Funcs
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1173
diff changeset
163 --
1207
56d501cf0318 UFLP→FIP done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1206
diff changeset
164 -- it contains no empty sets becase it is a finite intersection ( Subbase (* X) x )
1211
f17d060e0bda UFLP→FIP FIP→UFLP with Zorn done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1210
diff changeset
165 --
1207
56d501cf0318 UFLP→FIP done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1206
diff changeset
166 proper : {X : Ordinal} → (CSX : * X ⊆ CS TP) → (fip : fip {X} CSX) → ¬ (N CSX fip ∋ od∅)
56d501cf0318 UFLP→FIP done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1206
diff changeset
167 proper {X} CSX fip record { b = b ; x = x ; b⊆X = b⊆X ; sb = sb ; u⊆P = u⊆P ; x⊆u = x⊆u } = o≤> x≤0 (fip (fp00 _ _ b⊆X sb)) where
56d501cf0318 UFLP→FIP done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1206
diff changeset
168 x≤0 : x o< osuc o∅
56d501cf0318 UFLP→FIP done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1206
diff changeset
169 x≤0 = subst₂ (λ j k → j o< osuc k) &iso (trans (cong (&) *iso) ord-od∅ ) (⊆→o≤ (x⊆u))
56d501cf0318 UFLP→FIP done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1206
diff changeset
170 fp00 : (b x : Ordinal) → * b ⊆ * X → Subbase (* b) x → Subbase (* X) x
56d501cf0318 UFLP→FIP done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1206
diff changeset
171 fp00 b y b<X (gi by ) = gi ( b<X by )
56d501cf0318 UFLP→FIP done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1206
diff changeset
172 fp00 b _ b<X (g∩ {y} {z} sy sz ) = g∩ (fp00 _ _ b<X sy) (fp00 _ _ b<X sz)
1174
375615f9d60f Func and Funcs
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1173
diff changeset
173 --
1237
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1236
diff changeset
174 -- then we have maximum ultra filter ( Zorn lemma )
1239
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1237
diff changeset
175 -- to debug this file, commet out the maximum filter and open import
1237
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1236
diff changeset
176 -- otherwise the check requires a minute
1174
375615f9d60f Func and Funcs
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1173
diff changeset
177 --
1211
f17d060e0bda UFLP→FIP FIP→UFLP with Zorn done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1210
diff changeset
178 maxf : {X : Ordinal} → o∅ o< X → (CSX : * X ⊆ CS TP) → (fp : fip {X} CSX) → MaximumFilter (λ x → x) (F CSX fp)
1235
d2506e861dbf almost done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1234
diff changeset
179 maxf {X} 0<X CSX fp = F→Maximum {Power P} {P} (λ x → x) (CAP P) (F CSX fp) 0<PP (N∋nc 0<X CSX fp) (proper CSX fp)
1211
f17d060e0bda UFLP→FIP FIP→UFLP with Zorn done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1210
diff changeset
180 mf : {X : Ordinal} → o∅ o< X → (CSX : * X ⊆ CS TP) → (fp : fip {X} CSX) → Filter {Power P} {P} (λ x → x)
f17d060e0bda UFLP→FIP FIP→UFLP with Zorn done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1210
diff changeset
181 mf {X} 0<X CSX fp = MaximumFilter.mf (maxf 0<X CSX fp)
f17d060e0bda UFLP→FIP FIP→UFLP with Zorn done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1210
diff changeset
182 ultraf : {X : Ordinal} → (0<X : o∅ o< X ) → (CSX : * X ⊆ CS TP) → (fp : fip {X} CSX) → ultra-filter ( mf 0<X CSX fp)
1235
d2506e861dbf almost done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1234
diff changeset
183 ultraf {X} 0<X CSX fp = F→ultra {Power P} {P} (λ x → x) (CAP P) (F CSX fp) 0<PP (N∋nc 0<X CSX fp) (proper CSX fp)
1174
375615f9d60f Func and Funcs
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1173
diff changeset
184 --
1237
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1236
diff changeset
185 -- so it has a limit as a limit of UIP
1174
375615f9d60f Func and Funcs
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1173
diff changeset
186 --
1170
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1169
diff changeset
187 limit : {X : Ordinal} → (CSX : * X ⊆ CS TP) → fip {X} CSX → Ordinal
1203
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1202
diff changeset
188 limit {X} CSX fp with trio< o∅ X
1211
f17d060e0bda UFLP→FIP FIP→UFLP with Zorn done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1210
diff changeset
189 ... | tri< 0<X ¬b ¬c = UFLP.limit ( uflp ( mf 0<X CSX fp ) (ultraf 0<X CSX fp))
f17d060e0bda UFLP→FIP FIP→UFLP with Zorn done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1210
diff changeset
190 ... | tri≈ ¬a 0=X ¬c = o∅
1203
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1202
diff changeset
191 ... | tri> ¬a ¬b c = ⊥-elim ( ¬x<0 c )
1174
375615f9d60f Func and Funcs
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1173
diff changeset
192 --
1201
kono
parents: 1200
diff changeset
193 -- the limit is an limit of entire elements of X
1174
375615f9d60f Func and Funcs
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1173
diff changeset
194 --
1170
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1169
diff changeset
195 uf01 : {X : Ordinal} (CSX : * X ⊆ CS TP) (fp : fip {X} CSX) {x : Ordinal} → odef (* X) x → odef (* x) (limit CSX fp)
1204
kono
parents: 1203
diff changeset
196 uf01 {X} CSX fp {x} xx with trio< o∅ X
1206
kono
parents: 1205
diff changeset
197 ... | tri> ¬a ¬b c = ⊥-elim ( ¬x<0 c )
1205
kono
parents: 1204
diff changeset
198 ... | tri≈ ¬a 0=X ¬c = ⊥-elim ( ¬a (subst (λ k → o∅ o< k) &iso ( ∈∅< xx )))
1237
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1236
diff changeset
199 -- 0<X limit is in * x or P \ * x
1211
f17d060e0bda UFLP→FIP FIP→UFLP with Zorn done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1210
diff changeset
200 ... | tri< 0<X ¬b ¬c with ∨L\X {P} {* x} {UFLP.limit ( uflp ( mf 0<X CSX fp ) (ultraf 0<X CSX fp))}
f17d060e0bda UFLP→FIP FIP→UFLP with Zorn done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1210
diff changeset
201 (UFLP.P∋limit ( uflp ( mf 0<X CSX fp ) (ultraf 0<X CSX fp)))
1206
kono
parents: 1205
diff changeset
202 ... | case1 lt = lt -- odef (* x) y
1211
f17d060e0bda UFLP→FIP FIP→UFLP with Zorn done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1210
diff changeset
203 ... | case2 nlxy = ⊥-elim (MaximumFilter.proper (maxf 0<X CSX fp) uf11 ) where
1237
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1236
diff changeset
204 --
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1236
diff changeset
205 -- if (* x) do not conatins a limit, P \ * x contains it, (P \ * x) is open so it is the maxf ( UFLP.is-limit )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1236
diff changeset
206 -- UFLP contains (* x) and P \ * x, it contains od∅, contradicts the proper
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1236
diff changeset
207 --
1211
f17d060e0bda UFLP→FIP FIP→UFLP with Zorn done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1210
diff changeset
208 y = UFLP.limit ( uflp ( mf 0<X CSX fp ) (ultraf 0<X CSX fp))
1207
56d501cf0318 UFLP→FIP done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1206
diff changeset
209 x⊆P : * x ⊆ P
56d501cf0318 UFLP→FIP done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1206
diff changeset
210 x⊆P = cs⊆L TP (CSX (subst (λ k → odef (* X) k) (sym &iso) xx))
1206
kono
parents: 1205
diff changeset
211 uf10 : odef (P \ * x ) y
kono
parents: 1205
diff changeset
212 uf10 = nlxy
kono
parents: 1205
diff changeset
213 uf03 : Neighbor TP y (& (P \ * x ))
1211
f17d060e0bda UFLP→FIP FIP→UFLP with Zorn done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1210
diff changeset
214 uf03 = record { u = _ ; ou = P\CS=OS TP (CSX (subst (λ k → odef (* X) k ) (sym &iso) xx))
f17d060e0bda UFLP→FIP FIP→UFLP with Zorn done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1210
diff changeset
215 ; ux = subst (λ k → odef k y) (sym *iso) uf10
1206
kono
parents: 1205
diff changeset
216 ; v⊆P = λ {z} xz → proj1 (subst(λ k → odef k z) *iso xz )
1211
f17d060e0bda UFLP→FIP FIP→UFLP with Zorn done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1210
diff changeset
217 ; u⊆v = λ x → x }
f17d060e0bda UFLP→FIP FIP→UFLP with Zorn done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1210
diff changeset
218 uf07 : * (& (* x , * x)) ⊆ * X
1207
56d501cf0318 UFLP→FIP done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1206
diff changeset
219 uf07 {y} lt with subst (λ k → odef k y) *iso lt
56d501cf0318 UFLP→FIP done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1206
diff changeset
220 ... | case1 refl = subst (λ k → odef (* X) k ) (sym &iso) xx
56d501cf0318 UFLP→FIP done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1206
diff changeset
221 ... | case2 refl = subst (λ k → odef (* X) k ) (sym &iso) xx
1211
f17d060e0bda UFLP→FIP FIP→UFLP with Zorn done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1210
diff changeset
222 uf05 : odef (filter (MaximumFilter.mf (maxf 0<X CSX fp))) x
f17d060e0bda UFLP→FIP FIP→UFLP with Zorn done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1210
diff changeset
223 uf05 = MaximumFilter.F⊆mf (maxf 0<X CSX fp) record { b = & (* x , * x) ; b⊆X = uf07
1207
56d501cf0318 UFLP→FIP done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1206
diff changeset
224 ; sb = gi (subst (λ k → odef k x) (sym *iso) (case1 (sym &iso)) ) ; u⊆P = x⊆P ; x⊆u = λ x → x }
1213
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1211
diff changeset
225 uf061 : odef (filter (MaximumFilter.mf (maxf 0<X CSX fp))) (& (* (& (P \ * x ))))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1211
diff changeset
226 uf061 = UFLP.is-limit ( uflp (mf 0<X CSX fp) (ultraf 0<X CSX fp)) {& (P \ * x)} uf03
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1211
diff changeset
227 -- uf06 (same as uf061) have yellow if zorn lemma is not imported
1211
f17d060e0bda UFLP→FIP FIP→UFLP with Zorn done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1210
diff changeset
228 uf06 : odef (filter (MaximumFilter.mf (maxf 0<X CSX fp))) (& (P \ * x ))
f17d060e0bda UFLP→FIP FIP→UFLP with Zorn done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1210
diff changeset
229 uf06 = subst (λ k → odef (filter (MaximumFilter.mf (maxf 0<X CSX fp))) k) &iso (UFLP.is-limit ( uflp (mf 0<X CSX fp) (ultraf 0<X CSX fp)) {& (P \ * x)} uf03 )
1206
kono
parents: 1205
diff changeset
230 uf13 : & ((* x) ∩ (P \ * x )) ≡ o∅
1207
56d501cf0318 UFLP→FIP done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1206
diff changeset
231 uf13 = subst₂ (λ j k → j ≡ k ) refl ord-od∅ (cong (&) ( ==→o≡ record { eq→ = uf14 ; eq← = λ {x} lt → ⊥-elim (¬x<0 lt) } ) ) where
56d501cf0318 UFLP→FIP done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1206
diff changeset
232 uf14 : {y : Ordinal} → odef (* x ∩ (P \ * x)) y → odef od∅ y
56d501cf0318 UFLP→FIP done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1206
diff changeset
233 uf14 {y} ⟪ xy , ⟪ Px , ¬xy ⟫ ⟫ = ⊥-elim ( ¬xy xy )
1206
kono
parents: 1205
diff changeset
234 uf12 : odef (Power P) (& ((* x) ∩ (P \ * x )))
1207
56d501cf0318 UFLP→FIP done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1206
diff changeset
235 uf12 z pz with subst (λ k → odef k z) *iso pz
56d501cf0318 UFLP→FIP done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1206
diff changeset
236 ... | ⟪ xz , ⟪ Pz , ¬xz ⟫ ⟫ = Pz
1211
f17d060e0bda UFLP→FIP FIP→UFLP with Zorn done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1210
diff changeset
237 uf11 : filter (MaximumFilter.mf (maxf 0<X CSX fp)) ∋ od∅
f17d060e0bda UFLP→FIP FIP→UFLP with Zorn done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1210
diff changeset
238 uf11 = subst (λ k → odef (filter (MaximumFilter.mf (maxf 0<X CSX fp))) k ) (trans uf13 (sym ord-od∅))
f17d060e0bda UFLP→FIP FIP→UFLP with Zorn done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1210
diff changeset
239 ( filter2 (MaximumFilter.mf (maxf 0<X CSX fp)) (subst (λ k → odef (filter (MaximumFilter.mf (maxf 0<X CSX fp))) k) (sym &iso) uf05) uf06 uf12 )
1142
7b924ef65373 Topology clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1136
diff changeset
240
1208
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1207
diff changeset
241 x⊆Clx : {P : HOD} (TP : Topology P) → {x : HOD} → x ⊆ P → x ⊆ Cl TP x
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1207
diff changeset
242 x⊆Clx {P} TP {x} x<p {y} xy = ⟪ x<p xy , (λ c csc x<c → x<c xy ) ⟫
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1207
diff changeset
243 P⊆Clx : {P : HOD} (TP : Topology P) → {x : HOD} → x ⊆ P → Cl TP x ⊆ P
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1207
diff changeset
244 P⊆Clx {P} TP {x} x<p {y} xy = proj1 xy
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1207
diff changeset
245
1158
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1155
diff changeset
246 FIP→UFLP : {P : HOD} (TP : Topology P) → FIP TP
1169
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1168
diff changeset
247 → (F : Filter {Power P} {P} (λ x → x)) (UF : ultra-filter F ) → UFLP {P} TP F UF
1211
f17d060e0bda UFLP→FIP FIP→UFLP with Zorn done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1210
diff changeset
248 FIP→UFLP {P} TP fip F UF = record { limit = FIP.limit fip (subst (λ k → k ⊆ CS TP) (sym *iso) CF⊆CS) ufl01
1209
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1208
diff changeset
249 ; P∋limit = ufl10 ; is-limit = ufl00 } where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1208
diff changeset
250 F∋P : odef (filter F) (& P)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1208
diff changeset
251 F∋P with ultra-filter.ultra UF {od∅} (λ z az → ⊥-elim (¬x<0 (subst (λ k → odef k z) *iso az)) ) (λ z az → proj1 (subst (λ k → odef k z) *iso az ) )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1208
diff changeset
252 ... | case1 fp = ⊥-elim ( ultra-filter.proper UF fp )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1208
diff changeset
253 ... | case2 flp = subst (λ k → odef (filter F) k) (cong (&) (==→o≡ fl20)) flp where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1208
diff changeset
254 fl20 : (P \ Ord o∅) =h= P
1211
f17d060e0bda UFLP→FIP FIP→UFLP with Zorn done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1210
diff changeset
255 fl20 = record { eq→ = λ {x} lt → proj1 lt ; eq← = λ {x} lt → ⟪ lt , (λ lt → ⊥-elim (¬x<0 lt) ) ⟫ }
1209
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1208
diff changeset
256 0<P : o∅ o< & P
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1208
diff changeset
257 0<P with trio< o∅ (& P)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1208
diff changeset
258 ... | tri< a ¬b ¬c = a
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1208
diff changeset
259 ... | tri≈ ¬a b ¬c = ⊥-elim (ultra-filter.proper UF (subst (λ k → odef (filter F) k) (trans (sym b) (sym ord-od∅)) F∋P) )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1208
diff changeset
260 ... | tri> ¬a ¬b c = ⊥-elim (¬x<0 c)
1174
375615f9d60f Func and Funcs
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1173
diff changeset
261 --
375615f9d60f Func and Funcs
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1173
diff changeset
262 -- take closure of given filter elements
375615f9d60f Func and Funcs
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1173
diff changeset
263 --
1160
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1159
diff changeset
264 CF : HOD
1188
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1187
diff changeset
265 CF = Replace (filter F) (λ x → Cl TP x )
1160
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1159
diff changeset
266 CF⊆CS : CF ⊆ CS TP
1211
f17d060e0bda UFLP→FIP FIP→UFLP with Zorn done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1210
diff changeset
267 CF⊆CS {x} record { z = z ; az = az ; x=ψz = x=ψz } = subst (λ k → odef (CS TP) k) (sym x=ψz) (CS∋Cl TP (* z))
1174
375615f9d60f Func and Funcs
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1173
diff changeset
268 --
375615f9d60f Func and Funcs
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1173
diff changeset
269 -- it is set of closed set and has FIP ( F is proper )
375615f9d60f Func and Funcs
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1173
diff changeset
270 --
1208
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1207
diff changeset
271 ufl08 : {z : Ordinal} → odef (Power P) (& (Cl TP (* z)))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1207
diff changeset
272 ufl08 {z} w zw with subst (λ k → odef k w ) *iso zw
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1207
diff changeset
273 ... | t = proj1 t
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1207
diff changeset
274 fx→px : {x : Ordinal} → odef (filter F) x → Power P ∋ * x
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1207
diff changeset
275 fx→px {x} fx z xz = f⊆L F fx _ (subst (λ k → odef k z) *iso xz )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1207
diff changeset
276 F∋sb : {x : Ordinal} → Subbase CF x → odef (filter F) x
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1207
diff changeset
277 F∋sb {x} (gi record { z = z ; az = az ; x=ψz = x=ψz }) = ufl07 where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1207
diff changeset
278 ufl09 : * z ⊆ P
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1207
diff changeset
279 ufl09 {y} zy = f⊆L F az _ zy
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1207
diff changeset
280 ufl07 : odef (filter F) x
1211
f17d060e0bda UFLP→FIP FIP→UFLP with Zorn done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1210
diff changeset
281 ufl07 = subst (λ k → odef (filter F) k) &iso ( filter1 F (subst (λ k → odef (Power P) k) (trans (sym x=ψz) (sym &iso)) ufl08 )
f17d060e0bda UFLP→FIP FIP→UFLP with Zorn done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1210
diff changeset
282 (subst (λ k → odef (filter F) k) (sym &iso) az)
1208
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1207
diff changeset
283 (subst (λ k → * z ⊆ k ) (trans (sym *iso) (sym (cong (*) x=ψz)) ) (x⊆Clx TP {* z} ufl09 ) ))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1207
diff changeset
284 F∋sb (g∩ {x} {y} sx sy) = filter2 F (subst (λ k → odef (filter F) k) (sym &iso) (F∋sb sx))
1211
f17d060e0bda UFLP→FIP FIP→UFLP with Zorn done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1210
diff changeset
285 (subst (λ k → odef (filter F) k) (sym &iso) (F∋sb sy))
f17d060e0bda UFLP→FIP FIP→UFLP with Zorn done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1210
diff changeset
286 (λ z xz → fx→px (F∋sb sx) _ (subst (λ k → odef k _) (sym *iso) (proj1 (subst (λ k → odef k z) *iso xz) )))
1187
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
287 ufl01 : {x : Ordinal} → Subbase (* (& CF)) x → o∅ o< x
1208
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1207
diff changeset
288 ufl01 {x} sb = ufl04 where
1211
f17d060e0bda UFLP→FIP FIP→UFLP with Zorn done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1210
diff changeset
289 ufl04 : o∅ o< x
f17d060e0bda UFLP→FIP FIP→UFLP with Zorn done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1210
diff changeset
290 ufl04 with trio< o∅ x
1208
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1207
diff changeset
291 ... | tri< a ¬b ¬c = a
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1207
diff changeset
292 ... | tri≈ ¬a b ¬c = ⊥-elim ( ultra-filter.proper UF (subst (λ k → odef (filter F) k) (
1211
f17d060e0bda UFLP→FIP FIP→UFLP with Zorn done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1210
diff changeset
293 begin
1208
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1207
diff changeset
294 x ≡⟨ sym b ⟩
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1207
diff changeset
295 o∅ ≡⟨ sym ord-od∅ ⟩
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1207
diff changeset
296 & od∅ ∎ ) (F∋sb (subst (λ k → Subbase k x) *iso sb )) )) where open ≡-Reasoning
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1207
diff changeset
297 ... | tri> ¬a ¬b c = ⊥-elim (¬x<0 c)
1209
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1208
diff changeset
298 ufl10 : odef P (FIP.limit fip (subst (λ k → k ⊆ CS TP) (sym *iso) CF⊆CS) ufl01)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1208
diff changeset
299 ufl10 = FIP.L∋limit fip (subst (λ k → k ⊆ CS TP) (sym *iso) CF⊆CS) ufl01 {& P} ufl11 where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1208
diff changeset
300 ufl11 : odef (* (& CF)) (& P)
1211
f17d060e0bda UFLP→FIP FIP→UFLP with Zorn done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1210
diff changeset
301 ufl11 = subst (λ k → odef k (& P)) (sym *iso) record { z = _ ; az = F∋P ; x=ψz = sym (cong (&) (trans (cong (Cl TP) *iso) (ClL TP))) }
1174
375615f9d60f Func and Funcs
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1173
diff changeset
302 --
375615f9d60f Func and Funcs
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1173
diff changeset
303 -- so we have a limit
375615f9d60f Func and Funcs
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1173
diff changeset
304 --
1170
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1169
diff changeset
305 limit : Ordinal
1211
f17d060e0bda UFLP→FIP FIP→UFLP with Zorn done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1210
diff changeset
306 limit = FIP.limit fip (subst (λ k → k ⊆ CS TP) (sym *iso) CF⊆CS) ufl01
1170
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1169
diff changeset
307 ufl02 : {y : Ordinal } → odef (* (& CF)) y → odef (* y) limit
1211
f17d060e0bda UFLP→FIP FIP→UFLP with Zorn done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1210
diff changeset
308 ufl02 = FIP.is-limit fip (subst (λ k → k ⊆ CS TP) (sym *iso) CF⊆CS) ufl01
1174
375615f9d60f Func and Funcs
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1173
diff changeset
309 --
375615f9d60f Func and Funcs
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1173
diff changeset
310 -- Neigbor of limit ⊆ Filter
375615f9d60f Func and Funcs
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1173
diff changeset
311 --
1210
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1209
diff changeset
312 -- if odef (* X) x, Cl TP x contains limit (ufl02)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1209
diff changeset
313 -- in (nei : Neighbor TP limit v) , there is an open Set u which contains the limit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1209
diff changeset
314 -- F contains u or P \ u because F is ultra
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1209
diff changeset
315 -- if F ∋ u, then F ∋ v from u ⊆ v which is a propetery of Neighbor
1211
f17d060e0bda UFLP→FIP FIP→UFLP with Zorn done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1210
diff changeset
316 -- if F ∋ P \ u, it is a closed set (Cl (P \ u) ≡ P \ u) and it does not contains the limit
1210
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1209
diff changeset
317 -- this contradicts ufl02
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1209
diff changeset
318 pp : {v : Ordinal} → (nei : Neighbor TP limit v ) → Power P ∋ (* (Neighbor.u nei))
1211
f17d060e0bda UFLP→FIP FIP→UFLP with Zorn done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1210
diff changeset
319 pp {v} record { u = u ; ou = ou ; ux = ux ; v⊆P = v⊆P ; u⊆v = u⊆v } z pz
f17d060e0bda UFLP→FIP FIP→UFLP with Zorn done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1210
diff changeset
320 = os⊆L TP (subst (λ k → odef (OS TP) k) (sym &iso) ou ) (subst (λ k → odef k z) *iso pz )
f17d060e0bda UFLP→FIP FIP→UFLP with Zorn done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1210
diff changeset
321 ufl00 : {v : Ordinal} → Neighbor TP limit v → filter F ∋ * v
f17d060e0bda UFLP→FIP FIP→UFLP with Zorn done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1210
diff changeset
322 ufl00 {v} nei with ultra-filter.ultra UF (pp nei ) (NEG P (pp nei ))
f17d060e0bda UFLP→FIP FIP→UFLP with Zorn done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1210
diff changeset
323 ... | case1 fu = subst (λ k → odef (filter F) k) &iso
f17d060e0bda UFLP→FIP FIP→UFLP with Zorn done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1210
diff changeset
324 ( filter1 F (subst (λ k → odef (Power P) k ) (sym &iso) px) fu (subst (λ k → u ⊆ k ) (sym *iso) (Neighbor.u⊆v nei))) where
f17d060e0bda UFLP→FIP FIP→UFLP with Zorn done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1210
diff changeset
325 u = * (Neighbor.u nei)
f17d060e0bda UFLP→FIP FIP→UFLP with Zorn done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1210
diff changeset
326 px : Power P ∋ * v
f17d060e0bda UFLP→FIP FIP→UFLP with Zorn done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1210
diff changeset
327 px z vz = Neighbor.v⊆P nei (subst (λ k → odef k z) *iso vz )
1210
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1209
diff changeset
328 ... | case2 nfu = ⊥-elim ( ¬P\u∋limit P\u∋limit ) where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1209
diff changeset
329 u = * (Neighbor.u nei)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1209
diff changeset
330 P\u : HOD
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1209
diff changeset
331 P\u = P \ u
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1209
diff changeset
332 P\u∋limit : odef P\u limit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1209
diff changeset
333 P\u∋limit = subst (λ k → odef k limit) *iso ( ufl02 (subst (λ k → odef k (& P\u)) (sym *iso) ufl03 )) where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1209
diff changeset
334 ufl04 : & P\u ≡ & (Cl TP (* (& P\u)))
1211
f17d060e0bda UFLP→FIP FIP→UFLP with Zorn done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1210
diff changeset
335 ufl04 = cong (&) (sym (trans (cong (Cl TP) *iso)
1210
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1209
diff changeset
336 (CS∋x→Clx=x TP (P\OS=CS TP (subst (λ k → odef (OS TP) k) (sym &iso) (Neighbor.ou nei) )))))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1209
diff changeset
337 ufl03 : odef CF (& P\u )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1209
diff changeset
338 ufl03 = record { z = _ ; az = nfu ; x=ψz = ufl04 }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1209
diff changeset
339 ¬P\u∋limit : ¬ odef P\u limit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1209
diff changeset
340 ¬P\u∋limit ⟪ Pl , nul ⟫ = nul ( Neighbor.ux nei )
1163
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1162
diff changeset
341
1124
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1123
diff changeset
342 -- product topology of compact topology is compact
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
343
1218
362e43a1477c brain damaged fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1217
diff changeset
344 import Axiom.Extensionality.Propositional
362e43a1477c brain damaged fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1217
diff changeset
345 postulate f-extensionality : { n m : Level} → Axiom.Extensionality.Propositional.Extensionality n m
362e43a1477c brain damaged fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1217
diff changeset
346 open import Relation.Binary.HeterogeneousEquality as HE using (_≅_ )
362e43a1477c brain damaged fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1217
diff changeset
347
362e43a1477c brain damaged fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1217
diff changeset
348
1142
7b924ef65373 Topology clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1136
diff changeset
349 Tychonoff : {P Q : HOD } → (TP : Topology P) → (TQ : Topology Q) → Compact TP → Compact TQ → Compact (ProductTopology TP TQ)
1158
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1155
diff changeset
350 Tychonoff {P} {Q} TP TQ CP CQ = FIP→Compact (ProductTopology TP TQ) (UFLP→FIP (ProductTopology TP TQ) uflPQ ) where
1169
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1168
diff changeset
351 uflP : (F : Filter {Power P} {P} (λ x → x)) (UF : ultra-filter F)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1168
diff changeset
352 → UFLP TP F UF
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1168
diff changeset
353 uflP F UF = FIP→UFLP TP (Compact→FIP TP CP) F UF
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1168
diff changeset
354 uflQ : (F : Filter {Power Q} {Q} (λ x → x)) (UF : ultra-filter F)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1168
diff changeset
355 → UFLP TQ F UF
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1168
diff changeset
356 uflQ F UF = FIP→UFLP TQ (Compact→FIP TQ CQ) F UF
1201
kono
parents: 1200
diff changeset
357 -- Product of UFL has a limit point
1169
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1168
diff changeset
358 uflPQ : (F : Filter {Power (ZFP P Q)} {ZFP P Q} (λ x → x)) (UF : ultra-filter F)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1168
diff changeset
359 → UFLP (ProductTopology TP TQ) F UF
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1168
diff changeset
360 uflPQ F UF = record { limit = & < * ( UFLP.limit uflp ) , * ( UFLP.limit uflq ) > ; P∋limit = Pf ; is-limit = isL } where
1213
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1211
diff changeset
361 F∋PQ : odef (filter F) (& (ZFP P Q))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1211
diff changeset
362 F∋PQ with ultra-filter.ultra UF {od∅} (λ z az → ⊥-elim (¬x<0 (subst (λ k → odef k z) *iso az)) ) (λ z az → proj1 (subst (λ k → odef k z) *iso az ) )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1211
diff changeset
363 ... | case1 fp = ⊥-elim ( ultra-filter.proper UF fp )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1211
diff changeset
364 ... | case2 flp = subst (λ k → odef (filter F) k) (cong (&) (==→o≡ fl20)) flp where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1211
diff changeset
365 fl20 : (ZFP P Q \ Ord o∅) =h= ZFP P Q
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1211
diff changeset
366 fl20 = record { eq→ = λ {x} lt → proj1 lt ; eq← = λ {x} lt → ⟪ lt , (λ lt → ⊥-elim (¬x<0 lt) ) ⟫ }
1218
362e43a1477c brain damaged fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1217
diff changeset
367 0<PQ : o∅ o< & (ZFP P Q)
362e43a1477c brain damaged fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1217
diff changeset
368 0<PQ with trio< o∅ (& (ZFP P Q))
1213
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1211
diff changeset
369 ... | tri< a ¬b ¬c = a
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1211
diff changeset
370 ... | tri≈ ¬a b ¬c = ⊥-elim (ultra-filter.proper UF (subst (λ k → odef (filter F) k) (trans (sym b) (sym ord-od∅)) F∋PQ) )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1211
diff changeset
371 ... | tri> ¬a ¬b c = ⊥-elim (¬x<0 c)
1218
362e43a1477c brain damaged fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1217
diff changeset
372 apq : HOD
362e43a1477c brain damaged fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1217
diff changeset
373 apq = ODC.minimal O (ZFP P Q) (0<P→ne 0<PQ)
362e43a1477c brain damaged fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1217
diff changeset
374 is-apq : ZFP P Q ∋ apq
362e43a1477c brain damaged fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1217
diff changeset
375 is-apq = ODC.x∋minimal O (ZFP P Q) (0<P→ne 0<PQ)
362e43a1477c brain damaged fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1217
diff changeset
376 ap : odef P ( zπ1 is-apq )
362e43a1477c brain damaged fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1217
diff changeset
377 ap = zp1 is-apq
362e43a1477c brain damaged fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1217
diff changeset
378 aq : odef Q ( zπ2 is-apq )
362e43a1477c brain damaged fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1217
diff changeset
379 aq = zp2 is-apq
1223
kono
parents: 1222
diff changeset
380 F⊆pxq : {x : HOD } → filter F ∋ x → x ⊆ ZFP P Q
kono
parents: 1222
diff changeset
381 F⊆pxq {x} fx {y} xy = f⊆L F fx y (subst (λ k → odef k y) (sym *iso) xy)
kono
parents: 1222
diff changeset
382
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
383 ---
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
384 --- FP is a P-projection of F, which is a ultra filter
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
385 ---
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
386 isP→PxQ : {x : HOD} → (x⊆P : x ⊆ P ) → ZFP x Q ⊆ ZFP P Q
1213
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1211
diff changeset
387 isP→PxQ {x} x⊆P (ab-pair p q) = ab-pair (x⊆P p) q
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
388 fx→px : {x : HOD } → filter F ∋ x → HOD
1216
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1215
diff changeset
389 fx→px {x} fx = Replace' x ( λ y xy → * (zπ1 (F⊆pxq fx xy) ))
1217
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1216
diff changeset
390 fx→px1 : {p : HOD } {q : Ordinal } → odef Q q → (fp : filter F ∋ ZFP p Q ) → fx→px fp ≡ p
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1216
diff changeset
391 fx→px1 {p} {q} qq fp = ==→o≡ record { eq→ = ty20 ; eq← = ty22 } where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1216
diff changeset
392 ty21 : {a b : Ordinal } → (pz : odef p a) → (qz : odef Q b) → ZFProduct P Q (& (* (& < * a , * b >)))
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
393 ty21 pz qz = F⊆pxq fp (subst (odef (ZFP p Q)) (sym &iso) (ab-pair pz qz ))
1217
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1216
diff changeset
394 ty32 : {a b : Ordinal } → (pz : odef p a) → (qz : odef Q b) → zπ1 (ty21 pz qz) ≡ a
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1216
diff changeset
395 ty32 {a} {b} pz qz = ty33 (ty21 pz qz) (cong (&) *iso) where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1216
diff changeset
396 ty33 : {a b x : Ordinal } ( p : ZFProduct P Q x ) → x ≡ & < * a , * b > → zπ1 p ≡ a
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1216
diff changeset
397 ty33 {a} {b} (ab-pair {c} {d} zp zq) eq with prod-≡ (subst₂ (λ j k → j ≡ k) *iso *iso (cong (*) eq))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1216
diff changeset
398 ... | ⟪ a=c , b=d ⟫ = subst₂ (λ j k → j ≡ k) &iso &iso (cong (&) a=c)
1216
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1215
diff changeset
399 ty20 : {x : Ordinal} → odef (fx→px fp) x → odef p x
1217
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1216
diff changeset
400 ty20 {x} record { z = _ ; az = ab-pair {a} {b} pz qz ; x=ψz = x=ψz } = subst (λ k → odef p k) a=x pz where
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
401 ty24 : * x ≡ * a
1216
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1215
diff changeset
402 ty24 = begin
1217
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1216
diff changeset
403 * x ≡⟨ cong (*) x=ψz ⟩
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1216
diff changeset
404 _ ≡⟨ *iso ⟩
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1216
diff changeset
405 * (zπ1 (F⊆pxq fp (subst (odef (ZFP p Q)) (sym &iso) (ab-pair pz qz)))) ≡⟨ cong (*) (ty32 pz qz) ⟩
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1216
diff changeset
406 * a ∎ where open ≡-Reasoning
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
407 a=x : a ≡ x
1217
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1216
diff changeset
408 a=x = subst₂ (λ j k → j ≡ k ) &iso &iso (cong (&) (sym ty24))
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
409 ty22 : {x : Ordinal} → odef p x → odef (fx→px fp) x
1217
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1216
diff changeset
410 ty22 {x} px = record { z = _ ; az = ab-pair px qq ; x=ψz = subst₂ (λ j k → j ≡ k) &iso refl (cong (&) ty12 ) } where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1216
diff changeset
411 ty12 : * x ≡ * (zπ1 (F⊆pxq fp (subst (odef (ZFP p Q)) (sym &iso) (ab-pair px qq ))))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1216
diff changeset
412 ty12 = begin
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1216
diff changeset
413 * x ≡⟨ sym (cong (*) (ty32 px qq )) ⟩
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1216
diff changeset
414 * (zπ1 (F⊆pxq fp (subst (odef (ZFP p Q)) (sym &iso) (ab-pair px qq )))) ∎ where open ≡-Reasoning
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
415
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
416 -- Projection of F
1213
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1211
diff changeset
417 FPSet : HOD
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1211
diff changeset
418 FPSet = Replace' (filter F) (λ x fx → Replace' x ( λ y xy → * (zπ1 (F⊆pxq fx xy) )))
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
419
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
420 -- Projection ⁻¹ F (which is in F) is in FPSet
1215
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1214
diff changeset
421 FPSet∋zpq : {q : HOD} → q ⊆ P → filter F ∋ ZFP q Q → FPSet ∋ q
1217
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1216
diff changeset
422 FPSet∋zpq {q} q⊆P fq = record { z = _ ; az = fq ; x=ψz = sym (cong (&) ty10) } where
1218
362e43a1477c brain damaged fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1217
diff changeset
423 -- brain damaged one
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
424 ty11 : {y : HOD} {xy : (* (& (ZFP q Q))) ∋ y } →
1218
362e43a1477c brain damaged fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1217
diff changeset
425 * (zπ1 ( (F⊆pxq (subst (odef (filter F)) (sym &iso) fq) xy))) ≡ * (zπ1 ( (F⊆pxq fq (subst (λ k → odef k (& y)) *iso xy) )))
362e43a1477c brain damaged fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1217
diff changeset
426 ty11 {y} {xy} = cong (λ k → * (zπ1 k)) ( HE.≅-to-≡ (∋-irr {ZFP P Q} a b )) where
362e43a1477c brain damaged fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1217
diff changeset
427 a = F⊆pxq (subst (odef (filter F)) (sym &iso) fq) xy
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
428 b = F⊆pxq fq (subst (λ k → odef k (& y)) *iso xy)
1217
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1216
diff changeset
429 ty10 : Replace' (* (& (ZFP q Q))) (λ y xy → * (zπ1 (F⊆pxq (subst (odef (filter F)) (sym &iso) fq) xy))) ≡ q
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1216
diff changeset
430 ty10 = begin
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
431 Replace' (* (& (ZFP q Q))) (λ y xy → * (zπ1 (F⊆pxq (subst (odef (filter F)) (sym &iso) fq) xy)))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
432 ≡⟨
1218
362e43a1477c brain damaged fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1217
diff changeset
433 cong (λ k → Replace' (* (& (ZFP q Q))) k ) (f-extensionality (λ y → (f-extensionality (λ xy → ty11 {y} {xy}))))
362e43a1477c brain damaged fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1217
diff changeset
434
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
435 Replace' (* (& (ZFP q Q))) (λ y xy → * (zπ1 (F⊆pxq fq (subst (λ k → odef k (& y)) *iso xy) )))
1218
362e43a1477c brain damaged fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1217
diff changeset
436 ≡⟨ Replace'-iso _ ( λ y xy → * (zπ1 (F⊆pxq fq xy) )) ⟩
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
437 Replace' (ZFP q Q) ( λ y xy → * (zπ1 (F⊆pxq fq xy) )) ≡⟨ refl ⟩
1218
362e43a1477c brain damaged fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1217
diff changeset
438 fx→px fq ≡⟨ fx→px1 aq fq ⟩
1217
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1216
diff changeset
439 q ∎ where open ≡-Reasoning
1213
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1211
diff changeset
440 FPSet⊆PP : FPSet ⊆ Power P
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1211
diff changeset
441 FPSet⊆PP {x} record { z = z ; az = fz ; x=ψz = x=ψz } w xw with subst (λ k → odef k w) (trans (cong (*) x=ψz) *iso) xw
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
442 ... | record { z = z1 ; az = az1 ; x=ψz = x=ψz1 }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
443 = subst (λ k → odef P k) (sym (trans x=ψz1 &iso))
1213
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1211
diff changeset
444 (zp1 (F⊆pxq (subst (λ k → odef (filter F) k) (sym &iso) fz) (subst (λ k → odef (* z) k) (sym &iso) az1)) )
1223
kono
parents: 1222
diff changeset
445 X=F1 : (x : Ordinal) (p : HOD) (fx : odef (filter F) x) → Set n
kono
parents: 1222
diff changeset
446 X=F1 x p fx = & p ≡ & (Replace' (* x) (λ y xy →
1222
9f955d49e162 Proj P of Filter F done
kono
parents: 1221
diff changeset
447 * (zπ1 (f⊆L F
9f955d49e162 Proj P of Filter F done
kono
parents: 1221
diff changeset
448 (subst (odef (filter F)) (sym &iso) fx)
9f955d49e162 Proj P of Filter F done
kono
parents: 1221
diff changeset
449 (& y) (subst (λ k → OD.def (HOD.od k) (& y)) (sym *iso) xy)))))
1223
kono
parents: 1222
diff changeset
450 x⊆pxq : {x : Ordinal} {p : HOD} (fx : odef (filter F) x) → X=F1 x p fx → * x ⊆ ZFP p Q
1222
9f955d49e162 Proj P of Filter F done
kono
parents: 1221
diff changeset
451 x⊆pxq {x} {p} fx x=ψz {w} xw with F⊆pxq (subst (λ k → odef (filter F) k) (sym &iso) fx) xw
9f955d49e162 Proj P of Filter F done
kono
parents: 1221
diff changeset
452 ... | ab-pair {a} {b} pw qw = ab-pair ty08 qw where
9f955d49e162 Proj P of Filter F done
kono
parents: 1221
diff changeset
453 ty21 : ZFProduct P Q (& (* (& < * a , * b >)))
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
454 ty21 = subst (λ k → ZFProduct P Q k) (cong & (sym *iso)) (ab-pair pw qw)
1222
9f955d49e162 Proj P of Filter F done
kono
parents: 1221
diff changeset
455 ty32 : ZFProduct P Q (& (* (& < * a , * b >)))
9f955d49e162 Proj P of Filter F done
kono
parents: 1221
diff changeset
456 ty32 = f⊆L F (subst (odef (filter F)) (sym &iso) fx)
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
457 (& (* (& < * a , * b >))) (subst (λ k → odef k
1222
9f955d49e162 Proj P of Filter F done
kono
parents: 1221
diff changeset
458 (& (* (& < * a , * b >)))) (sym *iso) (subst (odef (* x)) (sym &iso) xw))
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
459 ty07 : odef (* x) (& < * a , * b >)
1222
9f955d49e162 Proj P of Filter F done
kono
parents: 1221
diff changeset
460 ty07 = xw
9f955d49e162 Proj P of Filter F done
kono
parents: 1221
diff changeset
461 ty08 : odef p a
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
462 ty08 = subst (λ k → odef k a ) (subst₂ (λ j k → j ≡ k) *iso *iso (sym (cong (*) x=ψz)))
1222
9f955d49e162 Proj P of Filter F done
kono
parents: 1221
diff changeset
463 record { z = _ ; az = xw ; x=ψz = sym (trans &iso (ty33 ty32 (cong (&) *iso ))) } where
9f955d49e162 Proj P of Filter F done
kono
parents: 1221
diff changeset
464 ty33 : {a b x : Ordinal } ( p : ZFProduct P Q x ) → x ≡ & < * a , * b > → zπ1 p ≡ a
9f955d49e162 Proj P of Filter F done
kono
parents: 1221
diff changeset
465 ty33 {a} {b} (ab-pair {c} {d} zp zq) eq with prod-≡ (subst₂ (λ j k → j ≡ k) *iso *iso (cong (*) eq))
9f955d49e162 Proj P of Filter F done
kono
parents: 1221
diff changeset
466 ... | ⟪ a=c , b=d ⟫ = subst₂ (λ j k → j ≡ k) &iso &iso (cong (&) a=c)
1223
kono
parents: 1222
diff changeset
467 p⊆P : {x : Ordinal} {p : HOD} (fx : odef (filter F) x) → X=F1 x p fx → p ⊆ P
1222
9f955d49e162 Proj P of Filter F done
kono
parents: 1221
diff changeset
468 p⊆P {x} {p} fx x=ψz {w} pw with subst (λ k → odef k w) (subst₂ (λ j k → j ≡ k ) *iso *iso (cong (*) x=ψz)) pw
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
469 ... | record { z = z1 ; az = az1 ; x=ψz = x=ψz1 } = subst (λ k → odef P k) (sym (trans x=ψz1 &iso))
1222
9f955d49e162 Proj P of Filter F done
kono
parents: 1221
diff changeset
470 (zp1 (F⊆pxq (subst (λ k → odef (filter F) k) (sym &iso) fx) (subst (λ k → odef (* x) k) (sym &iso) az1 )) )
1169
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1168
diff changeset
471 FP : Filter {Power P} {P} (λ x → x)
1218
362e43a1477c brain damaged fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1217
diff changeset
472 FP = record { filter = FPSet ; f⊆L = FPSet⊆PP ; filter1 = ty01 ; filter2 = ty02 } where
1213
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1211
diff changeset
473 ty01 : {p q : HOD} → Power P ∋ q → FPSet ∋ p → p ⊆ q → FPSet ∋ q
1215
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1214
diff changeset
474 ty01 {p} {q} Pq record { z = x ; az = fx ; x=ψz = x=ψz } p⊆q = FPSet∋zpq q⊆P (ty10 ty05 ty06 )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1214
diff changeset
475 where
1222
9f955d49e162 Proj P of Filter F done
kono
parents: 1221
diff changeset
476 -- p ≡ (Replace' (* x) (λ y xy → (zπ1 (F⊆pxq (subst (odef (filter F)) (sym &iso) fx) xy))
1213
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1211
diff changeset
477 -- x = ( px , qx ) , px ⊆ q
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1211
diff changeset
478 ty03 : Power (ZFP P Q) ∋ ZFP q Q
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1211
diff changeset
479 ty03 z zpq = isP→PxQ {* (& q)} (Pq _) ( subst (λ k → odef k z ) (trans *iso (cong (λ k → ZFP k Q) (sym *iso))) zpq )
1215
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1214
diff changeset
480 q⊆P : q ⊆ P
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1214
diff changeset
481 q⊆P {w} qw = Pq _ (subst (λ k → odef k w ) (sym *iso) qw )
1213
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1211
diff changeset
482 ty05 : filter F ∋ ZFP p Q
1222
9f955d49e162 Proj P of Filter F done
kono
parents: 1221
diff changeset
483 ty05 = filter1 F (λ z wz → isP→PxQ (p⊆P fx x=ψz) (subst (λ k → odef k z) *iso wz)) (subst (λ k → odef (filter F) k) (sym &iso) fx) (x⊆pxq fx x=ψz)
1213
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1211
diff changeset
484 ty06 : ZFP p Q ⊆ ZFP q Q
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1211
diff changeset
485 ty06 (ab-pair wp wq ) = ab-pair (p⊆q wp) wq
1215
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1214
diff changeset
486 ty10 : filter F ∋ ZFP p Q → ZFP p Q ⊆ ZFP q Q → filter F ∋ ZFP q Q
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1214
diff changeset
487 ty10 fzp zp⊆zq = filter1 F ty03 fzp zp⊆zq
1218
362e43a1477c brain damaged fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1217
diff changeset
488 ty02 : {p q : HOD} → FPSet ∋ p → FPSet ∋ q → Power P ∋ (p ∩ q) → FPSet ∋ (p ∩ q)
1222
9f955d49e162 Proj P of Filter F done
kono
parents: 1221
diff changeset
489 ty02 {p} {q} record { z = zp ; az = fzp ; x=ψz = x=ψzp }
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
490 record { z = zq ; az = fzq ; x=ψz = x=ψzq } Ppq
1219
91740267e62d ZProduct
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1218
diff changeset
491 = FPSet∋zpq (λ {z} xz → Ppq z (subst (λ k → odef k z) (sym *iso) xz )) ty50 where
1220
a8253c91f630 ZFP distr
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1219
diff changeset
492 ty54 : Power (ZFP P Q) ∋ (ZFP p Q ∩ ZFP q Q)
1221
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1220
diff changeset
493 ty54 z xz = subst (λ k → ZFProduct P Q k ) (zp-iso pqz) (ab-pair pqz1 pqz2 ) where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1220
diff changeset
494 pqz : odef (ZFP (p ∩ q) Q) z
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1220
diff changeset
495 pqz = subst (λ k → odef k z ) (trans *iso (sym (proj1 ZFP∩) )) xz
1222
9f955d49e162 Proj P of Filter F done
kono
parents: 1221
diff changeset
496 pqz1 : odef P (zπ1 pqz)
9f955d49e162 Proj P of Filter F done
kono
parents: 1221
diff changeset
497 pqz1 = p⊆P fzp x=ψzp (proj1 (zp1 pqz))
9f955d49e162 Proj P of Filter F done
kono
parents: 1221
diff changeset
498 pqz2 : odef Q (zπ2 pqz)
9f955d49e162 Proj P of Filter F done
kono
parents: 1221
diff changeset
499 pqz2 = zp2 pqz
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
500 ty53 : filter F ∋ ZFP p Q
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
501 ty53 = filter1 F (λ z wz → isP→PxQ (p⊆P fzp x=ψzp)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
502 (subst (λ k → odef k z) *iso wz))
1222
9f955d49e162 Proj P of Filter F done
kono
parents: 1221
diff changeset
503 (subst (λ k → odef (filter F) k) (sym &iso) fzp ) (x⊆pxq fzp x=ψzp)
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
504 ty52 : filter F ∋ ZFP q Q
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
505 ty52 = filter1 F (λ z wz → isP→PxQ (p⊆P fzq x=ψzq)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
506 (subst (λ k → odef k z) *iso wz))
1222
9f955d49e162 Proj P of Filter F done
kono
parents: 1221
diff changeset
507 (subst (λ k → odef (filter F) k) (sym &iso) fzq ) (x⊆pxq fzq x=ψzq)
1219
91740267e62d ZProduct
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1218
diff changeset
508 ty51 : filter F ∋ ( ZFP p Q ∩ ZFP q Q )
1220
a8253c91f630 ZFP distr
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1219
diff changeset
509 ty51 = filter2 F ty53 ty52 ty54
1219
91740267e62d ZProduct
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1218
diff changeset
510 ty50 : filter F ∋ ZFP (p ∩ q) Q
1220
a8253c91f630 ZFP distr
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1219
diff changeset
511 ty50 = subst (λ k → filter F ∋ k ) (sym (proj1 ZFP∩)) ty51
1161
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1160
diff changeset
512 UFP : ultra-filter FP
1223
kono
parents: 1222
diff changeset
513 UFP = record { proper = ty61 ; ultra = ty60 } where
kono
parents: 1222
diff changeset
514 ty61 : ¬ (FPSet ∋ od∅)
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
515 ty61 record { z = z ; az = az ; x=ψz = x=ψz } = ultra-filter.proper UF ty62 where
1223
kono
parents: 1222
diff changeset
516 ty63 : {x : Ordinal} → ¬ odef (* z) x
kono
parents: 1222
diff changeset
517 ty63 {x} zx with x⊆pxq az x=ψz zx
kono
parents: 1222
diff changeset
518 ... | ab-pair xp xq = ¬x<0 xp
kono
parents: 1222
diff changeset
519 ty62 : odef (filter F) (& od∅)
kono
parents: 1222
diff changeset
520 ty62 = subst (λ k → odef (filter F) k ) (trans (sym &iso) (cong (&) (¬x∋y→x≡od∅ ty63)) ) az
kono
parents: 1222
diff changeset
521 ty60 : {p : HOD} → Power P ∋ p → Power P ∋ (P \ p) → (FPSet ∋ p) ∨ (FPSet ∋ (P \ p))
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
522 ty60 {p} Pp Pnp with ultra-filter.ultra UF {ZFP p Q}
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
523 (λ z xz → isP→PxQ (λ {x} lt → Pp _ (subst (λ k → odef k x) (sym *iso) lt)) (subst (λ k → odef k z) *iso xz))
1226
c8f5376a9623 proj2 filter F done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1225
diff changeset
524 (λ z xz → proj1 (subst (λ k → odef k z) *iso xz ))
1223
kono
parents: 1222
diff changeset
525 ... | case1 fp = case1 (FPSet∋zpq (λ {z} xz → Pp z (subst (λ k → odef k z) (sym *iso) xz )) fp )
1224
kono
parents: 1223
diff changeset
526 ... | case2 fnp = case2 (FPSet∋zpq (λ pp → proj1 pp) (subst (λ k → odef (filter F) k) (cong (&) (proj1 ZFP\Q)) fnp ))
1169
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1168
diff changeset
527 uflp : UFLP TP FP UFP
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1168
diff changeset
528 uflp = FIP→UFLP TP (Compact→FIP TP CP) FP UFP
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
529
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
530 -- FPSet is in Projection ⁻¹ F
1228
e3f20bc4fac9 last part of Tychonoff
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1227
diff changeset
531 FPSet⊆F : {x : Ordinal } → odef FPSet x → odef (filter F) (& (ZFP (* x) Q))
1233
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1232
diff changeset
532 FPSet⊆F {x} record { z = z ; az = az ; x=ψz = x=ψz } = filter1 F ty80 (subst (λ k → odef (filter F) k) (sym &iso) az) ty71 where
1231
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1230
diff changeset
533 Rx : HOD
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1230
diff changeset
534 Rx = Replace' (* z) (λ y xy → * (zπ1 (F⊆pxq (subst (odef (filter F)) (sym &iso) az) xy)))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1230
diff changeset
535 RxQ∋z : * z ⊆ ZFP Rx Q
1235
d2506e861dbf almost done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1234
diff changeset
536 RxQ∋z {w} zw = subst (λ k → ZFProduct Rx Q k ) ty70 ( ab-pair record { z = w ; az = zw ; x=ψz = refl } (zp2 b )) where
1232
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1231
diff changeset
537 a = F⊆pxq (subst (odef (filter F)) (sym &iso) az) (subst (odef (* z)) (sym &iso) zw)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1231
diff changeset
538 b = subst (λ k → odef (ZFP P Q) k ) (sym &iso) ( f⊆L F az w zw )
1235
d2506e861dbf almost done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1234
diff changeset
539 ty73 : & (* (zπ1 a)) ≡ zπ1 b
d2506e861dbf almost done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1234
diff changeset
540 ty73 = begin
d2506e861dbf almost done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1234
diff changeset
541 & (* (zπ1 a)) ≡⟨ &iso ⟩
d2506e861dbf almost done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1234
diff changeset
542 zπ1 a ≡⟨ cong zπ1 (HE.≅-to-≡ (∋-irr {ZFP _ _ } a b)) ⟩
d2506e861dbf almost done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1234
diff changeset
543 zπ1 b ∎ where open ≡-Reasoning
d2506e861dbf almost done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1234
diff changeset
544 ty70 : & < * (& (* (zπ1 a))) , * (zπ2 b) > ≡ w
d2506e861dbf almost done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1234
diff changeset
545 ty70 with zp-iso (subst (λ k → odef (ZFP P Q) k) (sym &iso) (f⊆L F az _ zw ))
d2506e861dbf almost done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1234
diff changeset
546 ... | eq = trans (cong₂ (λ j k → & < * j , k > ) ty73 refl ) (trans eq &iso )
1231
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1230
diff changeset
547 ty71 : * z ⊆ ZFP (* x) Q
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1230
diff changeset
548 ty71 = subst (λ k → * z ⊆ ZFP k Q) ty72 RxQ∋z where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1230
diff changeset
549 ty72 : Rx ≡ * x
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1230
diff changeset
550 ty72 = begin
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1230
diff changeset
551 Rx ≡⟨ sym *iso ⟩
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1230
diff changeset
552 * (& Rx) ≡⟨ cong (*) (sym x=ψz ) ⟩
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1230
diff changeset
553 * x ∎ where open ≡-Reasoning
1233
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1232
diff changeset
554 ty80 : Power (ZFP P Q) ∋ ZFP (* x) Q
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1232
diff changeset
555 ty80 y yx = isP→PxQ ty81 (subst (λ k → odef k y ) *iso yx ) where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1232
diff changeset
556 ty81 : * x ⊆ P
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1232
diff changeset
557 ty81 {w} xw with subst (λ k → odef k w) (trans (cong (*) x=ψz ) *iso ) xw
1235
d2506e861dbf almost done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1234
diff changeset
558 ... | record { z = z1 ; az = az1 ; x=ψz = x=ψz1 } = subst (λ k → odef P k) (sym ty84) ty87 where
d2506e861dbf almost done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1234
diff changeset
559 a = f⊆L F (subst (odef (filter F)) (sym &iso) az) (& (* z1))
d2506e861dbf almost done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1234
diff changeset
560 (subst (λ k → odef k (& (* z1))) (sym *iso) (subst (odef (* z)) (sym &iso) az1))
d2506e861dbf almost done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1234
diff changeset
561 b = subst (λ k → odef (ZFP P Q) k ) (sym &iso) (f⊆L F az _ az1 )
d2506e861dbf almost done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1234
diff changeset
562 ty87 : odef P (zπ1 b)
d2506e861dbf almost done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1234
diff changeset
563 ty87 = zp1 b
d2506e861dbf almost done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1234
diff changeset
564 ty84 : w ≡ (zπ1 b)
d2506e861dbf almost done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1234
diff changeset
565 ty84 = begin
d2506e861dbf almost done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1234
diff changeset
566 w ≡⟨ trans x=ψz1 &iso ⟩
d2506e861dbf almost done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1234
diff changeset
567 zπ1 a ≡⟨ cong zπ1 (HE.≅-to-≡ (∋-irr {ZFP _ _ } a b )) ⟩
d2506e861dbf almost done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1234
diff changeset
568 zπ1 b ∎ where open ≡-Reasoning
1154
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1153
diff changeset
569
1227
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1226
diff changeset
570 -- copy and pasted, sorry
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1226
diff changeset
571 --
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
572 isQ→PxQ : {x : HOD} → (x⊆Q : x ⊆ Q ) → ZFP P x ⊆ ZFP P Q
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
573 isQ→PxQ {x} x⊆Q (ab-pair p q) = ab-pair p (x⊆Q q)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
574 fx→qx : {x : HOD } → filter F ∋ x → HOD
1225
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
575 fx→qx {x} fx = Replace' x ( λ y xy → * (zπ2 (F⊆pxq fx xy) ))
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
576 fx→qx1 : {q : HOD } {p : Ordinal } → odef P p → (fq : filter F ∋ ZFP P q ) → fx→qx fq ≡ q
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
577 fx→qx1 {q} {p} qq fq = ==→o≡ record { eq→ = ty20 ; eq← = ty22 } where
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
578 ty21 : {a b : Ordinal } → (qz : odef q b) → (pz : odef P a) → ZFProduct P Q (& (* (& < * a , * b >)))
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
579 ty21 qz pz = F⊆pxq fq (subst (odef (ZFP P q)) (sym &iso) (ab-pair pz qz ))
1225
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
580 ty32 : {a b : Ordinal } → (qz : odef q b) → (pz : odef P a) → zπ2 (ty21 qz pz) ≡ b
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
581 ty32 {a} {b} pz qz = ty33 (ty21 pz qz) (cong (&) *iso) where
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
582 ty33 : {a b x : Ordinal } ( q : ZFProduct P Q x ) → x ≡ & < * a , * b > → zπ2 q ≡ b
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
583 ty33 {a} {b} (ab-pair {c} {d} zp zq) eq with prod-≡ (subst₂ (λ j k → j ≡ k) *iso *iso (cong (*) eq))
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
584 ... | ⟪ a=c , b=d ⟫ = subst₂ (λ j k → j ≡ k) &iso &iso (cong (&) b=d)
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
585 ty20 : {x : Ordinal} → odef (fx→qx fq) x → odef q x
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
586 ty20 {x} record { z = _ ; az = ab-pair {a} {b} pz qz ; x=ψz = x=ψz } = subst (λ k → odef q k) b=x qz where
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
587 ty24 : * x ≡ * b
1225
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
588 ty24 = begin
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
589 * x ≡⟨ cong (*) x=ψz ⟩
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
590 _ ≡⟨ *iso ⟩
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
591 * (zπ2 (F⊆pxq fq (subst (odef (ZFP P q)) (sym &iso) (ab-pair pz qz)))) ≡⟨ cong (*) (ty32 qz pz) ⟩
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
592 * b ∎ where open ≡-Reasoning
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
593 b=x : b ≡ x
1225
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
594 b=x = subst₂ (λ j k → j ≡ k ) &iso &iso (cong (&) (sym ty24))
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
595 ty22 : {x : Ordinal} → odef q x → odef (fx→qx fq) x
1226
c8f5376a9623 proj2 filter F done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1225
diff changeset
596 ty22 {x} qx = record { z = _ ; az = ab-pair qq qx ; x=ψz = subst₂ (λ j k → j ≡ k) &iso refl (cong (&) ty12 ) } where
1225
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
597 ty12 : * x ≡ * (zπ2 (F⊆pxq fq (subst (odef (ZFP P q)) (sym &iso) (ab-pair qq qx ))))
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
598 ty12 = begin
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
599 * x ≡⟨ sym (cong (*) (ty32 qx qq )) ⟩
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
600 * (zπ2 (F⊆pxq fq (subst (odef (ZFP P q)) (sym &iso) (ab-pair qq qx )))) ∎ where open ≡-Reasoning
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
601 FQSet : HOD
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
602 FQSet = Replace' (filter F) (λ x fx → Replace' x ( λ y xy → * (zπ2 (F⊆pxq fx xy) )))
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
603 FQSet∋zpq : {q : HOD} → q ⊆ Q → filter F ∋ ZFP P q → FQSet ∋ q
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
604 FQSet∋zpq {q} q⊆P fq = record { z = _ ; az = fq ; x=ψz = sym (cong (&) ty10) } where
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
605 -- brain damaged one
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
606 ty11 : {y : HOD} {xy : (* (& (ZFP P q ))) ∋ y } →
1225
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
607 * (zπ2 ( (F⊆pxq (subst (odef (filter F)) (sym &iso) fq) xy))) ≡ * (zπ2 ( (F⊆pxq fq (subst (λ k → odef k (& y)) *iso xy) )))
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
608 ty11 {y} {xy} = cong (λ k → * (zπ2 k)) ( HE.≅-to-≡ (∋-irr {ZFP P Q} a b )) where
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
609 a = F⊆pxq (subst (odef (filter F)) (sym &iso) fq) xy
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
610 b = F⊆pxq fq (subst (λ k → odef k (& y)) *iso xy)
1225
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
611 ty10 : Replace' (* (& (ZFP P q ))) (λ y xy → * (zπ2 (F⊆pxq (subst (odef (filter F)) (sym &iso) fq) xy))) ≡ q
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
612 ty10 = begin
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
613 Replace' (* (& (ZFP P q))) (λ y xy → * (zπ2 (F⊆pxq (subst (odef (filter F)) (sym &iso) fq) xy)))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
614 ≡⟨
1225
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
615 cong (λ k → Replace' (* (& (ZFP P q ))) k ) (f-extensionality (λ y → (f-extensionality (λ xy → ty11 {y} {xy}))))
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
616
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
617 Replace' (* (& (ZFP P q))) (λ y xy → * (zπ2 (F⊆pxq fq (subst (λ k → odef k (& y)) *iso xy) )))
1225
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
618 ≡⟨ Replace'-iso _ ( λ y xy → * (zπ2 (F⊆pxq fq xy) )) ⟩
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
619 Replace' (ZFP P q ) ( λ y xy → * (zπ2 (F⊆pxq fq xy) )) ≡⟨ refl ⟩
1226
c8f5376a9623 proj2 filter F done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1225
diff changeset
620 fx→qx fq ≡⟨ fx→qx1 ap fq ⟩
1225
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
621 q ∎ where open ≡-Reasoning
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
622 FQSet⊆PP : FQSet ⊆ Power Q
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
623 FQSet⊆PP {x} record { z = z ; az = fz ; x=ψz = x=ψz } w xw with subst (λ k → odef k w) (trans (cong (*) x=ψz) *iso) xw
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
624 ... | record { z = z1 ; az = az1 ; x=ψz = x=ψz1 }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
625 = subst (λ k → odef Q k) (sym (trans x=ψz1 &iso))
1225
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
626 (zp2 (F⊆pxq (subst (λ k → odef (filter F) k) (sym &iso) fz) (subst (λ k → odef (* z) k) (sym &iso) az1)) )
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
627 X=F2 : (x : Ordinal) (q : HOD) (fx : odef (filter F) x) → Set n
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
628 X=F2 x q fx = & q ≡ & (Replace' (* x) (λ y xy →
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
629 * (zπ2 (f⊆L F
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
630 (subst (odef (filter F)) (sym &iso) fx)
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
631 (& y) (subst (λ k → OD.def (HOD.od k) (& y)) (sym *iso) xy)))))
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
632 x⊆qxq : {x : Ordinal} {q : HOD} (fx : odef (filter F) x) → X=F2 x q fx → * x ⊆ ZFP P q
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
633 x⊆qxq {x} {p} fx x=ψz {w} xw with F⊆pxq (subst (λ k → odef (filter F) k) (sym &iso) fx) xw
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
634 ... | ab-pair {a} {b} pw qw = ab-pair pw ty08 where
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
635 ty21 : ZFProduct P Q (& (* (& < * a , * b >)))
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
636 ty21 = subst (λ k → ZFProduct P Q k) (cong & (sym *iso)) (ab-pair pw qw)
1225
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
637 ty32 : ZFProduct P Q (& (* (& < * a , * b >)))
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
638 ty32 = f⊆L F (subst (odef (filter F)) (sym &iso) fx)
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
639 (& (* (& < * a , * b >))) (subst (λ k → odef k
1225
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
640 (& (* (& < * a , * b >)))) (sym *iso) (subst (odef (* x)) (sym &iso) xw))
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
641 ty07 : odef (* x) (& < * a , * b >)
1225
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
642 ty07 = xw
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
643 ty08 : odef p b
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
644 ty08 = subst (λ k → odef k b ) (subst₂ (λ j k → j ≡ k) *iso *iso (sym (cong (*) x=ψz)))
1225
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
645 record { z = _ ; az = xw ; x=ψz = sym (trans &iso (ty33 ty32 (cong (&) *iso ))) } where
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
646 ty33 : {a b x : Ordinal } ( p : ZFProduct P Q x ) → x ≡ & < * a , * b > → zπ2 p ≡ b
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
647 ty33 {a} {b} (ab-pair {c} {d} zp zq) eq with prod-≡ (subst₂ (λ j k → j ≡ k) *iso *iso (cong (*) eq))
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
648 ... | ⟪ a=c , b=d ⟫ = subst₂ (λ j k → j ≡ k) &iso &iso (cong (&) b=d)
1226
c8f5376a9623 proj2 filter F done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1225
diff changeset
649 q⊆Q : {x : Ordinal} {p : HOD} (fx : odef (filter F) x) → X=F2 x p fx → p ⊆ Q
1225
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
650 q⊆Q {x} {p} fx x=ψz {w} pw with subst (λ k → odef k w) (subst₂ (λ j k → j ≡ k ) *iso *iso (cong (*) x=ψz)) pw
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
651 ... | record { z = z1 ; az = az1 ; x=ψz = x=ψz1 } = subst (λ k → odef Q k) (sym (trans x=ψz1 &iso))
1226
c8f5376a9623 proj2 filter F done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1225
diff changeset
652 (zp2 (F⊆pxq (subst (λ k → odef (filter F) k) (sym &iso) fx) (subst (λ k → odef (* x) k) (sym &iso) az1 )) )
1169
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1168
diff changeset
653 FQ : Filter {Power Q} {Q} (λ x → x)
1225
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
654 FQ = record { filter = FQSet ; f⊆L = FQSet⊆PP ; filter1 = ty01 ; filter2 = ty02 } where
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
655 ty01 : {p q : HOD} → Power Q ∋ q → FQSet ∋ p → p ⊆ q → FQSet ∋ q
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
656 ty01 {p} {q} Pq record { z = x ; az = fx ; x=ψz = x=ψz } p⊆q = FQSet∋zpq q⊆P (ty10 ty05 ty06 )
1225
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
657 where
1226
c8f5376a9623 proj2 filter F done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1225
diff changeset
658 -- p ≡ (Replace' (* x) (λ y xy → (zπ2 (F⊆qxq (subst (odef (filter F)) (sym &iso) fx) xy))
c8f5376a9623 proj2 filter F done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1225
diff changeset
659 -- x = ( px , qx ) , qx ⊆ q
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
660 ty03 : Power (ZFP P Q) ∋ ZFP P q
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
661 ty03 z zpq = isQ→PxQ {* (& q)} (Pq _) ( subst (λ k → odef k z ) (trans *iso (cong (λ k → ZFP P k ) (sym *iso))) zpq )
1225
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
662 q⊆P : q ⊆ Q
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
663 q⊆P {w} qw = Pq _ (subst (λ k → odef k w ) (sym *iso) qw )
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
664 ty05 : filter F ∋ ZFP P p
1226
c8f5376a9623 proj2 filter F done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1225
diff changeset
665 ty05 = filter1 F (λ z wz → isQ→PxQ (q⊆Q fx x=ψz) (subst (λ k → odef k z) *iso wz)) (subst (λ k → odef (filter F) k) (sym &iso) fx) (x⊆qxq fx x=ψz)
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
666 ty06 : ZFP P p ⊆ ZFP P q
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
667 ty06 (ab-pair wp wq ) = ab-pair wp (p⊆q wq)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
668 ty10 : filter F ∋ ZFP P p → ZFP P p ⊆ ZFP P q → filter F ∋ ZFP P q
1225
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
669 ty10 fzp zp⊆zq = filter1 F ty03 fzp zp⊆zq
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
670 ty02 : {p q : HOD} → FQSet ∋ p → FQSet ∋ q → Power Q ∋ (p ∩ q) → FQSet ∋ (p ∩ q)
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
671 ty02 {p} {q} record { z = zp ; az = fzp ; x=ψz = x=ψzp }
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
672 record { z = zq ; az = fzq ; x=ψz = x=ψzq } Ppq
1226
c8f5376a9623 proj2 filter F done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1225
diff changeset
673 = FQSet∋zpq (λ {z} xz → Ppq z (subst (λ k → odef k z) (sym *iso) xz )) ty50 where
c8f5376a9623 proj2 filter F done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1225
diff changeset
674 ty54 : Power (ZFP P Q) ∋ (ZFP P p ∩ ZFP P q )
1225
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
675 ty54 z xz = subst (λ k → ZFProduct P Q k ) (zp-iso pqz) (ab-pair pqz1 pqz2 ) where
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
676 pqz : odef (ZFP P (p ∩ q) ) z
1226
c8f5376a9623 proj2 filter F done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1225
diff changeset
677 pqz = subst (λ k → odef k z ) (trans *iso (sym (proj2 ZFP∩) )) xz
1225
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
678 pqz1 : odef P (zπ1 pqz)
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
679 pqz1 = zp1 pqz
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
680 pqz2 : odef Q (zπ2 pqz)
1226
c8f5376a9623 proj2 filter F done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1225
diff changeset
681 pqz2 = q⊆Q fzp x=ψzp (proj1 (zp2 pqz))
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
682 ty53 : filter F ∋ ZFP P p
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
683 ty53 = filter1 F (λ z wz → isQ→PxQ (q⊆Q fzp x=ψzp)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
684 (subst (λ k → odef k z) *iso wz))
1226
c8f5376a9623 proj2 filter F done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1225
diff changeset
685 (subst (λ k → odef (filter F) k) (sym &iso) fzp ) (x⊆qxq fzp x=ψzp)
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
686 ty52 : filter F ∋ ZFP P q
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
687 ty52 = filter1 F (λ z wz → isQ→PxQ (q⊆Q fzq x=ψzq)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
688 (subst (λ k → odef k z) *iso wz))
1226
c8f5376a9623 proj2 filter F done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1225
diff changeset
689 (subst (λ k → odef (filter F) k) (sym &iso) fzq ) (x⊆qxq fzq x=ψzq)
c8f5376a9623 proj2 filter F done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1225
diff changeset
690 ty51 : filter F ∋ ( ZFP P p ∩ ZFP P q )
c8f5376a9623 proj2 filter F done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1225
diff changeset
691 ty51 = filter2 F ty53 ty52 ty54
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
692 ty50 : filter F ∋ ZFP P (p ∩ q)
1226
c8f5376a9623 proj2 filter F done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1225
diff changeset
693 ty50 = subst (λ k → filter F ∋ k ) (sym (proj2 ZFP∩)) ty51
1166
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1165
diff changeset
694 UFQ : ultra-filter FQ
1225
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
695 UFQ = record { proper = ty61 ; ultra = ty60 } where
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
696 ty61 : ¬ (FQSet ∋ od∅)
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
697 ty61 record { z = z ; az = az ; x=ψz = x=ψz } = ultra-filter.proper UF ty62 where
1225
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
698 ty63 : {x : Ordinal} → ¬ odef (* z) x
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
699 ty63 {x} zx with x⊆qxq az x=ψz zx
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
700 ... | ab-pair xp xq = ¬x<0 xq
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
701 ty62 : odef (filter F) (& od∅)
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
702 ty62 = subst (λ k → odef (filter F) k ) (trans (sym &iso) (cong (&) (¬x∋y→x≡od∅ ty63)) ) az
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
703 ty60 : {p : HOD} → Power Q ∋ p → Power Q ∋ (Q \ p) → (FQSet ∋ p) ∨ (FQSet ∋ (Q \ p))
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
704 ty60 {q} Pp Pnp with ultra-filter.ultra UF {ZFP P q}
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
705 (λ z xz → isQ→PxQ (λ {x} lt → Pp _ (subst (λ k → odef k x) (sym *iso) lt)) (subst (λ k → odef k z) *iso xz))
1226
c8f5376a9623 proj2 filter F done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1225
diff changeset
706 (λ z xz → proj1 (subst (λ k → odef k z) *iso xz ))
1225
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
707 ... | case1 fq = case1 (FQSet∋zpq (λ {z} xz → Pp z (subst (λ k → odef k z) (sym *iso) xz )) fq )
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
708 ... | case2 fnp = case2 (FQSet∋zpq (λ pp → proj1 pp) (subst (λ k → odef (filter F) k) (cong (&) (proj2 ZFP\Q)) fnp ))
5c4a088ae95b Proj2 of F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1224
diff changeset
709
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
710
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
711 -- FQSet is in Projection ⁻¹ F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
712 FQSet⊆F : {x : Ordinal } → odef FQSet x → odef (filter F) (& (ZFP P (* x) ))
1236
59e927672b80 Tyconoff done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1235
diff changeset
713 FQSet⊆F {x} record { z = z ; az = az ; x=ψz = x=ψz } = filter1 F ty80 (subst (λ k → odef (filter F) k) (sym &iso) az) ty71 where
59e927672b80 Tyconoff done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1235
diff changeset
714 Rx : HOD
59e927672b80 Tyconoff done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1235
diff changeset
715 Rx = Replace' (* z) (λ y xy → * (zπ2 (F⊆pxq (subst (odef (filter F)) (sym &iso) az) xy)))
59e927672b80 Tyconoff done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1235
diff changeset
716 PxRx∋z : * z ⊆ ZFP P Rx
59e927672b80 Tyconoff done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1235
diff changeset
717 PxRx∋z {w} zw = subst (λ k → ZFProduct P Rx k ) ty70 ( ab-pair (zp1 b) record { z = w ; az = zw ; x=ψz = refl } ) where
59e927672b80 Tyconoff done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1235
diff changeset
718 a = F⊆pxq (subst (odef (filter F)) (sym &iso) az) (subst (odef (* z)) (sym &iso) zw)
59e927672b80 Tyconoff done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1235
diff changeset
719 b = subst (λ k → odef (ZFP P Q) k ) (sym &iso) ( f⊆L F az w zw )
59e927672b80 Tyconoff done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1235
diff changeset
720 ty73 : & (* (zπ2 a)) ≡ zπ2 b
59e927672b80 Tyconoff done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1235
diff changeset
721 ty73 = begin
59e927672b80 Tyconoff done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1235
diff changeset
722 & (* (zπ2 a)) ≡⟨ &iso ⟩
59e927672b80 Tyconoff done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1235
diff changeset
723 zπ2 a ≡⟨ cong zπ2 (HE.≅-to-≡ (∋-irr {ZFP _ _ } a b)) ⟩
59e927672b80 Tyconoff done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1235
diff changeset
724 zπ2 b ∎ where open ≡-Reasoning
59e927672b80 Tyconoff done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1235
diff changeset
725 ty70 : & < * (zπ1 b) , * (& (* (zπ2 a))) > ≡ w
59e927672b80 Tyconoff done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1235
diff changeset
726 ty70 with zp-iso (subst (λ k → odef (ZFP P Q) k) (sym &iso) (f⊆L F az _ zw ))
59e927672b80 Tyconoff done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1235
diff changeset
727 ... | eq = trans (cong₂ (λ j k → & < j , * k > ) refl ty73 ) (trans eq &iso )
59e927672b80 Tyconoff done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1235
diff changeset
728 ty71 : * z ⊆ ZFP P (* x)
59e927672b80 Tyconoff done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1235
diff changeset
729 ty71 = subst (λ k → * z ⊆ ZFP P k ) ty72 PxRx∋z where
59e927672b80 Tyconoff done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1235
diff changeset
730 ty72 : Rx ≡ * x
59e927672b80 Tyconoff done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1235
diff changeset
731 ty72 = begin
59e927672b80 Tyconoff done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1235
diff changeset
732 Rx ≡⟨ sym *iso ⟩
59e927672b80 Tyconoff done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1235
diff changeset
733 * (& Rx) ≡⟨ cong (*) (sym x=ψz ) ⟩
59e927672b80 Tyconoff done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1235
diff changeset
734 * x ∎ where open ≡-Reasoning
59e927672b80 Tyconoff done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1235
diff changeset
735 ty80 : Power (ZFP P Q) ∋ ZFP P (* x)
59e927672b80 Tyconoff done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1235
diff changeset
736 ty80 y yx = isQ→PxQ ty81 (subst (λ k → odef k y ) *iso yx ) where
59e927672b80 Tyconoff done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1235
diff changeset
737 ty81 : * x ⊆ Q
59e927672b80 Tyconoff done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1235
diff changeset
738 ty81 {w} xw with subst (λ k → odef k w) (trans (cong (*) x=ψz ) *iso ) xw
59e927672b80 Tyconoff done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1235
diff changeset
739 ... | record { z = z1 ; az = az1 ; x=ψz = x=ψz1 } = subst (λ k → odef Q k) (sym ty84) ty87 where
59e927672b80 Tyconoff done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1235
diff changeset
740 a = f⊆L F (subst (odef (filter F)) (sym &iso) az) (& (* z1))
59e927672b80 Tyconoff done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1235
diff changeset
741 (subst (λ k → odef k (& (* z1))) (sym *iso) (subst (odef (* z)) (sym &iso) az1))
59e927672b80 Tyconoff done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1235
diff changeset
742 b = subst (λ k → odef (ZFP P Q) k ) (sym &iso) (f⊆L F az _ az1 )
59e927672b80 Tyconoff done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1235
diff changeset
743 ty87 : odef Q (zπ2 b)
59e927672b80 Tyconoff done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1235
diff changeset
744 ty87 = zp2 b
59e927672b80 Tyconoff done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1235
diff changeset
745 ty84 : w ≡ (zπ2 b)
59e927672b80 Tyconoff done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1235
diff changeset
746 ty84 = begin
59e927672b80 Tyconoff done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1235
diff changeset
747 w ≡⟨ trans x=ψz1 &iso ⟩
59e927672b80 Tyconoff done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1235
diff changeset
748 zπ2 a ≡⟨ cong zπ2 (HE.≅-to-≡ (∋-irr {ZFP _ _ } a b )) ⟩
59e927672b80 Tyconoff done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1235
diff changeset
749 zπ2 b ∎ where open ≡-Reasoning
59e927672b80 Tyconoff done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1235
diff changeset
750
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
751
1169
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1168
diff changeset
752 uflq : UFLP TQ FQ UFQ
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1168
diff changeset
753 uflq = FIP→UFLP TQ (Compact→FIP TQ CQ) FQ UFQ
1154
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1153
diff changeset
754
1166
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1165
diff changeset
755 Pf : odef (ZFP P Q) (& < * (UFLP.limit uflp) , * (UFLP.limit uflq) >)
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
756 Pf = ab-pair (UFLP.P∋limit uflp) (UFLP.P∋limit uflq)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
757
1211
f17d060e0bda UFLP→FIP FIP→UFLP with Zorn done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1210
diff changeset
758 isL : {v : Ordinal} → Neighbor (ProductTopology TP TQ) (& < * (UFLP.limit uflp) , * (UFLP.limit uflq) >) v → filter F ∋ * v
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
759 isL {v} nei = filter1 F (λ z xz → Neighbor.v⊆P nei (subst (λ k → odef k z) *iso xz))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
760 (subst (λ k → odef (filter F) k) (sym &iso) (F∋base pqb b∋l )) bpq⊆v where
1228
e3f20bc4fac9 last part of Tychonoff
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1227
diff changeset
761 --
e3f20bc4fac9 last part of Tychonoff
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1227
diff changeset
762 -- Product Topolgy's open set contains a subbase which is an element of ZPF p Q or ZPF P q
e3f20bc4fac9 last part of Tychonoff
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1227
diff changeset
763 -- Neighbor of limit contains an open set which conatins a limit
e3f20bc4fac9 last part of Tychonoff
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1227
diff changeset
764 -- every point of an open set is covered by a subbase
e3f20bc4fac9 last part of Tychonoff
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1227
diff changeset
765 -- so there is a subbase which contains a limit, the subbase is an element of projection of a filter (P or Q)
e3f20bc4fac9 last part of Tychonoff
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1227
diff changeset
766 TPQ = ProductTopology TP TQ
e3f20bc4fac9 last part of Tychonoff
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1227
diff changeset
767 lim = & < * (UFLP.limit uflp) , * (UFLP.limit uflq) >
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
768 bpq : Base (ZFP P Q) (pbase TP TQ) (Neighbor.u nei) (& < * (UFLP.limit uflp) , * (UFLP.limit uflq) >)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
769 bpq = Neighbor.ou nei (Neighbor.ux nei)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
770 b∋l : odef (* (Base.b bpq)) lim
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
771 b∋l = Base.bx bpq
1172
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1171
diff changeset
772 pqb : Subbase (pbase TP TQ) (Base.b bpq )
1211
f17d060e0bda UFLP→FIP FIP→UFLP with Zorn done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1210
diff changeset
773 pqb = Base.sb bpq
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
774 pqb⊆opq : * (Base.b bpq) ⊆ * ( Neighbor.u nei )
1228
e3f20bc4fac9 last part of Tychonoff
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1227
diff changeset
775 bpq⊆v : * (Base.b bpq) ⊆ * v
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
776 bpq⊆v {x} bx = Neighbor.u⊆v nei (pqb⊆opq bx)
1173
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1172
diff changeset
777 pqb⊆opq = Base.b⊆u bpq
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
778 F∋base : {b : Ordinal } → Subbase (pbase TP TQ) b → odef (* b) lim → odef (filter F) b
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
779 F∋base {b} (gi (case1 px)) bl = subst (λ k → odef (filter F) k) (sym (BaseP.prod px)) f∋b where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
780 --
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
781 -- subbase of product topology which includes lim is in FP, so in F
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
782 --
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
783 isl00 : odef (ZFP (* (BaseP.p px)) Q) lim
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
784 isl00 = subst (λ k → odef k lim ) (trans (cong (*) (BaseP.prod px)) *iso ) bl
1228
e3f20bc4fac9 last part of Tychonoff
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1227
diff changeset
785 px∋limit : odef (* (BaseP.p px)) (UFLP.limit uflp)
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
786 px∋limit = isl01 isl00 refl where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
787 isl01 : {x : Ordinal } → odef (ZFP (* (BaseP.p px)) Q) x → x ≡ lim → odef (* (BaseP.p px)) (UFLP.limit uflp)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
788 isl01 (ab-pair {a} {b} bx qx) ab=lim = subst (λ k → odef (* (BaseP.p px)) k) a=lim bx where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
789 a=lim : a ≡ UFLP.limit uflp
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
790 a=lim = subst₂ (λ j k → j ≡ k ) &iso &iso (cong (&) (proj1 ( prod-≡ (subst₂ (λ j k → j ≡ k ) *iso *iso (cong (*) ab=lim) ) )))
1228
e3f20bc4fac9 last part of Tychonoff
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1227
diff changeset
791 fp∋b : filter FP ∋ * (BaseP.p px)
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
792 fp∋b = UFLP.is-limit uflp record { u = _ ; ou = BaseP.op px ; ux = px∋limit
1228
e3f20bc4fac9 last part of Tychonoff
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1227
diff changeset
793 ; v⊆P = λ {x} lt → os⊆L TP (subst (λ k → odef (OS TP) k) (sym &iso) (BaseP.op px)) lt ; u⊆v = λ x → x }
e3f20bc4fac9 last part of Tychonoff
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1227
diff changeset
794 f∋b : odef (filter F) (& (ZFP (* (BaseP.p px)) Q))
e3f20bc4fac9 last part of Tychonoff
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1227
diff changeset
795 f∋b = FPSet⊆F (subst (λ k → odef (filter FP) k ) &iso fp∋b )
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
796 F∋base {b} (gi (case2 qx)) bl = subst (λ k → odef (filter F) k) (sym (BaseQ.prod qx)) f∋b where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
797 isl00 : odef (ZFP P (* (BaseQ.q qx))) lim
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
798 isl00 = subst (λ k → odef k lim ) (trans (cong (*) (BaseQ.prod qx)) *iso ) bl
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
799 qx∋limit : odef (* (BaseQ.q qx)) (UFLP.limit uflq)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
800 qx∋limit = isl01 isl00 refl where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
801 isl01 : {x : Ordinal } → odef (ZFP P (* (BaseQ.q qx)) ) x → x ≡ lim → odef (* (BaseQ.q qx)) (UFLP.limit uflq)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
802 isl01 (ab-pair {a} {b} px bx) ab=lim = subst (λ k → odef (* (BaseQ.q qx)) k) b=lim bx where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
803 b=lim : b ≡ UFLP.limit uflq
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
804 b=lim = subst₂ (λ j k → j ≡ k ) &iso &iso (cong (&) (proj2 ( prod-≡ (subst₂ (λ j k → j ≡ k ) *iso *iso (cong (*) ab=lim) ) )))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
805 fp∋b : filter FQ ∋ * (BaseQ.q qx)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
806 fp∋b = UFLP.is-limit uflq record { u = _ ; ou = BaseQ.oq qx ; ux = qx∋limit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
807 ; v⊆P = λ {x} lt → os⊆L TQ (subst (λ k → odef (OS TQ) k) (sym &iso) (BaseQ.oq qx)) lt ; u⊆v = λ x → x }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
808 f∋b : odef (filter F) (& (ZFP P (* (BaseQ.q qx)) ))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
809 f∋b = FQSet⊆F (subst (λ k → odef (filter FQ) k ) &iso fp∋b )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
810 F∋base (g∩ {x} {y} b1 b2) bl = F∋x∩y where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
811 -- filter contains finite intersection
1228
e3f20bc4fac9 last part of Tychonoff
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1227
diff changeset
812 fb01 : odef (filter F) x
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
813 fb01 = F∋base b1 (proj1 (subst (λ k → odef k lim) *iso bl))
1228
e3f20bc4fac9 last part of Tychonoff
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1227
diff changeset
814 fb02 : odef (filter F) y
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
815 fb02 = F∋base b2 (proj2 (subst (λ k → odef k lim) *iso bl))
1228
e3f20bc4fac9 last part of Tychonoff
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1227
diff changeset
816 F∋x∩y : odef (filter F) (& (* x ∩ * y))
1229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
817 F∋x∩y = filter2 F (subst (λ k → odef (filter F) k) (sym &iso) fb01) (subst (λ k → odef (filter F) k) (sym &iso) fb02)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
818 (CAP (ZFP P Q) (subst (λ k → odef (Power (ZFP P Q)) k) (sym &iso) (f⊆L F fb01))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1228
diff changeset
819 (subst (λ k → odef (Power (ZFP P Q)) k) (sym &iso) (f⊆L F fb02)))
1154
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1153
diff changeset
820
1170
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1169
diff changeset
821
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1169
diff changeset
822
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1169
diff changeset
823
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1169
diff changeset
824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1169
diff changeset
825