comparison OD.agda @ 308:b172ab9f12bc

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 30 Jun 2020 00:05:16 +0900
parents d5c5d87b72df
children d4802179a66f
comparison
equal deleted inserted replaced
307:d5c5d87b72df 308:b172ab9f12bc
76 76
77 record HOD : Set (suc n) where 77 record HOD : Set (suc n) where
78 field 78 field
79 od : OD 79 od : OD
80 odmax : Ordinal 80 odmax : Ordinal
81 <odmax : {x : Ordinal} → def od x → x o< odmax 81 <odmax : {y : Ordinal} → def od y → y o< odmax
82 82
83 record OrdinalSubset (maxordinal : Ordinal) : Set (suc n) where 83 record OrdinalSubset (maxordinal : Ordinal) : Set (suc n) where
84 field 84 field
85 os→ : (x : Ordinal) → x o< maxordinal → Ordinal 85 os→ : (x : Ordinal) → x o< maxordinal → Ordinal
86 os← : Ordinal → Ordinal 86 os← : Ordinal → Ordinal
120 lemma {x} lt = lt 120 lemma {x} lt = lt
121 121
122 od∅ : HOD 122 od∅ : HOD
123 od∅ = Ord o∅ 123 od∅ = Ord o∅
124 124
125 sup-od : ( HOD → HOD ) → HOD
126 sup-od = {!!}
127 sup-c< : ( ψ : HOD → HOD ) → ∀ {x : HOD } → def (od ( sup-od ψ )) (od→ord ( ψ x ))
128 sup-c< = {!!}
129
130 odef : HOD → Ordinal → Set n 125 odef : HOD → Ordinal → Set n
131 odef A x = def ( od A ) x 126 odef A x = def ( od A ) x
132 127
133 o<→c<→HOD=Ord : ( {x y : Ordinal } → x o< y → odef (ord→od y) x ) → {x : HOD } → x ≡ Ord (od→ord x) 128 o<→c<→HOD=Ord : ( {x y : Ordinal } → x o< y → odef (ord→od y) x ) → {x : HOD } → x ≡ Ord (od→ord x)
134 o<→c<→HOD=Ord o<→c< {x} = ==→o≡ ( record { eq→ = lemma1 ; eq← = lemma2 } ) where 129 o<→c<→HOD=Ord o<→c< {x} = ==→o≡ ( record { eq→ = lemma1 ; eq← = lemma2 } ) where
142 137
143 _c<_ : ( x a : HOD ) → Set n 138 _c<_ : ( x a : HOD ) → Set n
144 x c< a = a ∋ x 139 x c< a = a ∋ x
145 140
146 cseq : {n : Level} → HOD → HOD 141 cseq : {n : Level} → HOD → HOD
147 cseq x = record { od = record { def = λ y → odef x (osuc y) } ; odmax = osuc (odmax x) ; <odmax = {!!} } where 142 cseq x = record { od = record { def = λ y → odef x (osuc y) } ; odmax = osuc (odmax x) ; <odmax = lemma } where
143 lemma : {y : Ordinal} → def (od x) (osuc y) → y o< osuc (odmax x)
144 lemma {y} lt = ordtrans <-osuc (ordtrans (<odmax x lt) <-osuc )
148 145
149 odef-subst : {Z : HOD } {X : Ordinal }{z : HOD } {x : Ordinal }→ odef Z X → Z ≡ z → X ≡ x → odef z x 146 odef-subst : {Z : HOD } {X : Ordinal }{z : HOD } {x : Ordinal }→ odef Z X → Z ≡ z → X ≡ x → odef z x
150 odef-subst df refl refl = df 147 odef-subst df refl refl = df
151 148
152 otrans : {n : Level} {a x y : Ordinal } → odef (Ord a) x → odef (Ord x) y → odef (Ord a) y 149 otrans : {n : Level} {a x y : Ordinal } → odef (Ord a) x → odef (Ord x) y → odef (Ord a) y
153 otrans x<a y<x = ordtrans y<x x<a 150 otrans x<a y<x = ordtrans y<x x<a
154 151
155 odef→o< : {X : HOD } → {x : Ordinal } → odef X x → x o< od→ord X 152 odef→o< : {X : HOD } → {x : Ordinal } → odef X x → x o< od→ord X
156 odef→o< {X} {x} lt = o<-subst {_} {_} {x} {od→ord X} ( c<→o< ( odef-subst {X} {x} lt (sym oiso) (sym diso) )) diso diso 153 odef→o< {X} {x} lt = o<-subst {_} {_} {x} {od→ord X} ( c<→o< ( odef-subst {X} {x} lt (sym oiso) (sym diso) )) diso diso
157
158 154
159 -- avoiding lv != Zero error 155 -- avoiding lv != Zero error
160 orefl : { x : HOD } → { y : Ordinal } → od→ord x ≡ y → od→ord x ≡ y 156 orefl : { x : HOD } → { y : Ordinal } → od→ord x ≡ y → od→ord x ≡ y
161 orefl refl = refl 157 orefl refl = refl
162 158
210 is-o∅ x | tri< a ¬b ¬c = no ¬b 206 is-o∅ x | tri< a ¬b ¬c = no ¬b
211 is-o∅ x | tri≈ ¬a b ¬c = yes b 207 is-o∅ x | tri≈ ¬a b ¬c = yes b
212 is-o∅ x | tri> ¬a ¬b c = no ¬b 208 is-o∅ x | tri> ¬a ¬b c = no ¬b
213 209
214 _,_ : HOD → HOD → HOD 210 _,_ : HOD → HOD → HOD
215 x , y = record { od = record { def = λ t → (t ≡ od→ord x ) ∨ ( t ≡ od→ord y ) } ; odmax = {!!} ; <odmax = {!!} } -- Ord (omax (od→ord x) (od→ord y)) 211 x , y = record { od = record { def = λ t → (t ≡ od→ord x ) ∨ ( t ≡ od→ord y ) } ; odmax = omax (od→ord x) (od→ord y) ; <odmax = lemma } where
212 lemma : {t : Ordinal} → (t ≡ od→ord x) ∨ (t ≡ od→ord y) → t o< omax (od→ord x) (od→ord y)
213 lemma {t} (case1 refl) = omax-x _ _
214 lemma {t} (case2 refl) = omax-y _ _
215
216 216
217 -- open import Relation.Binary.HeterogeneousEquality as HE using (_≅_ ) 217 -- open import Relation.Binary.HeterogeneousEquality as HE using (_≅_ )
218 -- postulate f-extensionality : { n : Level} → Relation.Binary.PropositionalEquality.Extensionality n (suc n) 218 -- postulate f-extensionality : { n : Level} → Relation.Binary.PropositionalEquality.Extensionality n (suc n)
219 219
220 in-codomain : (X : HOD ) → ( ψ : HOD → HOD ) → HOD 220 in-codomain : (X : HOD ) → ( ψ : HOD → HOD ) → HOD
221 in-codomain X ψ = record { od = record { def = λ x → ¬ ( (y : Ordinal ) → ¬ ( odef X y ∧ ( x ≡ od→ord (ψ (ord→od y ))))) } ; odmax = {!!} ; <odmax = {!!} } 221 in-codomain X ψ = record { od = record { def = λ x → ¬ ( (y : Ordinal ) → ¬ ( odef X y ∧ ( x ≡ od→ord (ψ (ord→od y ))))) } ; odmax = {!!} ; <odmax = {!!} }
222 222
223 -- Power Set of X ( or constructible by λ y → odef X (od→ord y ) 223 -- Power Set of X ( or constructible by λ y → odef X (od→ord y )
224 224
225 ZFSubset : (A x : HOD ) → HOD 225 ZFSubset : (A x : HOD ) → HOD
226 ZFSubset A x = record { od = record { def = λ y → odef A y ∧ odef x y } ; odmax = {!!} ; <odmax = {!!} } -- roughly x = A → Set 226 ZFSubset A x = record { od = record { def = λ y → odef A y ∧ odef x y } ; odmax = omin (odmax A) (odmax x) ; <odmax = lemma } where -- roughly x = A → Set
227 lemma : {y : Ordinal} → def (od A) y ∧ def (od x) y → y o< omin (odmax A) (odmax x)
228 lemma {y} and = min1 (<odmax A (proj1 and)) (<odmax x (proj2 and))
229
227 230
228 OPwr : (A : HOD ) → HOD 231 OPwr : (A : HOD ) → HOD
229 OPwr A = Ord ( sup-o A {!!} ) -- ( λ x → od→ord ( ZFSubset A x) ) ) 232 OPwr A = Ord ( sup-o A {!!} ) -- ( λ x → od→ord ( ZFSubset A x) ) )
230 233
231 -- _⊆_ : ( A B : HOD ) → ∀{ x : HOD } → Set n 234 -- _⊆_ : ( A B : HOD ) → ∀{ x : HOD } → Set n
273 ; infinite = infinite 276 ; infinite = infinite
274 ; isZF = isZF 277 ; isZF = isZF
275 } where 278 } where
276 ZFSet = HOD -- is less than Ords because of maxod 279 ZFSet = HOD -- is less than Ords because of maxod
277 Select : (X : HOD ) → ((x : HOD ) → Set n ) → HOD 280 Select : (X : HOD ) → ((x : HOD ) → Set n ) → HOD
278 Select X ψ = record { od = record { def = λ x → ( odef X x ∧ ψ ( ord→od x )) } ; odmax = {!!} ; <odmax = {!!} } 281 Select X ψ = record { od = record { def = λ x → ( odef X x ∧ ψ ( ord→od x )) } ; odmax = odmax X ; <odmax = λ y → <odmax X (proj1 y) }
279 Replace : HOD → (HOD → HOD ) → HOD 282 Replace : HOD → (HOD → HOD ) → HOD
280 Replace X ψ = record { od = record { def = λ x → (x o< sup-o X {!!} ) ∧ odef (in-codomain X ψ) x } ; odmax = {!!} ; <odmax = {!!} } -- ( λ x → od→ord (ψ x)) 283 Replace X ψ = record { od = record { def = λ x → (x o< sup-o X {!!} ) ∧ odef (in-codomain X ψ) x } ; odmax = {!!} ; <odmax = {!!} } -- ( λ x → od→ord (ψ x))
281 _∩_ : ( A B : ZFSet ) → ZFSet 284 _∩_ : ( A B : ZFSet ) → ZFSet
282 A ∩ B = record { od = record { def = λ x → odef A x ∧ odef B x } ; odmax = {!!} ; <odmax = {!!} } 285 A ∩ B = record { od = record { def = λ x → odef A x ∧ odef B x } ; odmax = {!!} ; <odmax = {!!} }
283 Union : HOD → HOD 286 Union : HOD → HOD
357 selection : {ψ : HOD → Set n} {X y : HOD} → ((X ∋ y) ∧ ψ y) ⇔ (Select X ψ ∋ y) 360 selection : {ψ : HOD → Set n} {X y : HOD} → ((X ∋ y) ∧ ψ y) ⇔ (Select X ψ ∋ y)
358 selection {ψ} {X} {y} = record { 361 selection {ψ} {X} {y} = record {
359 proj1 = λ cond → record { proj1 = proj1 cond ; proj2 = ψiso {ψ} (proj2 cond) (sym oiso) } 362 proj1 = λ cond → record { proj1 = proj1 cond ; proj2 = ψiso {ψ} (proj2 cond) (sym oiso) }
360 ; proj2 = λ select → record { proj1 = proj1 select ; proj2 = ψiso {ψ} (proj2 select) oiso } 363 ; proj2 = λ select → record { proj1 = proj1 select ; proj2 = ψiso {ψ} (proj2 select) oiso }
361 } 364 }
365 sup-od : ( HOD → HOD ) → HOD
366 sup-od = {!!}
367 sup-c< : ( ψ : HOD → HOD ) → ∀ {x : HOD } → def (od ( sup-od ψ )) (od→ord ( ψ x ))
368 sup-c< = {!!}
362 replacement← : {ψ : HOD → HOD} (X x : HOD) → X ∋ x → Replace X ψ ∋ ψ x 369 replacement← : {ψ : HOD → HOD} (X x : HOD) → X ∋ x → Replace X ψ ∋ ψ x
363 replacement← {ψ} X x lt = record { proj1 = {!!} ; proj2 = lemma } where -- sup-c< ψ {x} 370 replacement← {ψ} X x lt = record { proj1 = {!!} ; proj2 = lemma } where -- sup-c< ψ {x}
364 lemma : odef (in-codomain X ψ) (od→ord (ψ x)) 371 lemma : odef (in-codomain X ψ) (od→ord (ψ x))
365 lemma not = ⊥-elim ( not ( od→ord x ) (record { proj1 = lt ; proj2 = cong (λ k → od→ord (ψ k)) (sym oiso)} )) 372 lemma not = ⊥-elim ( not ( od→ord x ) (record { proj1 = lt ; proj2 = cong (λ k → od→ord (ψ k)) (sym oiso)} ))
366 replacement→ : {ψ : HOD → HOD} (X x : HOD) → (lt : Replace X ψ ∋ x) → ¬ ( (y : HOD) → ¬ (x =h= ψ y)) 373 replacement→ : {ψ : HOD → HOD} (X x : HOD) → (lt : Replace X ψ ∋ x) → ¬ ( (y : HOD) → ¬ (x =h= ψ y))