annotate src/Topology.agda @ 1476:32001d93755b

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Fri, 28 Jun 2024 20:55:38 +0900
parents 47d3cc596d68
children 0b30bb7c7501
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
1 {-# OPTIONS --cubical-compatible --safe #-}
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
2 open import Level
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
3 open import Ordinals
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
4 open import logic
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
5 open import Relation.Nullary
1170
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1169
diff changeset
6
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 open import Level
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 open import Ordinals
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
9 import HODBase
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
10 import OD
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
11 open import Relation.Nullary
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
12 module Topology {n : Level } (O : Ordinals {n} ) (HODAxiom : HODBase.ODAxiom O) (ho< : OD.ODAxiom-ho< O HODAxiom )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
13 (AC : OD.AxiomOfChoice O HODAxiom ) where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
14
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
15
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
16 open import Relation.Binary.PropositionalEquality hiding ( [_] )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
17 open import Relation.Binary.Definitions
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
18
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
19 open import Data.Empty
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
20
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
21 import OrdUtil
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
22
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
23 open Ordinals.Ordinals O
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
24 open Ordinals.IsOrdinals isOrdinal
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
25 import ODUtil
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 open import logic
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
28 open import nat
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
29
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
30 open OrdUtil O
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
31 open ODUtil O HODAxiom ho<
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
32
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 open _∧_
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 open _∨_
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 open Bool
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
36
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
37 open HODBase._==_
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
38
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
39 open HODBase.ODAxiom HODAxiom
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
40 open OD O HODAxiom
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
41
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
42 open HODBase.HOD
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
43
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
44 open AxiomOfChoice AC
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
45 open import ODC O HODAxiom AC as ODC
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
46
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
47 open import Level
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
48 open import Ordinals
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
49
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
50 import filter
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
51
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
52 open import Relation.Nullary
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
53 -- open import Relation.Binary hiding ( _⇔_ )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
54 open import Data.Empty
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
55 open import Relation.Binary.PropositionalEquality
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
56 open import Data.Nat renaming ( zero to Zero ; suc to Suc ; ℕ to Nat ; _⊔_ to _n⊔_ )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
57 import BAlgebra
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
58
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
59 open import ZProduct O HODAxiom ho<
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
60 open import filter O HODAxiom ho< AC
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
61
1101
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 482
diff changeset
62
482
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
63 record Topology ( L : HOD ) : Set (suc n) where
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
64 field
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
65 OS : HOD
1113
384ba5a3c019 fix Topology definition
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1112
diff changeset
66 OS⊆PL : OS ⊆ Power L
384ba5a3c019 fix Topology definition
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1112
diff changeset
67 o∩ : { p q : HOD } → OS ∋ p → OS ∋ q → OS ∋ (p ∩ q)
1161
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1160
diff changeset
68 o∪ : { P : HOD } → P ⊆ OS → OS ∋ Union P
1210
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1199
diff changeset
69 OS∋od∅ : OS ∋ od∅ -- OS ∋ Union od∅
1160
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1159
diff changeset
70 --- we may add
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1159
diff changeset
71 -- OS∋L : OS ∋ L
1101
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 482
diff changeset
72 -- closed Set
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
73 open BAlgebra O HODAxiom ho< L ?
1101
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 482
diff changeset
74 CS : HOD
1119
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1118
diff changeset
75 CS = record { od = record { def = λ x → (* x ⊆ L) ∧ odef OS (& ( L \ (* x ))) } ; odmax = osuc (& L) ; <odmax = tp02 } where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1118
diff changeset
76 tp02 : {y : Ordinal } → (* y ⊆ L) ∧ odef OS (& (L \ * y)) → y o< osuc (& L)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1118
diff changeset
77 tp02 {y} nop = subst (λ k → k o≤ & L ) &iso ( ⊆→o≤ (λ {x} yx → proj1 nop yx ))
1113
384ba5a3c019 fix Topology definition
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1112
diff changeset
78 os⊆L : {x : HOD} → OS ∋ x → x ⊆ L
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
79 os⊆L {x} Ox {y} xy = ( OS⊆PL Ox ) _ (subst (λ k → odef k y) ? xy )
1122
1c7474446754 add OS ∋ od∅
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1121
diff changeset
80 cs⊆L : {x : HOD} → CS ∋ x → x ⊆ L
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
81 cs⊆L {x} Cx {y} xy = proj1 Cx (subst (λ k → odef k y ) ? xy )
1122
1c7474446754 add OS ∋ od∅
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1121
diff changeset
82 CS∋L : CS ∋ L
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
83 CS∋L = ⟪ subst (λ k → k ⊆ L) ? (λ x → x) , subst (λ k → odef OS (& k)) (sym lem0) OS∋od∅ ⟫ where
1123
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1122
diff changeset
84 lem0 : L \ * (& L) ≡ od∅
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
85 lem0 = subst (λ k → L \ k ≡ od∅) ? ? -- L\L=0
1154
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1153
diff changeset
86 CS⊆PL : CS ⊆ Power L
1161
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1160
diff changeset
87 CS⊆PL {x} Cx y xy = proj1 Cx xy
1160
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1159
diff changeset
88 P\CS=OS : {cs : HOD} → CS ∋ cs → OS ∋ ( L \ cs )
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
89 P\CS=OS {cs} ⟪ cs⊆L , olcs ⟫ = subst (λ k → odef OS k) ? olcs
1160
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1159
diff changeset
90 P\OS=CS : {cs : HOD} → OS ∋ cs → CS ∋ ( L \ cs )
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
91 P\OS=CS {os} oos = ⟪ subst (λ k → k ⊆ L) ? proj1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
92 , subst (λ k → odef OS k) (cong (&) (trans (sym ?) (cong (λ k → L \ k) ?) )) oos ⟫
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
93
482
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
94 open Topology
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
95
1163
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1162
diff changeset
96 -- Closure ( Intersection of Closed Set which include A )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1162
diff changeset
97
1162
0a6040d914f8 Closure in Topology
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1161
diff changeset
98 Cl : {L : HOD} → (top : Topology L) → (A : HOD) → HOD
0a6040d914f8 Closure in Topology
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1161
diff changeset
99 Cl {L} top A = record { od = record { def = λ x → odef L x ∧ ( (c : Ordinal) → odef (CS top) c → A ⊆ * c → odef (* c) x ) }
1150
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1149
diff changeset
100 ; odmax = & L ; <odmax = odef∧< }
1122
1c7474446754 add OS ∋ od∅
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1121
diff changeset
101
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
102 ClL : {L : HOD} → (top : Topology L) → Cl top L =h= L
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
103 ClL {L} top = record { eq→ = λ {x} ic
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
104 → subst (λ k → odef k x) ? ((proj2 ic) (& L) (CS∋L top) (subst (λ k → L ⊆ k) ? ( λ x → x)))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
105 ; eq← = λ {x} lx → ⟪ lx , ( λ c cs l⊆c → l⊆c lx) ⟫ }
1123
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1122
diff changeset
106
1163
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1162
diff changeset
107 -- Closure is Closed Set
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1162
diff changeset
108
1162
0a6040d914f8 Closure in Topology
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1161
diff changeset
109 CS∋Cl : {L : HOD} → (top : Topology L) → (A : HOD) → CS top ∋ Cl top A
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
110 CS∋Cl {L} top A = subst (λ k → CS top ∋ k) ? (P\OS=CS top UOCl-is-OS) where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
111 open BAlgebra O HODAxiom ho< L ?
1163
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1162
diff changeset
112 OCl : HOD -- set of open set which it not contains A
1162
0a6040d914f8 Closure in Topology
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1161
diff changeset
113 OCl = record { od = record { def = λ o → odef (OS top) o ∧ ( A ⊆ (L \ * o) ) } ; odmax = & (OS top) ; <odmax = odef∧< }
0a6040d914f8 Closure in Topology
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1161
diff changeset
114 OCl⊆OS : OCl ⊆ OS top
0a6040d914f8 Closure in Topology
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1161
diff changeset
115 OCl⊆OS ox = proj1 ox
0a6040d914f8 Closure in Topology
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1161
diff changeset
116 UOCl-is-OS : OS top ∋ Union OCl
0a6040d914f8 Closure in Topology
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1161
diff changeset
117 UOCl-is-OS = o∪ top OCl⊆OS
0a6040d914f8 Closure in Topology
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1161
diff changeset
118 cc00 : (L \ Union OCl) =h= Cl top A
0a6040d914f8 Closure in Topology
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1161
diff changeset
119 cc00 = record { eq→ = cc01 ; eq← = cc03 } where
0a6040d914f8 Closure in Topology
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1161
diff changeset
120 cc01 : {x : Ordinal} → odef (L \ Union OCl) x → odef L x ∧ ((c : Ordinal) → odef (CS top) c → A ⊆ * c → odef (* c) x)
0a6040d914f8 Closure in Topology
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1161
diff changeset
121 cc01 {x} ⟪ Lx , nul ⟫ = ⟪ Lx , ( λ c cc ac → cc02 c cc ac nul ) ⟫ where
0a6040d914f8 Closure in Topology
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1161
diff changeset
122 cc02 : (c : Ordinal) → odef (CS top) c → A ⊆ * c → ¬ odef (Union OCl) x → odef (* c) x
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
123 cc02 c cc ac nox with ODC.∋-p (* c) (* x)
1162
0a6040d914f8 Closure in Topology
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1161
diff changeset
124 ... | yes y = subst (λ k → odef (* c) k) &iso y
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
125 ... | no ncx = ⊥-elim ( nox record { owner = & ( L \ * c) ; ao = ⟪ proj2 cc , cc07 ⟫ ; ox = subst (λ k → odef k x) ? cc06 } ) where
1162
0a6040d914f8 Closure in Topology
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1161
diff changeset
126 cc06 : odef (L \ * c) x
0a6040d914f8 Closure in Topology
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1161
diff changeset
127 cc06 = ⟪ Lx , subst (λ k → ¬ odef (* c) k) &iso ncx ⟫
0a6040d914f8 Closure in Topology
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1161
diff changeset
128 cc08 : * c ⊆ L
0a6040d914f8 Closure in Topology
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1161
diff changeset
129 cc08 = cs⊆L top (subst (λ k → odef (CS top) k ) (sym &iso) cc )
0a6040d914f8 Closure in Topology
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1161
diff changeset
130 cc07 : A ⊆ (L \ * (& (L \ * c)))
0a6040d914f8 Closure in Topology
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1161
diff changeset
131 cc07 {z} az = subst (λ k → odef k z ) (
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
132 begin * c ≡⟨ sym ? ⟩
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
133 L \ (L \ * c) ≡⟨ cong (λ k → L \ k ) ? ⟩
1162
0a6040d914f8 Closure in Topology
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1161
diff changeset
134 L \ * (& (L \ * c)) ∎ ) ( ac az ) where open ≡-Reasoning
0a6040d914f8 Closure in Topology
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1161
diff changeset
135 cc03 : {x : Ordinal} → odef L x ∧ ((c : Ordinal) → odef (CS top) c → A ⊆ * c → odef (* c) x) → odef (L \ Union OCl) x
0a6040d914f8 Closure in Topology
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1161
diff changeset
136 cc03 {x} ⟪ Lx , ccx ⟫ = ⟪ Lx , cc04 ⟫ where
1163
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1162
diff changeset
137 -- if x is in Cl A, it is in some c : CS, OCl says it is not , i.e. L \ o ∋ x, so it is in (L \ Union OCl) x
1162
0a6040d914f8 Closure in Topology
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1161
diff changeset
138 cc04 : ¬ odef (Union OCl) x
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
139 cc04 record { owner = o ; ao = ⟪ oo , A⊆L-o ⟫ ; ox = ox } = proj2 ( subst (λ k → odef k x) ? cc05) ox where
1162
0a6040d914f8 Closure in Topology
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1161
diff changeset
140 cc05 : odef (* (& (L \ * o))) x
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
141 cc05 = ccx (& (L \ * o)) (P\OS=CS top (subst (λ k → odef (OS top) k) (sym &iso) oo)) (subst (λ k → A ⊆ k) ? A⊆L-o)
1161
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1160
diff changeset
142
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
143 CS∋x→Clx=x : {L x : HOD} → (top : Topology L) → CS top ∋ x → Cl top x =h= x
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
144 CS∋x→Clx=x {L} {x} top cx = record { eq→ = cc10 ; eq← = cc11 } where
1210
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1199
diff changeset
145 cc10 : {y : Ordinal} → odef L y ∧ ((c : Ordinal) → odef (CS top) c → x ⊆ * c → odef (* c) y) → odef x y
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
146 cc10 {y} ⟪ Ly , cc ⟫ = subst (λ k → odef k y) ? ( cc (& x) cx (λ {z} xz → subst (λ k → odef k z) ? xz ) )
1210
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1199
diff changeset
147 cc11 : {y : Ordinal} → odef x y → odef L y ∧ ((c : Ordinal) → odef (CS top) c → x ⊆ * c → odef (* c) y)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1199
diff changeset
148 cc11 {y} xy = ⟪ cs⊆L top cx xy , (λ c oc x⊆c → x⊆c xy ) ⟫
1160
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1159
diff changeset
149
1119
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1118
diff changeset
150 -- Subbase P
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1118
diff changeset
151 -- A set of countable intersection of P will be a base (x ix an element of the base)
1107
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1106
diff changeset
152
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1106
diff changeset
153 data Subbase (P : HOD) : Ordinal → Set n where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1106
diff changeset
154 gi : {x : Ordinal } → odef P x → Subbase P x
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1106
diff changeset
155 g∩ : {x y : Ordinal } → Subbase P x → Subbase P y → Subbase P (& (* x ∩ * y))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1106
diff changeset
156
1119
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1118
diff changeset
157 --
1150
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1149
diff changeset
158 -- if y is in a Subbase, some element of P contains it
1119
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1118
diff changeset
159
1111
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1110
diff changeset
160 sbp : (P : HOD) {x : Ordinal } → Subbase P x → Ordinal
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1110
diff changeset
161 sbp P {x} (gi {y} px) = x
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1110
diff changeset
162 sbp P {.(& (* _ ∩ * _))} (g∩ sb sb₁) = sbp P sb
1107
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1106
diff changeset
163
1111
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1110
diff changeset
164 is-sbp : (P : HOD) {x y : Ordinal } → (px : Subbase P x) → odef (* x) y → odef P (sbp P px ) ∧ odef (* (sbp P px)) y
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1110
diff changeset
165 is-sbp P {x} (gi px) xy = ⟪ px , xy ⟫
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
166 is-sbp P {.(& (* _ ∩ * _))} (g∩ {x} {y} px px₁) xy = is-sbp P px (proj1 (subst (λ k → odef k _ ) ? xy))
1107
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1106
diff changeset
167
1155
c4fd0bfdfbae FIP to Filter done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1154
diff changeset
168 sb⊆ : {P Q : HOD} {x : Ordinal } → P ⊆ Q → Subbase P x → Subbase Q x
c4fd0bfdfbae FIP to Filter done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1154
diff changeset
169 sb⊆ {P} {Q} P⊆Q (gi px) = gi (P⊆Q px)
c4fd0bfdfbae FIP to Filter done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1154
diff changeset
170 sb⊆ {P} {Q} P⊆Q (g∩ px qx) = g∩ (sb⊆ P⊆Q px) (sb⊆ P⊆Q qx)
c4fd0bfdfbae FIP to Filter done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1154
diff changeset
171
1119
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1118
diff changeset
172 -- An open set generate from a base
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1118
diff changeset
173 --
1161
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1160
diff changeset
174 -- OS = { U ⊆ L | ∀ x ∈ U → ∃ b ∈ P → x ∈ b ⊆ U }
1114
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1113
diff changeset
175
1115
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1114
diff changeset
176 record Base (L P : HOD) (u x : Ordinal) : Set n where
1114
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1113
diff changeset
177 field
1150
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1149
diff changeset
178 b : Ordinal
1161
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1160
diff changeset
179 u⊆L : * u ⊆ L
1114
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1113
diff changeset
180 sb : Subbase P b
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1113
diff changeset
181 b⊆u : * b ⊆ * u
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1113
diff changeset
182 bx : odef (* b) x
1150
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1149
diff changeset
183 x⊆L : odef L x
1161
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1160
diff changeset
184 x⊆L = u⊆L (b⊆u bx)
1114
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1113
diff changeset
185
1115
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1114
diff changeset
186 SO : (L P : HOD) → HOD
1119
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1118
diff changeset
187 SO L P = record { od = record { def = λ u → {x : Ordinal } → odef (* u) x → Base L P u x } ; odmax = osuc (& L) ; <odmax = tp00 } where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1118
diff changeset
188 tp00 : {y : Ordinal} → ({x : Ordinal} → odef (* y) x → Base L P y x) → y o< osuc (& L)
1150
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1149
diff changeset
189 tp00 {y} op = subst (λ k → k o≤ & L ) &iso ( ⊆→o≤ (λ {x} yx → Base.x⊆L (op yx) ))
1114
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1113
diff changeset
190
1111
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1110
diff changeset
191 record IsSubBase (L P : HOD) : Set (suc n) where
1110
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1109
diff changeset
192 field
1122
1c7474446754 add OS ∋ od∅
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1121
diff changeset
193 P⊆PL : P ⊆ Power L
1116
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1115
diff changeset
194 -- we may need these if OS ∋ L is necessary
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1115
diff changeset
195 -- p : {x : HOD} → L ∋ x → HOD
1161
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1160
diff changeset
196 -- Pp : {x : HOD} → {lx : L ∋ x } → P ∋ p lx
1116
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1115
diff changeset
197 -- px : {x : HOD} → {lx : L ∋ x } → p lx ∋ x
1110
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1109
diff changeset
198
1152
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1151
diff changeset
199 InducedTopology : (L P : HOD) → IsSubBase L P → Topology L
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1151
diff changeset
200 InducedTopology L P isb = record { OS = SO L P ; OS⊆PL = tp00
1122
1c7474446754 add OS ∋ od∅
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1121
diff changeset
201 ; o∪ = tp02 ; o∩ = tp01 ; OS∋od∅ = tp03 } where
1c7474446754 add OS ∋ od∅
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1121
diff changeset
202 tp03 : {x : Ordinal } → odef (* (& od∅)) x → Base L P (& od∅) x
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
203 tp03 {x} 0x = ⊥-elim ( empty (* x) ( subst₂ (λ j k → odef j k ) ? (sym &iso) 0x ))
1115
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1114
diff changeset
204 tp00 : SO L P ⊆ Power L
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1114
diff changeset
205 tp00 {u} ou x ux with ou ux
1161
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1160
diff changeset
206 ... | record { b = b ; u⊆L = u⊆L ; sb = sb ; b⊆u = b⊆u ; bx = bx } = u⊆L (b⊆u bx)
1115
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1114
diff changeset
207 tp01 : {p q : HOD} → SO L P ∋ p → SO L P ∋ q → SO L P ∋ (p ∩ q)
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
208 tp01 {p} {q} op oq {x} ux = record { b = b ; u⊆L = subst (λ k → k ⊆ L) ? ul
1116
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1115
diff changeset
209 ; sb = g∩ (Base.sb (op px)) (Base.sb (oq qx)) ; b⊆u = tp08 ; bx = tp14 } where
1115
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1114
diff changeset
210 px : odef (* (& p)) x
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
211 px = subst (λ k → odef k x ) ? ( proj1 (subst (λ k → odef k _ ) ? ux ) )
1115
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1114
diff changeset
212 qx : odef (* (& q)) x
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
213 qx = subst (λ k → odef k x ) ? ( proj2 (subst (λ k → odef k _ ) ? ux ) )
1115
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1114
diff changeset
214 b : Ordinal
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1114
diff changeset
215 b = & (* (Base.b (op px)) ∩ * (Base.b (oq qx)))
1116
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1115
diff changeset
216 tp08 : * b ⊆ * (& (p ∩ q) )
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
217 tp08 = subst₂ (λ j k → j ⊆ k ) ? ? (⊆∩-dist {(* (Base.b (op px)) ∩ * (Base.b (oq qx)))} {p} {q} tp09 tp10 ) where
1116
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1115
diff changeset
218 tp11 : * (Base.b (op px)) ⊆ * (& p )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1115
diff changeset
219 tp11 = Base.b⊆u (op px)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1115
diff changeset
220 tp12 : * (Base.b (oq qx)) ⊆ * (& q )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1115
diff changeset
221 tp12 = Base.b⊆u (oq qx)
1150
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1149
diff changeset
222 tp09 : (* (Base.b (op px)) ∩ * (Base.b (oq qx))) ⊆ p
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
223 tp09 = ⊆∩-incl-1 {* (Base.b (op px))} {* (Base.b (oq qx))} {p} (subst (λ k → (* (Base.b (op px))) ⊆ k ) ? tp11)
1150
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1149
diff changeset
224 tp10 : (* (Base.b (op px)) ∩ * (Base.b (oq qx))) ⊆ q
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
225 tp10 = ⊆∩-incl-2 {* (Base.b (oq qx))} {* (Base.b (op px))} {q} (subst (λ k → (* (Base.b (oq qx))) ⊆ k ) ? tp12)
1116
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1115
diff changeset
226 tp14 : odef (* (& (* (Base.b (op px)) ∩ * (Base.b (oq qx))))) x
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
227 tp14 = subst (λ k → odef k x ) ? ⟪ Base.bx (op px) , Base.bx (oq qx) ⟫
1117
53ca3c609f0e generated topology from subbase done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1116
diff changeset
228 ul : (p ∩ q) ⊆ L
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
229 ul = subst (λ k → k ⊆ L ) ? (λ {z} pq → (Base.u⊆L (op px)) (pz pq) ) where
1116
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1115
diff changeset
230 pz : {z : Ordinal } → odef (* (& (p ∩ q))) z → odef (* (& p)) z
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
231 pz {z} pq = subst (λ k → odef k z ) ? ( proj1 (subst (λ k → odef k _ ) ? pq ) )
1161
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1160
diff changeset
232 tp02 : { q : HOD} → q ⊆ SO L P → SO L P ∋ Union q
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
233 tp02 {q} q⊆O {x} = ? -- ux with subst (λ k → odef k x) ? ux
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
234 -- . | record { owner = y ; ao = qy ; ox = yx } with q⊆O qy yx
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
235 -- . | record { b = b ; u⊆L = u⊆L ; sb = sb ; b⊆u = b⊆u ; bx = bx } = record { b = b ; u⊆L = subst (λ k → k ⊆ L) ? tp04
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
236 -- ; sb = sb ; b⊆u = subst ( λ k → * b ⊆ k ) ? tp06 ; bx = bx } where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
237 -- tp05 : Union q ⊆ L
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
238 -- tp05 {z} record { owner = y ; ao = qy ; ox = yx } with q⊆O qy yx
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
239 -- ... | record { b = b ; u⊆L = u⊆L ; sb = sb ; b⊆u = b⊆u ; bx = bx }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
240 -- = IsSubBase.P⊆PL isb (proj1 (is-sbp P sb bx )) _ (proj2 (is-sbp P sb bx ))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
241 -- tp04 : Union q ⊆ L
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
242 -- tp04 = tp05
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
243 -- tp06 : * b ⊆ Union q
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
244 -- tp06 {z} bz = record { owner = y ; ao = qy ; ox = b⊆u bz }
1110
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1109
diff changeset
245
1142
7b924ef65373 Topology clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1136
diff changeset
246 -- Product Topology
7b924ef65373 Topology clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1136
diff changeset
247
7b924ef65373 Topology clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1136
diff changeset
248 open ZFProduct
7b924ef65373 Topology clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1136
diff changeset
249
1150
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1149
diff changeset
250 -- Product Topology is not
1142
7b924ef65373 Topology clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1136
diff changeset
251 -- ZFP (OS TP) (OS TQ) (box)
7b924ef65373 Topology clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1136
diff changeset
252
1228
e3f20bc4fac9 last part of Tychonoff
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1218
diff changeset
253 -- Rectangle subset (zπ1 ⁻¹ p)
1142
7b924ef65373 Topology clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1136
diff changeset
254 record BaseP {P : HOD} (TP : Topology P ) (Q : HOD) (x : Ordinal) : Set n where
7b924ef65373 Topology clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1136
diff changeset
255 field
1172
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1170
diff changeset
256 p : Ordinal
1142
7b924ef65373 Topology clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1136
diff changeset
257 op : odef (OS TP) p
7b924ef65373 Topology clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1136
diff changeset
258 prod : x ≡ & (ZFP (* p) Q )
7b924ef65373 Topology clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1136
diff changeset
259
1228
e3f20bc4fac9 last part of Tychonoff
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1218
diff changeset
260 -- Rectangle subset (zπ12⁻¹ q )
1142
7b924ef65373 Topology clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1136
diff changeset
261 record BaseQ (P : HOD) {Q : HOD} (TQ : Topology Q ) (x : Ordinal) : Set n where
7b924ef65373 Topology clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1136
diff changeset
262 field
1172
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1170
diff changeset
263 q : Ordinal
1142
7b924ef65373 Topology clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1136
diff changeset
264 oq : odef (OS TQ) q
7b924ef65373 Topology clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1136
diff changeset
265 prod : x ≡ & (ZFP P (* q ))
7b924ef65373 Topology clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1136
diff changeset
266
7b924ef65373 Topology clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1136
diff changeset
267 pbase⊆PL : {P Q : HOD} → (TP : Topology P) → (TQ : Topology Q) → {x : Ordinal } → BaseP TP Q x ∨ BaseQ P TQ x → odef (Power (ZFP P Q)) x
1172
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1170
diff changeset
268 pbase⊆PL {P} {Q} TP TQ {z} (case1 record { p = p ; op = op ; prod = prod }) = subst (λ k → odef (Power (ZFP P Q)) k ) (sym prod) tp01 where
1142
7b924ef65373 Topology clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1136
diff changeset
269 tp01 : odef (Power (ZFP P Q)) (& (ZFP (* p) Q))
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
270 tp01 w wz = ?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
271 -- tp01 w wz with subst (λ k → odef k w ) ? wz
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
272 -- ... | ab-pair {a} {b} pa qb = ZFP→ (subst (λ k → odef P k ) (sym &iso) tp03 ) (subst (λ k → odef Q k ) (sym &iso) qb ) where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
273 -- tp03 : odef P a
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
274 -- tp03 = os⊆L TP (subst (λ k → odef (OS TP) k) (sym &iso) op) pa
1172
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1170
diff changeset
275 pbase⊆PL {P} {Q} TP TQ {z} (case2 record { q = q ; oq = oq ; prod = prod }) = subst (λ k → odef (Power (ZFP P Q)) k ) (sym prod) tp01 where
1142
7b924ef65373 Topology clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1136
diff changeset
276 tp01 : odef (Power (ZFP P Q)) (& (ZFP P (* q) ))
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
277 tp01 w wz = ? -- with subst (λ k → odef k w ) ? wz
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
278 -- ... | ab-pair {a} {b} pa qb = ZFP→ (subst (λ k → odef P k ) (sym &iso) pa ) (subst (λ k → odef Q k ) (sym &iso) tp03 ) where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
279 -- tp03 : odef Q b
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
280 -- tp03 = os⊆L TQ (subst (λ k → odef (OS TQ) k) (sym &iso) oq) qb
1142
7b924ef65373 Topology clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1136
diff changeset
281
7b924ef65373 Topology clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1136
diff changeset
282 pbase : {P Q : HOD} → Topology P → Topology Q → HOD
7b924ef65373 Topology clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1136
diff changeset
283 pbase {P} {Q} TP TQ = record { od = record { def = λ x → BaseP TP Q x ∨ BaseQ P TQ x } ; odmax = & (Power (ZFP P Q)) ; <odmax = tp00 } where
7b924ef65373 Topology clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1136
diff changeset
284 tp00 : {y : Ordinal} → BaseP TP Q y ∨ BaseQ P TQ y → y o< & (Power (ZFP P Q))
1150
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1149
diff changeset
285 tp00 {y} bpq = odef< ( pbase⊆PL TP TQ bpq )
1142
7b924ef65373 Topology clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1136
diff changeset
286
7b924ef65373 Topology clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1136
diff changeset
287 ProductTopology : {P Q : HOD} → Topology P → Topology Q → Topology (ZFP P Q)
1152
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1151
diff changeset
288 ProductTopology {P} {Q} TP TQ = InducedTopology (ZFP P Q) (pbase TP TQ) record { P⊆PL = pbase⊆PL TP TQ }
1142
7b924ef65373 Topology clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1136
diff changeset
289
1152
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1151
diff changeset
290 -- covers ( q ⊆ Union P )
1101
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 482
diff changeset
291
1120
e086a266c6b7 FIP fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1119
diff changeset
292 record _covers_ ( P q : HOD ) : Set n where
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
293 field
1120
e086a266c6b7 FIP fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1119
diff changeset
294 cover : {x : Ordinal } → odef q x → Ordinal
1145
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1144
diff changeset
295 P∋cover : {x : Ordinal } → (lt : odef q x) → odef P (cover lt)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1144
diff changeset
296 isCover : {x : Ordinal } → (lt : odef q x) → odef (* (cover lt)) x
1120
e086a266c6b7 FIP fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1119
diff changeset
297
e086a266c6b7 FIP fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1119
diff changeset
298 open _covers_
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
299
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
300 -- Finite Intersection Property
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
301
1120
e086a266c6b7 FIP fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1119
diff changeset
302 record FIP {L : HOD} (top : Topology L) : Set n where
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
303 field
1150
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1149
diff changeset
304 limit : {X : Ordinal } → * X ⊆ CS top
1187
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1186
diff changeset
305 → ( { x : Ordinal } → Subbase (* X) x → o∅ o< x ) → Ordinal
1150
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1149
diff changeset
306 is-limit : {X : Ordinal } → (CX : * X ⊆ CS top )
1187
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1186
diff changeset
307 → ( fip : { x : Ordinal } → Subbase (* X) x → o∅ o< x )
1143
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1142
diff changeset
308 → {x : Ordinal } → odef (* X) x → odef (* x) (limit CX fip)
1150
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1149
diff changeset
309 L∋limit : {X : Ordinal } → (CX : * X ⊆ CS top )
1187
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1186
diff changeset
310 → ( fip : { x : Ordinal } → Subbase (* X) x → o∅ o< x )
1150
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1149
diff changeset
311 → {x : Ordinal } → odef (* X) x
1143
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1142
diff changeset
312 → odef L (limit CX fip)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1142
diff changeset
313 L∋limit {X} CX fip {x} xx = cs⊆L top (subst (λ k → odef (CS top) k) (sym &iso) (CX xx)) (is-limit CX fip xx)
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
314
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
315 -- Compact
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
316
1119
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1118
diff changeset
317 data Finite-∪ (S : HOD) : Ordinal → Set n where
1188
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1187
diff changeset
318 fin-e : Finite-∪ S o∅
1228
e3f20bc4fac9 last part of Tychonoff
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1218
diff changeset
319 fin-i : {x : Ordinal } → odef S x → Finite-∪ S (& ( * x , * x )) -- an element of S
1188
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1187
diff changeset
320 fin-∪ : {x y : Ordinal } → Finite-∪ S x → Finite-∪ S y → Finite-∪ S (& (* x ∪ * y))
1198
6e0cc71097e0 fip <-> compact done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1197
diff changeset
321 -- Finite-∪ S y → Union y ⊆ S
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
322
1120
e086a266c6b7 FIP fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1119
diff changeset
323 record Compact {L : HOD} (top : Topology L) : Set n where
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
324 field
1120
e086a266c6b7 FIP fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1119
diff changeset
325 finCover : {X : Ordinal } → (* X) ⊆ OS top → (* X) covers L → Ordinal
e086a266c6b7 FIP fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1119
diff changeset
326 isCover : {X : Ordinal } → (xo : (* X) ⊆ OS top) → (xcp : (* X) covers L ) → (* (finCover xo xcp )) covers L
1150
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1149
diff changeset
327 isFinite : {X : Ordinal } → (xo : (* X) ⊆ OS top) → (xcp : (* X) covers L ) → Finite-∪ (* X) (finCover xo xcp )
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
328
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
329 -- FIP is Compact
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
330
1113
384ba5a3c019 fix Topology definition
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1112
diff changeset
331 FIP→Compact : {L : HOD} → (top : Topology L ) → FIP top → Compact top
1150
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1149
diff changeset
332 FIP→Compact {L} top fip with trio< (& L) o∅
1146
1966127fc14f wrong cover definition
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1145
diff changeset
333 ... | tri< a ¬b ¬c = ⊥-elim ( ¬x<0 a )
1148
d39c79bb71f0 recovered
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1146
diff changeset
334 ... | tri≈ ¬a b ¬c = record { finCover = λ _ _ → o∅ ; isCover = λ {X} _ xcp → fip01 xcp ; isFinite = fip00 } where
d39c79bb71f0 recovered
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1146
diff changeset
335 -- L is empty
1146
1966127fc14f wrong cover definition
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1145
diff changeset
336 fip02 : {x : Ordinal } → ¬ odef L x
1966127fc14f wrong cover definition
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1145
diff changeset
337 fip02 {x} Lx = ⊥-elim ( o<¬≡ (sym b) (∈∅< Lx) )
1148
d39c79bb71f0 recovered
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1146
diff changeset
338 fip01 : {X : Ordinal } → (xcp : * X covers L) → (* o∅) covers L
1146
1966127fc14f wrong cover definition
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1145
diff changeset
339 fip01 xcp = record { cover = λ Lx → ⊥-elim (fip02 Lx) ; P∋cover = λ Lx → ⊥-elim (fip02 Lx) ; isCover = λ Lx → ⊥-elim (fip02 Lx) }
1148
d39c79bb71f0 recovered
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1146
diff changeset
340 fip00 : {X : Ordinal} (xo : * X ⊆ OS top) (xcp : * X covers L) → Finite-∪ (* X) o∅
1188
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1187
diff changeset
341 fip00 {X} xo xcp = fin-e
1146
1966127fc14f wrong cover definition
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1145
diff changeset
342 ... | tri> ¬a ¬b 0<L = record { finCover = finCover ; isCover = isCover1 ; isFinite = isFinite } where
1121
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1120
diff changeset
343 -- set of coset of X
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
344 open BAlgebra O HODAxiom ho< L ?
1121
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1120
diff changeset
345 CX : {X : Ordinal} → * X ⊆ OS top → Ordinal
1293
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1284
diff changeset
346 CX {X} ox = & ( Replace (* X) (λ z → L \ z ) RC\ )
1150
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1149
diff changeset
347 CCX : {X : Ordinal} → (os : * X ⊆ OS top) → * (CX os) ⊆ CS top
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
348 CCX {X} os {x} ox = ? -- with subst (λ k → odef k x) ? ox
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
349 -- ... | record { z = z ; az = az ; x=ψz = x=ψz } = ⟪ fip05 , fip06 ⟫ where -- x ≡ & (L \ * z)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
350 -- fip07 : z ≡ & (L \ * x)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
351 -- fip07 = subst₂ (λ j k → j ≡ k) &iso (cong (λ k → & ( L \ k )) (cong (*) (sym x=ψz))) ( cong (&) ( ==→o≡ record { eq→ = fip09 ; eq← = fip08 } )) where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
352 -- fip08 : {x : Ordinal} → odef L x ∧ (¬ odef (* (& (L \ * z))) x) → odef (* z) x
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
353 -- fip08 {x} ⟪ Lx , not ⟫ with subst (λ k → (¬ odef k x)) ? not -- ( odef L x ∧ odef (* z) x → ⊥) → ⊥
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
354 -- ... | Lx∧¬zx = ODC.double-neg-elim O ( λ nz → Lx∧¬zx ⟪ Lx , nz ⟫ )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
355 -- fip09 : {x : Ordinal} → odef (* z) x → odef L x ∧ (¬ odef (* (& (L \ * z))) x)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
356 -- fip09 {w} zw = ⟪ os⊆L top (os (subst (λ k → odef (* X) k) (sym &iso) az)) zw , subst (λ k → ¬ odef k w) ? fip10 ⟫ where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
357 -- fip10 : ¬ (odef (L \ * z) w)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
358 -- fip10 ⟪ Lw , nzw ⟫ = nzw zw
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
359 -- fip06 : odef (OS top) (& (L \ * x))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
360 -- fip06 = os ( subst (λ k → odef (* X) k ) fip07 az )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
361 -- fip05 : * x ⊆ L
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
362 -- fip05 {w} xw = proj1 ( subst (λ k → odef k w) (trans (cong (*) x=ψz) ? ) xw )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
363
1143
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1142
diff changeset
364 --
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1142
diff changeset
365 -- X covres L means Intersection of (CX X) contains nothing
1152
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1151
diff changeset
366 -- then some finite Intersection of (CX X) contains nothing ( contraposition of FIP .i.e. CFIP)
1143
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1142
diff changeset
367 -- it means there is a finite cover
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1142
diff changeset
368 --
1293
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1284
diff changeset
369 finCoverBase : {X : Ordinal } → * X ⊆ OS top → * X covers L → Subbase (Replace (* X) (λ z → L \ z) RC\ ) o∅
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
370 finCoverBase {X} ox oc with p∨¬p (Subbase (Replace (* X) (λ z → L \ z) RC\ ) o∅)
1189
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1188
diff changeset
371 ... | case1 sb = sb
1199
1338b6c6a9b6 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1198
diff changeset
372 ... | case2 ¬sb = ⊥-elim (¬¬cover fip25 fip20) where
1338b6c6a9b6 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1198
diff changeset
373 ¬¬cover : {z : Ordinal } → odef L z → ¬ ( {y : Ordinal } → (Xy : odef (* X) y) → ¬ ( odef (* y) z ))
1338b6c6a9b6 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1198
diff changeset
374 ¬¬cover {z} Lz nc = nc ( P∋cover oc Lz ) (isCover oc _ )
1338b6c6a9b6 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1198
diff changeset
375 -- ¬sb → we have finite intersection
1187
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1186
diff changeset
376 fip02 : {x : Ordinal} → Subbase (* (CX ox)) x → o∅ o< x
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1186
diff changeset
377 fip02 {x} sc with trio< x o∅
1148
d39c79bb71f0 recovered
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1146
diff changeset
378 ... | tri< a ¬b ¬c = ⊥-elim ( ¬x<0 a )
d39c79bb71f0 recovered
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1146
diff changeset
379 ... | tri> ¬a ¬b c = c
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
380 ... | tri≈ ¬a b ¬c = ⊥-elim (¬sb (subst₂ (λ j k → Subbase j k ) ? b sc ))
1150
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1149
diff changeset
381 -- we have some intersection because L is not empty (if we have an element of L, we don't need choice)
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
382 fip26 : odef (* (CX ox)) (& (L \ * ( cover oc ( x∋minimal L (0<P→ne 0<L) ) )))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
383 fip26 = subst (λ k → odef k (& (L \ * ( cover oc ( x∋minimal L (0<P→ne 0<L) ) )) )) ?
1150
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1149
diff changeset
384 record { z = cover oc (x∋minimal L (0<P→ne 0<L)) ; az = P∋cover oc (x∋minimal L (0<P→ne 0<L)) ; x=ψz = refl }
1148
d39c79bb71f0 recovered
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1146
diff changeset
385 fip25 : odef L( FIP.limit fip (CCX ox) fip02 )
d39c79bb71f0 recovered
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1146
diff changeset
386 fip25 = FIP.L∋limit fip (CCX ox) fip02 fip26
d39c79bb71f0 recovered
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1146
diff changeset
387 fip20 : {y : Ordinal } → (Xy : odef (* X) y) → ¬ ( odef (* y) ( FIP.limit fip (CCX ox) fip02 ))
d39c79bb71f0 recovered
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1146
diff changeset
388 fip20 {y} Xy yl = proj2 fip21 yl where
d39c79bb71f0 recovered
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1146
diff changeset
389 fip22 : odef (* (CX ox)) (& ( L \ * y ))
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
390 fip22 = subst (λ k → odef k (& ( L \ * y ))) ? record { z = y ; az = Xy ; x=ψz = refl }
1148
d39c79bb71f0 recovered
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1146
diff changeset
391 fip21 : odef (L \ * y) ( FIP.limit fip (CCX ox) fip02 )
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
392 fip21 = subst (λ k → odef k ( FIP.limit fip (CCX ox) fip02 ) ) ? ( FIP.is-limit fip (CCX ox) fip02 fip22 )
1199
1338b6c6a9b6 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1198
diff changeset
393 -- create HOD from Subbase ( finite intersection )
1293
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1284
diff changeset
394 finCoverSet : {X : Ordinal } → (x : Ordinal) → Subbase (Replace (* X) (λ z → L \ z) RC\ ) x → HOD
1190
kono
parents: 1189
diff changeset
395 finCoverSet {X} x (gi rx) = ( L \ * x ) , ( L \ * x )
1189
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1188
diff changeset
396 finCoverSet {X} x∩y (g∩ {x} {y} sx sy) = finCoverSet {X} x sx ∪ finCoverSet {X} y sy
1149
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1148
diff changeset
397 --
1121
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1120
diff changeset
398 -- this defines finite cover
1120
e086a266c6b7 FIP fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1119
diff changeset
399 finCover : {X : Ordinal} → * X ⊆ OS top → * X covers L → Ordinal
1189
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1188
diff changeset
400 finCover {X} ox oc = & ( finCoverSet o∅ (finCoverBase ox oc))
1199
1338b6c6a9b6 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1198
diff changeset
401 -- create Finite-∪ from finCoverSet
1120
e086a266c6b7 FIP fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1119
diff changeset
402 isFinite : {X : Ordinal} (xo : * X ⊆ OS top) (xcp : * X covers L) → Finite-∪ (* X) (finCover xo xcp)
1189
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1188
diff changeset
403 isFinite {X} xo xcp = fip60 o∅ (finCoverBase xo xcp) where
1293
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1284
diff changeset
404 fip60 : (x : Ordinal) → (sb : Subbase (Replace (* X) (λ z → L \ z) RC\ ) x ) → Finite-∪ (* X) (& (finCoverSet {X} x sb))
1190
kono
parents: 1189
diff changeset
405 fip60 x (gi rx) = subst (λ k → Finite-∪ (* X) k) fip62 (fin-i (fip61 rx)) where
kono
parents: 1189
diff changeset
406 fip62 : & (* (& (L \ * x)) , * (& (L \ * x))) ≡ & ((L \ * x) , (L \ * x))
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
407 fip62 = cong₂ (λ j k → & (j , k )) ? ?
1293
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1284
diff changeset
408 fip61 : odef (Replace (* X) (_\_ L) RC\ ) x → odef (* X) ( & ((L \ * x ) ))
1189
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1188
diff changeset
409 fip61 record { z = z1 ; az = az1 ; x=ψz = x=ψz1 } = subst (λ k → odef (* X) k) fip33 az1 where
1151
8a071bf52407 Finite intersection property to Compact done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1150
diff changeset
410 fip34 : * z1 ⊆ L
8a071bf52407 Finite intersection property to Compact done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1150
diff changeset
411 fip34 {w} wz1 = os⊆L top (subst (λ k → odef (OS top) k) (sym &iso) (xo az1)) wz1
1189
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1188
diff changeset
412 fip33 : z1 ≡ & (L \ * x)
1151
8a071bf52407 Finite intersection property to Compact done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1150
diff changeset
413 fip33 = begin
1152
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1151
diff changeset
414 z1 ≡⟨ sym &iso ⟩
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
415 & (* z1) ≡⟨ cong (&) ? ⟩
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
416 & (L \ ( L \ * z1)) ≡⟨ cong (λ k → & ( L \ k )) ? ⟩
1152
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1151
diff changeset
417 & (L \ * (& ( L \ * z1))) ≡⟨ cong (λ k → & ( L \ * k )) (sym x=ψz1) ⟩
1189
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1188
diff changeset
418 & (L \ * x ) ∎ where open ≡-Reasoning
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1188
diff changeset
419 fip60 x∩y (g∩ {x} {y} sx sy) = subst (λ k → Finite-∪ (* X) k) fip62 ( fin-∪ (fip60 x sx) (fip60 y sy) ) where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1188
diff changeset
420 fip62 : & (* (& (finCoverSet x sx)) ∪ * (& (finCoverSet y sy))) ≡ & (finCoverSet x sx ∪ finCoverSet y sy)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1188
diff changeset
421 fip62 = cong (&) ( begin
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
422 (* (& (finCoverSet x sx)) ∪ * (& (finCoverSet y sy))) ≡⟨ cong₂ _∪_ ? ? ⟩
1189
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1188
diff changeset
423 finCoverSet x sx ∪ finCoverSet y sy ∎ ) where open ≡-Reasoning
1120
e086a266c6b7 FIP fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1119
diff changeset
424 -- is also a cover
e086a266c6b7 FIP fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1119
diff changeset
425 isCover1 : {X : Ordinal} (xo : * X ⊆ OS top) (xcp : * X covers L) → * (finCover xo xcp) covers L
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
426 isCover1 {X} xo xcp = subst₂ (λ j k → j covers k ) ? (subst (λ k → L \ k ≡ L) ? ? ) -- L\0=L)
1190
kono
parents: 1189
diff changeset
427 (fip70 o∅ (finCoverBase xo xcp)) where
1293
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1284
diff changeset
428 fip70 : (x : Ordinal) → (sb : Subbase (Replace (* X) (λ z → L \ z) RC\ ) x ) → (finCoverSet {X} x sb) covers (L \ * x)
1199
1338b6c6a9b6 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1198
diff changeset
429 fip70 x (gi rx) = fip73 where
1338b6c6a9b6 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1198
diff changeset
430 fip73 : ((L \ * x) , (L \ * x)) covers (L \ * x) -- obvious
1338b6c6a9b6 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1198
diff changeset
431 fip73 = record { cover = λ _ → & (L \ * x) ; P∋cover = λ _ → case1 refl
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
432 ; isCover = λ {x} lt → subst (λ k → odef k x) ? lt }
1190
kono
parents: 1189
diff changeset
433 fip70 x∩y (g∩ {x} {y} sx sy) = subst (λ k → finCoverSet (& (* x ∩ * y)) (g∩ sx sy) covers
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
434 (L \ k)) ? ( fip43 {_} {L} {* x} {* y} (fip71 (fip70 x sx)) (fip72 (fip70 y sy)) ) where
1194
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1190
diff changeset
435 fip71 : {a b c : HOD} → a covers c → (a ∪ b) covers c
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1190
diff changeset
436 fip71 {a} {b} {c} cov = record { cover = cover cov ; P∋cover = λ lt → case1 (P∋cover cov lt)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1190
diff changeset
437 ; isCover = isCover cov }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1190
diff changeset
438 fip72 : {a b c : HOD} → a covers c → (b ∪ a) covers c
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1190
diff changeset
439 fip72 {a} {b} {c} cov = record { cover = cover cov ; P∋cover = λ lt → case2 (P∋cover cov lt)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1190
diff changeset
440 ; isCover = isCover cov }
1190
kono
parents: 1189
diff changeset
441 fip45 : {L a b : HOD} → (L \ (a ∩ b)) ⊆ ( (L \ a) ∪ (L \ b))
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
442 fip45 {L} {a} {b} {x} Lab with ∋-p b (* x)
1190
kono
parents: 1189
diff changeset
443 ... | yes bx = case1 ⟪ proj1 Lab , (λ ax → proj2 Lab ⟪ ax , subst (λ k → odef b k) &iso bx ⟫ ) ⟫
kono
parents: 1189
diff changeset
444 ... | no ¬bx = case2 ⟪ proj1 Lab , subst (λ k → ¬ ( odef b k)) &iso ¬bx ⟫
kono
parents: 1189
diff changeset
445 fip43 : {A L a b : HOD } → A covers (L \ a) → A covers (L \ b ) → A covers ( L \ ( a ∩ b ) )
kono
parents: 1189
diff changeset
446 fip43 {A} {L} {a} {b} ca cb = record { cover = fip44 ; P∋cover = fip46 ; isCover = fip47 } where
kono
parents: 1189
diff changeset
447 fip44 : {x : Ordinal} → odef (L \ (a ∩ b)) x → Ordinal
kono
parents: 1189
diff changeset
448 fip44 {x} Lab with fip45 {L} {a} {b} Lab
kono
parents: 1189
diff changeset
449 ... | case1 La = cover ca La
kono
parents: 1189
diff changeset
450 ... | case2 Lb = cover cb Lb
kono
parents: 1189
diff changeset
451 fip46 : {x : Ordinal} (lt : odef (L \ (a ∩ b)) x) → odef A (fip44 lt)
kono
parents: 1189
diff changeset
452 fip46 {x} Lab with fip45 {L} {a} {b} Lab
kono
parents: 1189
diff changeset
453 ... | case1 La = P∋cover ca La
kono
parents: 1189
diff changeset
454 ... | case2 Lb = P∋cover cb Lb
kono
parents: 1189
diff changeset
455 fip47 : {x : Ordinal} (lt : odef (L \ (a ∩ b)) x) → odef (* (fip44 lt)) x
kono
parents: 1189
diff changeset
456 fip47 {x} Lab with fip45 {L} {a} {b} Lab
kono
parents: 1189
diff changeset
457 ... | case1 La = isCover ca La
kono
parents: 1189
diff changeset
458 ... | case2 Lb = isCover cb Lb
1151
8a071bf52407 Finite intersection property to Compact done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1150
diff changeset
459
1158
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1155
diff changeset
460 Compact→FIP : {L : HOD} → (top : Topology L ) → Compact top → FIP top
1180
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1179
diff changeset
461 Compact→FIP {L} top compact with trio< (& L) o∅
1175
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1172
diff changeset
462 ... | tri< a ¬b ¬c = ⊥-elim ( ¬x<0 a )
1198
6e0cc71097e0 fip <-> compact done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1197
diff changeset
463 ... | tri≈ ¬a L=0 ¬c = record { limit = λ {X} CX fip → o∅ ; is-limit = λ {X} CX fip xx → ⊥-elim (fip000 CX fip xx) } where
6e0cc71097e0 fip <-> compact done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1197
diff changeset
464 -- empty L case
6e0cc71097e0 fip <-> compact done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1197
diff changeset
465 -- if 0 < X then 0 < x ∧ L ∋ xfrom fip
6e0cc71097e0 fip <-> compact done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1197
diff changeset
466 -- if 0 ≡ X then ¬ odef X x
6e0cc71097e0 fip <-> compact done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1197
diff changeset
467 fip000 : {X x : Ordinal} (CX : * X ⊆ CS top) → ({y : Ordinal} → Subbase (* X) y → o∅ o< y) → ¬ odef (* X) x
6e0cc71097e0 fip <-> compact done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1197
diff changeset
468 fip000 {X} {x} CX fip xx with trio< o∅ X
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
469 ... | tri< 0<X ¬b ¬c = ¬∅∋ (subst₂ (λ j k → odef j k ) (trans (trans ? (cong (*) L=0)) ? ) (sym &iso)
1198
6e0cc71097e0 fip <-> compact done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1197
diff changeset
470 ( cs⊆L top (subst (λ k → odef (CS top) k ) (sym &iso) (CX xx)) Xe )) where
6e0cc71097e0 fip <-> compact done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1197
diff changeset
471 0<x : o∅ o< x
6e0cc71097e0 fip <-> compact done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1197
diff changeset
472 0<x = fip (gi xx )
6e0cc71097e0 fip <-> compact done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1197
diff changeset
473 e : HOD -- we have an element of x
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
474 e = minimal (* x) (0<P→ne (subst (λ k → o∅ o< k) (sym &iso) 0<x) )
1198
6e0cc71097e0 fip <-> compact done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1197
diff changeset
475 Xe : odef (* x) (& e)
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
476 Xe = x∋minimal (* x) (0<P→ne (subst (λ k → o∅ o< k) (sym &iso) 0<x) )
1198
6e0cc71097e0 fip <-> compact done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1197
diff changeset
477 ... | tri≈ ¬a 0=X ¬c = ⊥-elim ( ¬∅∋ (subst₂ (λ j k → odef j k ) ( begin
6e0cc71097e0 fip <-> compact done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1197
diff changeset
478 * X ≡⟨ cong (*) (sym 0=X) ⟩
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
479 * o∅ ≡⟨ ? ⟩
1198
6e0cc71097e0 fip <-> compact done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1197
diff changeset
480 od∅ ∎ ) (sym &iso) xx ) ) where open ≡-Reasoning
6e0cc71097e0 fip <-> compact done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1197
diff changeset
481 ... | tri> ¬a ¬b c = ⊥-elim ( ¬x<0 c )
1175
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1172
diff changeset
482 ... | tri> ¬a ¬b 0<L = record { limit = limit ; is-limit = fip00 } where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1172
diff changeset
483 -- set of coset of X
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
484 open BAlgebra O HODAxiom ho< L ?
1175
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1172
diff changeset
485 OX : {X : Ordinal} → * X ⊆ CS top → Ordinal
1293
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1284
diff changeset
486 OX {X} ox = & ( Replace (* X) (λ z → L \ z ) RC\)
1175
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1172
diff changeset
487 OOX : {X : Ordinal} → (cs : * X ⊆ CS top) → * (OX cs) ⊆ OS top
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
488 OOX {X} cs {x} ox = ? -- with subst (λ k → odef k x) ? ox
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
489 -- ... | record { z = z ; az = az ; x=ψz = x=ψz } = subst (λ k → odef (OS top) k) (sym x=ψz) ( P\CS=OS top (cs comp01)) where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
490 -- comp01 : odef (* X) (& (* z))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
491 -- comp01 = subst (λ k → odef (* X) k) (sym &iso) az
1183
kono
parents: 1182
diff changeset
492 -- if all finite intersection of X contains something,
1175
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1172
diff changeset
493 -- there is no finite cover. From Compactness, (OX X) is not a cover of L ( contraposition of Compact)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1172
diff changeset
494 -- it means there is a limit
1199
1338b6c6a9b6 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1198
diff changeset
495 record NC {X : Ordinal} (CX : * X ⊆ CS top) (fip : {x : Ordinal} → Subbase (* X) x → o∅ o< x) (0<X : o∅ o< X) : Set n where
1338b6c6a9b6 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1198
diff changeset
496 field -- find an element x, which is not covered (which is a limit point)
1338b6c6a9b6 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1198
diff changeset
497 x : Ordinal
1338b6c6a9b6 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1198
diff changeset
498 yx : {y : Ordinal} (Xy : odef (* X) y) → odef (* y) x
1187
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1186
diff changeset
499 has-intersection : {X : Ordinal} (CX : * X ⊆ CS top) (fip : {x : Ordinal} → Subbase (* X) x → o∅ o< x)
1199
1338b6c6a9b6 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1198
diff changeset
500 → (0<X : o∅ o< X ) → NC CX fip 0<X
1338b6c6a9b6 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1198
diff changeset
501 has-intersection {X} CX fip 0<X = intersection where
1198
6e0cc71097e0 fip <-> compact done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1197
diff changeset
502 e : HOD -- we have an element of X
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
503 e = minimal (* X) (0<P→ne (subst (λ k → o∅ o< k) (sym &iso) 0<X) )
1198
6e0cc71097e0 fip <-> compact done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1197
diff changeset
504 Xe : odef (* X) (& e)
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
505 Xe = x∋minimal (* X) (0<P→ne (subst (λ k → o∅ o< k) (sym &iso) 0<X) )
1183
kono
parents: 1182
diff changeset
506 no-cover : ¬ ( (* (OX CX)) covers L )
1198
6e0cc71097e0 fip <-> compact done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1197
diff changeset
507 no-cover cov = ⊥-elim (no-finite-cover (Compact.isCover compact (OOX CX) cov)) where
6e0cc71097e0 fip <-> compact done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1197
diff changeset
508 -- construct Subase from Finite-∪
1180
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1179
diff changeset
509 fp01 : Ordinal
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1179
diff changeset
510 fp01 = Compact.finCover compact (OOX CX) cov
1194
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1190
diff changeset
511 record SB (t : Ordinal) : Set n where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1190
diff changeset
512 field
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1190
diff changeset
513 i : Ordinal
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1190
diff changeset
514 sb : Subbase (* X) (& (L \ * i))
1198
6e0cc71097e0 fip <-> compact done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1197
diff changeset
515 t⊆i : (L \ * i) ⊆ (L \ Union ( * t ) )
1194
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1190
diff changeset
516 fp02 : (t : Ordinal) → Finite-∪ (* (OX CX)) t → SB t
1198
6e0cc71097e0 fip <-> compact done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1197
diff changeset
517 fp02 t fin-e = record { i = & ( L \ e) ; sb = gi (subst (λ k → odef (* X) k) fp21 Xe) ; t⊆i = fp23 } where
6e0cc71097e0 fip <-> compact done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1197
diff changeset
518 -- t ≡ o∅, no cover. Any subst of L is ok and we have e ⊆ L
6e0cc71097e0 fip <-> compact done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1197
diff changeset
519 fp22 : e ⊆ L
6e0cc71097e0 fip <-> compact done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1197
diff changeset
520 fp22 {x} lt = cs⊆L top (CX Xe) lt
6e0cc71097e0 fip <-> compact done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1197
diff changeset
521 fp21 : & e ≡ & (L \ * (& (L \ e)))
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
522 fp21 = cong (&) (trans (sym ?) (cong (λ k → L \ k) ?))
1198
6e0cc71097e0 fip <-> compact done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1197
diff changeset
523 fp23 : (L \ * (& (L \ e))) ⊆ (L \ Union (* o∅))
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
524 fp23 {x} ⟪ Lx , _ ⟫ = ⟪ Lx , ( λ lt → ⊥-elim ( ¬∅∋ (subst₂ (λ j k → odef j k ) ? (sym &iso) (Own.ao lt )))) ⟫
1198
6e0cc71097e0 fip <-> compact done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1197
diff changeset
525 fp02 t (fin-i {x} tx ) = record { i = x ; sb = gi fp03 ; t⊆i = fp24 } where
6e0cc71097e0 fip <-> compact done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1197
diff changeset
526 -- we have a single cover x, L \ * x is single finite intersection
1197
0a88fcd5d1c9 ... almost
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1196
diff changeset
527 fp24 : (L \ * x) ⊆ (L \ Union (* (& (* x , * x))))
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
528 fp24 {y} ⟪ Lx , not ⟫ = ⟪ Lx , subst (λ k → ¬ odef (Union k) y) ? fp25 ⟫ where
1197
0a88fcd5d1c9 ... almost
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1196
diff changeset
529 fp25 : ¬ odef (Union (* x , * x)) y
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
530 fp25 record { owner = .(& (* x)) ; ao = (case1 refl) ; ox = ox } = not (subst (λ k → odef k y) ? ox )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
531 fp25 record { owner = .(& (* x)) ; ao = (case2 refl) ; ox = ox } = not (subst (λ k → odef k y) ? ox )
1198
6e0cc71097e0 fip <-> compact done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1197
diff changeset
532 fp03 : odef (* X) (& (L \ * x)) -- becase x is an element of Replace (* X) (λ z → L \ z )
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
533 fp03 = ? -- with subst (λ k → odef k x ) ? tx
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
534 -- ... | record { z = z1 ; az = az1 ; x=ψz = x=ψz1 } = subst (λ k → odef (* X) k) fip33 az1 where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
535 -- fip34 : * z1 ⊆ L
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
536 -- fip34 {w} wz1 = cs⊆L top (subst (λ k → odef (CS top) k) (sym &iso) (CX az1) ) wz1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
537 -- fip33 : z1 ≡ & (L \ * x)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
538 -- fip33 = begin
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
539 -- z1 ≡⟨ sym &iso ⟩
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
540 -- & (* z1) ≡⟨ cong (&) (sym (L\Lx=x fip34 )) ⟩
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
541 -- & (L \ ( L \ * z1)) ≡⟨ cong (λ k → & ( L \ k )) ? ⟩
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
542 -- & (L \ * (& ( L \ * z1))) ≡⟨ cong (λ k → & ( L \ * k )) (sym x=ψz1) ⟩
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
543 -- & (L \ * x ) ∎ where open ≡-Reasoning
1198
6e0cc71097e0 fip <-> compact done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1197
diff changeset
544 fp02 t (fin-∪ {tx} {ty} ux uy ) = record { i = & (* (SB.i (fp02 tx ux)) ∪ * (SB.i (fp02 ty uy))) ; sb = fp11 ; t⊆i = fp35 } where
6e0cc71097e0 fip <-> compact done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1197
diff changeset
545 fp35 : (L \ * (& (* (SB.i (fp02 tx ux)) ∪ * (SB.i (fp02 ty uy))))) ⊆ (L \ Union (* (& (* tx ∪ * ty))))
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
546 fp35 = subst₂ (λ j k → (L \ j ) ⊆ (L \ Union k)) ? ? fp36 where
1197
0a88fcd5d1c9 ... almost
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1196
diff changeset
547 fp40 : {z tz : Ordinal } → Finite-∪ (* (OX CX)) tz → odef (Union (* tz )) z → odef L z
1199
1338b6c6a9b6 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1198
diff changeset
548 fp40 {z} {.(Ordinals.o∅ O)} fin-e record { owner = owner ; ao = ao ; ox = ox }
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
549 = ⊥-elim ( ¬∅∋ (subst₂ (λ j k → odef j k ) ? (sym &iso) ao ))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
550 fp40 {z} {.(& (* _ , * _))} (fin-i {w} x) uz = fp41 x (subst (λ k → odef (Union k) z) ? uz) where
1197
0a88fcd5d1c9 ... almost
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1196
diff changeset
551 fp41 : (x : odef (* (OX CX)) w) → (uz : odef (Union (* w , * w)) z ) → odef L z
0a88fcd5d1c9 ... almost
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1196
diff changeset
552 fp41 x record { owner = .(& (* w)) ; ao = (case1 refl) ; ox = ox } =
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
553 os⊆L top (OOX CX (subst (λ k → odef (* (OX CX)) k) (sym &iso) x )) (subst (λ k → odef k z) ? ox )
1197
0a88fcd5d1c9 ... almost
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1196
diff changeset
554 fp41 x record { owner = .(& (* w)) ; ao = (case2 refl) ; ox = ox } =
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
555 os⊆L top (OOX CX (subst (λ k → odef (* (OX CX)) k) (sym &iso) x )) (subst (λ k → odef k z) ? ox )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
556 fp40 {z} {.(& (* _ ∪ * _))} (fin-∪ {x1} {y1} ftx fty) uz = ? -- with subst (λ k → odef (Union k) z ) ? uz
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
557 -- ... | record { owner = o ; ao = case1 x1o ; ox = oz } = fp40 ftx record { owner = o ; ao = x1o ; ox = oz }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
558 -- ... | record { owner = o ; ao = case2 y1o ; ox = oz } = fp40 fty record { owner = o ; ao = y1o ; ox = oz }
1198
6e0cc71097e0 fip <-> compact done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1197
diff changeset
559 fp36 : (L \ (* (SB.i (fp02 tx ux)) ∪ * (SB.i (fp02 ty uy)))) ⊆ (L \ Union (* tx ∪ * ty))
1197
0a88fcd5d1c9 ... almost
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1196
diff changeset
560 fp36 {z} ⟪ Lz , not ⟫ = ⟪ Lz , fp37 ⟫ where
0a88fcd5d1c9 ... almost
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1196
diff changeset
561 fp37 : ¬ odef (Union (* tx ∪ * ty)) z
0a88fcd5d1c9 ... almost
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1196
diff changeset
562 fp37 record { owner = owner ; ao = (case1 ax) ; ox = ox } = not (case1 (fp39 record { owner = _ ; ao = ax ; ox = ox }) ) where
1198
6e0cc71097e0 fip <-> compact done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1197
diff changeset
563 fp38 : (L \ (* (SB.i (fp02 tx ux)))) ⊆ (L \ Union (* tx))
6e0cc71097e0 fip <-> compact done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1197
diff changeset
564 fp38 = SB.t⊆i (fp02 tx ux)
6e0cc71097e0 fip <-> compact done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1197
diff changeset
565 fp39 : Union (* tx) ⊆ (* (SB.i (fp02 tx ux)))
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
566 fp39 {w} txw = ? -- with ∨L\X {L} {* (SB.i (fp02 tx ux))} (fp40 ux txw)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
567 -- ... | case1 sb = sb
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
568 -- ... | case2 lsb = ⊥-elim ( proj2 (fp38 lsb) txw )
1197
0a88fcd5d1c9 ... almost
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1196
diff changeset
569 fp37 record { owner = owner ; ao = (case2 ax) ; ox = ox } = not (case2 (fp39 record { owner = _ ; ao = ax ; ox = ox }) ) where
1198
6e0cc71097e0 fip <-> compact done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1197
diff changeset
570 fp38 : (L \ (* (SB.i (fp02 ty uy)))) ⊆ (L \ Union (* ty))
6e0cc71097e0 fip <-> compact done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1197
diff changeset
571 fp38 = SB.t⊆i (fp02 ty uy)
6e0cc71097e0 fip <-> compact done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1197
diff changeset
572 fp39 : Union (* ty) ⊆ (* (SB.i (fp02 ty uy)))
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
573 fp39 {w} tyw = ? -- with ∨L\X {L} {* (SB.i (fp02 ty uy))} (fp40 uy tyw)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
574 -- ... | case1 sb = sb
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
575 -- ... | case2 lsb = ⊥-elim ( proj2 (fp38 lsb) tyw )
1194
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1190
diff changeset
576 fp04 : {tx ty : Ordinal} → & (* (& (L \ * tx)) ∩ * (& (L \ * ty))) ≡ & (L \ * (& (* tx ∪ * ty)))
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
577 fp04 {tx} {ty} = ? where -- cong (&) ( ==→o≡ record { eq→ = fp05 ; eq← = fp09 } ) where
1187
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1186
diff changeset
578 fp05 : {x : Ordinal} → odef (* (& (L \ * tx)) ∩ * (& (L \ * ty))) x → odef (L \ * (& (* tx ∪ * ty))) x
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
579 fp05 {x} lt = ? -- with subst₂ (λ j k → odef (j ∩ k) x ) ? ? lt
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
580 -- ... | ⟪ ⟪ Lx , ¬tx ⟫ , ⟪ Ly , ¬ty ⟫ ⟫ = subst (λ k → odef (L \ k) x) ? ⟪ Lx , fp06 ⟫ where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
581 -- fp06 : ¬ odef (* tx ∪ * ty) x
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
582 -- fp06 (case1 tx) = ¬tx tx
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
583 -- fp06 (case2 ty) = ¬ty ty
1187
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1186
diff changeset
584 fp09 : {x : Ordinal} → odef (L \ * (& (* tx ∪ * ty))) x → odef (* (& (L \ * tx)) ∩ * (& (L \ * ty))) x
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
585 fp09 {x} lt with subst (λ k → odef (L \ k) x) ? lt
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
586 ... | ⟪ Lx , ¬tx∨ty ⟫ = subst₂ (λ j k → odef (j ∩ k) x ) ? ?
1187
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1186
diff changeset
587 ⟪ ⟪ Lx , ( λ tx → ¬tx∨ty (case1 tx)) ⟫ , ⟪ Lx , ( λ ty → ¬tx∨ty (case2 ty)) ⟫ ⟫
1198
6e0cc71097e0 fip <-> compact done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1197
diff changeset
588 fp11 : Subbase (* X) (& (L \ * (& ((* (SB.i (fp02 tx ux)) ∪ * (SB.i (fp02 ty uy)))))))
6e0cc71097e0 fip <-> compact done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1197
diff changeset
589 fp11 = subst (λ k → Subbase (* X) k ) fp04 ( g∩ (SB.sb (fp02 tx ux)) (SB.sb (fp02 ty uy )) )
6e0cc71097e0 fip <-> compact done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1197
diff changeset
590 --
6e0cc71097e0 fip <-> compact done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1197
diff changeset
591 -- becase of fip, finite cover cannot be a cover
6e0cc71097e0 fip <-> compact done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1197
diff changeset
592 --
1195
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1194
diff changeset
593 fcov : Finite-∪ (* (OX CX)) (Compact.finCover compact (OOX CX) cov)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1194
diff changeset
594 fcov = Compact.isFinite compact (OOX CX) cov
1196
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1195
diff changeset
595 0<sb : {i : Ordinal } → (sb : Subbase (* X) (& (L \ * i))) → o∅ o< & (L \ * i)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1195
diff changeset
596 0<sb {i} sb = fip sb
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1195
diff changeset
597 sb : SB (Compact.finCover compact (OOX CX) cov)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1195
diff changeset
598 sb = fp02 fp01 (Compact.isFinite compact (OOX CX) cov)
1198
6e0cc71097e0 fip <-> compact done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1197
diff changeset
599 no-finite-cover : ¬ ( (* (Compact.finCover compact (OOX CX) cov)) covers L )
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
600 no-finite-cover fcovers = ? where -- ⊥-elim ( o<¬≡ (cong (&) (sym (==→o≡ f22))) f25 ) where
1196
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1195
diff changeset
601 f23 : (L \ * (SB.i sb)) ⊆ ( L \ Union (* (Compact.finCover compact (OOX CX) cov)))
1198
6e0cc71097e0 fip <-> compact done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1197
diff changeset
602 f23 = SB.t⊆i sb
1196
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1195
diff changeset
603 f22 : (L \ Union (* (Compact.finCover compact (OOX CX) cov))) =h= od∅
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1195
diff changeset
604 f22 = record { eq→ = λ lt → ⊥-elim ( f24 lt) ; eq← = λ lt → ⊥-elim (¬x<0 lt) } where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1195
diff changeset
605 f24 : {x : Ordinal } → ¬ ( odef (L \ Union (* (Compact.finCover compact (OOX CX) cov))) x )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1195
diff changeset
606 f24 {x} ⟪ Lx , not ⟫ = not record { owner = cover fcovers Lx ; ao = P∋cover fcovers Lx ; ox = isCover fcovers Lx }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1195
diff changeset
607 f25 : & od∅ o< (& (L \ Union (* (Compact.finCover compact (OOX CX) cov))) )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1195
diff changeset
608 f25 = ordtrans<-≤ (subst (λ k → k o< & (L \ * (SB.i sb))) (sym ord-od∅) (0<sb (SB.sb sb) ) ) ( begin
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1195
diff changeset
609 & (L \ * (SB.i sb)) ≤⟨ ⊆→o≤ f23 ⟩
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1195
diff changeset
610 & (L \ Union (* (Compact.finCover compact (OOX CX) cov))) ∎ ) where open o≤-Reasoning O
1199
1338b6c6a9b6 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1198
diff changeset
611 -- if we have no cover, we can consruct NC
1338b6c6a9b6 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1198
diff changeset
612 intersection : NC CX fip 0<X
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
613 intersection with p∨¬p (NC CX fip 0<X)
1184
kono
parents: 1183
diff changeset
614 ... | case1 nc = nc
1185
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1184
diff changeset
615 ... | case2 ¬nc = ⊥-elim ( no-cover record { cover = λ Lx → & (L \ coverf Lx) ; P∋cover = fp22 ; isCover = fp23 } ) where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1184
diff changeset
616 coverSet : {x : Ordinal} → odef L x → HOD
1186
ffe5bc98f9d1 not-covered
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1185
diff changeset
617 coverSet {x} Lx = record { od = record { def = λ y → odef (* X) y ∧ odef (L \ * y) x } ; odmax = X
ffe5bc98f9d1 not-covered
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1185
diff changeset
618 ; <odmax = λ {x} lt → subst (λ k → x o< k) &iso ( odef< (proj1 lt)) }
1185
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1184
diff changeset
619 fp17 : {x : Ordinal} → (Lx : odef L x ) → ¬ ( coverSet Lx =h= od∅ )
1187
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1186
diff changeset
620 fp17 {x} Lx eq = ⊥-elim (¬nc record { x = x ; yx = fp19 } ) where
1185
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1184
diff changeset
621 fp19 : {y : Ordinal} → odef (* X) y → odef (* y) x
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
622 fp19 {y} Xy = ? -- with ∨L\X {L} {* y} {x} Lx
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
623 -- ... | case1 yx = yx
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
624 -- ... | case2 lyx = ⊥-elim ( ¬x<0 {y} ( eq→ eq fp20 )) where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
625 -- fp20 : odef (* X) y ∧ odef (L \ * y) x
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
626 -- fp20 = ⟪ Xy , lyx ⟫
1185
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1184
diff changeset
627 coverf : {x : Ordinal} → (Lx : odef L x ) → HOD
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
628 coverf Lx = minimal (coverSet Lx) (fp17 Lx)
1186
ffe5bc98f9d1 not-covered
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1185
diff changeset
629 fp22 : {x : Ordinal} (lt : odef L x) → odef (* (OX CX)) (& (L \ coverf lt))
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
630 fp22 {x} Lx = subst (λ k → odef k (& (L \ coverf Lx ))) ? record { z = _ ; az = fp25 ; x=ψz = fp24 } where
1186
ffe5bc98f9d1 not-covered
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1185
diff changeset
631 fp24 : & (L \ coverf Lx) ≡ & (L \ * (& (coverf Lx)))
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
632 fp24 = cong (λ k → & ( L \ k )) ?
1185
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1184
diff changeset
633 fp25 : odef (* X) (& (coverf Lx))
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
634 fp25 = proj1 ( x∋minimal (coverSet Lx) (fp17 Lx) )
1186
ffe5bc98f9d1 not-covered
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1185
diff changeset
635 fp23 : {x : Ordinal} (lt : odef L x) → odef (* (& (L \ coverf lt))) x
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
636 fp23 {x} Lx = subst (λ k → odef k x) ? ⟪ Lx , fp26 ⟫ where
1186
ffe5bc98f9d1 not-covered
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1185
diff changeset
637 fp26 : ¬ odef (coverf Lx) x
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
638 fp26 = subst (λ k → ¬ odef k x ) ? (proj2 (proj2 ( x∋minimal (coverSet Lx) (fp17 Lx) )) )
1199
1338b6c6a9b6 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1198
diff changeset
639 limit : {X : Ordinal} (CX : * X ⊆ CS top) (fip : {x : Ordinal} → Subbase (* X) x → o∅ o< x) → Ordinal
1180
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1179
diff changeset
640 limit {X} CX fip with trio< X o∅
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1179
diff changeset
641 ... | tri< a ¬b ¬c = ⊥-elim ( ¬x<0 a )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1179
diff changeset
642 ... | tri≈ ¬a b ¬c = o∅
1199
1338b6c6a9b6 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1198
diff changeset
643 ... | tri> ¬a ¬b c = NC.x ( has-intersection CX fip c)
1175
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1172
diff changeset
644 fip00 : {X : Ordinal} (CX : * X ⊆ CS top)
1187
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1186
diff changeset
645 (fip : {x : Ordinal} → Subbase (* X) x → o∅ o< x)
1175
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1172
diff changeset
646 {x : Ordinal} → odef (* X) x → odef (* x) (limit CX fip )
1180
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1179
diff changeset
647 fip00 {X} CX fip {x} Xx with trio< X o∅
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1179
diff changeset
648 ... | tri< a ¬b ¬c = ⊥-elim ( ¬x<0 a )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1179
diff changeset
649 ... | tri≈ ¬a b ¬c = ⊥-elim ( o<¬≡ (sym b) (subst (λ k → o∅ o< k) &iso (∈∅< Xx) ) )
1199
1338b6c6a9b6 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1198
diff changeset
650 ... | tri> ¬a ¬b c = NC.yx ( has-intersection CX fip c ) Xx
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
651
1113
384ba5a3c019 fix Topology definition
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1112
diff changeset
652 open Filter
1102
a9a7ad7784cc fix topology
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1101
diff changeset
653
1228
e3f20bc4fac9 last part of Tychonoff
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1218
diff changeset
654 --
e3f20bc4fac9 last part of Tychonoff
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1218
diff changeset
655 -- {v | Neighbor lim v} set of u ⊆ v ⊆ P where u is an open set u ∋ x
e3f20bc4fac9 last part of Tychonoff
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1218
diff changeset
656 --
1159
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1158
diff changeset
657 record Neighbor {P : HOD} (TP : Topology P) (x v : Ordinal) : Set n where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1158
diff changeset
658 field
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1158
diff changeset
659 u : Ordinal
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1158
diff changeset
660 ou : odef (OS TP) u
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1158
diff changeset
661 ux : odef (* u) x
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1158
diff changeset
662 v⊆P : * v ⊆ P
1170
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1169
diff changeset
663 u⊆v : * u ⊆ * v
1102
a9a7ad7784cc fix topology
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1101
diff changeset
664
1169
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1168
diff changeset
665 --
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1168
diff changeset
666 -- Neighbor on x is a Filter (on Power P)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1168
diff changeset
667 --
1170
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1169
diff changeset
668 NeighborF : {P : HOD} (TP : Topology P) (x : Ordinal ) → Filter {Power P} {P} (λ x → x)
1169
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1168
diff changeset
669 NeighborF {P} TP x = record { filter = NF ; f⊆L = NF⊆PP ; filter1 = f1 ; filter2 = f2 } where
1168
938ada7fd66c Neighbor Filter
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1167
diff changeset
670 nf00 : {v : Ordinal } → Neighbor TP x v → odef (Power P) v
938ada7fd66c Neighbor Filter
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1167
diff changeset
671 nf00 {v} nei y vy = Neighbor.v⊆P nei vy
1167
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1166
diff changeset
672 NF : HOD
1168
938ada7fd66c Neighbor Filter
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1167
diff changeset
673 NF = record { od = record { def = λ v → Neighbor TP x v } ; odmax = & (Power P) ; <odmax = λ lt → odef< (nf00 lt) }
1167
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1166
diff changeset
674 NF⊆PP : NF ⊆ Power P
1168
938ada7fd66c Neighbor Filter
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1167
diff changeset
675 NF⊆PP = nf00
938ada7fd66c Neighbor Filter
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1167
diff changeset
676 f1 : {p q : HOD} → Power P ∋ q → NF ∋ p → p ⊆ q → NF ∋ q
1170
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1169
diff changeset
677 f1 {p} {q} Pq Np p⊆q = record { u = Neighbor.u Np ; ou = Neighbor.ou Np ; ux = Neighbor.ux Np ; v⊆P = Pq _ ; u⊆v = f11 } where
1168
938ada7fd66c Neighbor Filter
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1167
diff changeset
678 f11 : * (Neighbor.u Np) ⊆ * (& q)
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
679 f11 {x} ux = subst (λ k → odef k x ) ? ( p⊆q (subst (λ k → odef k x) ? (Neighbor.u⊆v Np ux)) )
1168
938ada7fd66c Neighbor Filter
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1167
diff changeset
680 f2 : {p q : HOD} → NF ∋ p → NF ∋ q → Power P ∋ (p ∩ q) → NF ∋ (p ∩ q)
1170
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1169
diff changeset
681 f2 {p} {q} Np Nq Ppq = record { u = upq ; ou = ou ; ux = ux ; v⊆P = Ppq _ ; u⊆v = f20 } where
1168
938ada7fd66c Neighbor Filter
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1167
diff changeset
682 upq : Ordinal
938ada7fd66c Neighbor Filter
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1167
diff changeset
683 upq = & ( * (Neighbor.u Np) ∩ * (Neighbor.u Nq) )
938ada7fd66c Neighbor Filter
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1167
diff changeset
684 ou : odef (OS TP) upq
938ada7fd66c Neighbor Filter
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1167
diff changeset
685 ou = o∩ TP (subst (λ k → odef (OS TP) k) (sym &iso) (Neighbor.ou Np)) (subst (λ k → odef (OS TP) k) (sym &iso) (Neighbor.ou Nq))
938ada7fd66c Neighbor Filter
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1167
diff changeset
686 ux : odef (* upq) x
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
687 ux = subst ( λ k → odef k x ) ? ⟪ Neighbor.ux Np , Neighbor.ux Nq ⟫
1168
938ada7fd66c Neighbor Filter
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1167
diff changeset
688 f20 : * upq ⊆ * (& (p ∩ q))
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
689 f20 = subst₂ (λ j k → j ⊆ k ) ? ? ( λ {x} pq
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
690 → ⟪ subst (λ k → odef k x) ? (Neighbor.u⊆v Np (proj1 pq)) , subst (λ k → odef k x) ? (Neighbor.u⊆v Nq (proj2 pq)) ⟫ )
1153
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1152
diff changeset
691
1165
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1164
diff changeset
692 CAP : (P : HOD) {p q : HOD } → Power P ∋ p → Power P ∋ q → Power P ∋ (p ∩ q)
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
693 CAP P {p} {q} Pp Pq x pqx with subst (λ k → odef k x ) ? pqx
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
694 ... | ⟪ px , qx ⟫ = Pp _ (subst (λ k → odef k x) ? px )
1165
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1164
diff changeset
695
1170
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1169
diff changeset
696 NEG : (P : HOD) {p : HOD } → Power P ∋ p → Power P ∋ (P \ p )
1476
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1300
diff changeset
697 NEG P {p} Pp x vx with subst (λ k → odef k x) ? vx
1170
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1169
diff changeset
698 ... | ⟪ Px , npx ⟫ = Px
1142
7b924ef65373 Topology clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1136
diff changeset
699