comparison OD.agda @ 324:fbabb20f222e

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 04 Jul 2020 18:18:17 +0900
parents e228e96965f0
children 1a54dbe1ea4c
comparison
equal deleted inserted replaced
323:e228e96965f0 324:fbabb20f222e
130 lemma1 : {y : Ordinal} → odef x y → odef (Ord (od→ord x)) y 130 lemma1 : {y : Ordinal} → odef x y → odef (Ord (od→ord x)) y
131 lemma1 {y} lt = subst ( λ k → k o< od→ord x ) diso (c<→o< {ord→od y} {x} (subst (λ k → odef x k ) (sym diso) lt)) 131 lemma1 {y} lt = subst ( λ k → k o< od→ord x ) diso (c<→o< {ord→od y} {x} (subst (λ k → odef x k ) (sym diso) lt))
132 lemma2 : {y : Ordinal} → odef (Ord (od→ord x)) y → odef x y 132 lemma2 : {y : Ordinal} → odef (Ord (od→ord x)) y → odef x y
133 lemma2 {y} lt = subst (λ k → odef k y ) oiso (o<→c< {y} {od→ord x} lt ) 133 lemma2 {y} lt = subst (λ k → odef k y ) oiso (o<→c< {y} {od→ord x} lt )
134 134
135
135 _∋_ : ( a x : HOD ) → Set n 136 _∋_ : ( a x : HOD ) → Set n
136 _∋_ a x = odef a ( od→ord x ) 137 _∋_ a x = odef a ( od→ord x )
137 138
138 _c<_ : ( x a : HOD ) → Set n 139 _c<_ : ( x a : HOD ) → Set n
139 x c< a = a ∋ x 140 x c< a = a ∋ x
238 subset-lemma {A} {x} = record { 239 subset-lemma {A} {x} = record {
239 proj1 = λ lt → record { incl = λ x∋z → proj1 (lt x∋z) } 240 proj1 = λ lt → record { incl = λ x∋z → proj1 (lt x∋z) }
240 ; proj2 = λ x⊆A lt → record { proj1 = incl x⊆A lt ; proj2 = lt } 241 ; proj2 = λ x⊆A lt → record { proj1 = incl x⊆A lt ; proj2 = lt }
241 } 242 }
242 243
244 od⊆→o≤ : {x y : HOD } → x ⊆ y → od→ord x o< osuc (od→ord y)
245 od⊆→o≤ {x} {y} lt = ⊆→o≤ {x} {y} (λ {z} x>z → subst (λ k → def (od y) k ) diso (incl lt (subst (λ k → def (od x) k ) (sym diso) x>z )))
246
243 power< : {A x : HOD } → x ⊆ A → Ord (osuc (od→ord A)) ∋ x 247 power< : {A x : HOD } → x ⊆ A → Ord (osuc (od→ord A)) ∋ x
244 power< {A} {x} x⊆A = ⊆→o≤ (λ {y} x∋y → subst (λ k → def (od A) k) diso (lemma y x∋y ) ) where 248 power< {A} {x} x⊆A = ⊆→o≤ (λ {y} x∋y → subst (λ k → def (od A) k) diso (lemma y x∋y ) ) where
245 lemma : (y : Ordinal) → def (od x) y → def (od A) (od→ord (ord→od y)) 249 lemma : (y : Ordinal) → def (od x) y → def (od A) (od→ord (ord→od y))
246 lemma y x∋y = incl x⊆A (subst (λ k → def (od x) k ) (sym diso) x∋y ) 250 lemma y x∋y = incl x⊆A (subst (λ k → def (od x) k ) (sym diso) x∋y )
247 251
248 open import Data.Unit 252 open import Data.Unit
249 253
250 ε-induction : { ψ : HOD → Set (suc n)} 254 ε-induction : { ψ : HOD → Set n}
251 → ( {x : HOD } → ({ y : HOD } → x ∋ y → ψ y ) → ψ x ) 255 → ( {x : HOD } → ({ y : HOD } → x ∋ y → ψ y ) → ψ x )
252 → (x : HOD ) → ψ x 256 → (x : HOD ) → ψ x
253 ε-induction {ψ} ind x = subst (λ k → ψ k ) oiso (ε-induction-ord (osuc (od→ord x)) <-osuc ) where 257 ε-induction {ψ} ind x = subst (λ k → ψ k ) oiso (ε-induction-ord (osuc (od→ord x)) <-osuc ) where
254 induction : (ox : Ordinal) → ((oy : Ordinal) → oy o< ox → ψ (ord→od oy)) → ψ (ord→od ox) 258 induction : (ox : Ordinal) → ((oy : Ordinal) → oy o< ox → ψ (ord→od oy)) → ψ (ord→od ox)
255 induction ox prev = ind ( λ {y} lt → subst (λ k → ψ k ) oiso (prev (od→ord y) (o<-subst (c<→o< lt) refl diso ))) 259 induction ox prev = ind ( λ {y} lt → subst (λ k → ψ k ) oiso (prev (od→ord y) (o<-subst (c<→o< lt) refl diso )))
313 data infinite-d : ( x : Ordinal ) → Set n where 317 data infinite-d : ( x : Ordinal ) → Set n where
314 iφ : infinite-d o∅ 318 iφ : infinite-d o∅
315 isuc : {x : Ordinal } → infinite-d x → 319 isuc : {x : Ordinal } → infinite-d x →
316 infinite-d (od→ord ( Union (ord→od x , (ord→od x , ord→od x ) ) )) 320 infinite-d (od→ord ( Union (ord→od x , (ord→od x , ord→od x ) ) ))
317 321
318 is-ω : (x : Ordinal) → Dec (infinite-d x )
319 is-ω x = {!!}
320
321 infinite : HOD 322 infinite : HOD
322 infinite = record { od = record { def = λ x → infinite-d x } ; odmax = next o∅ ; <odmax = lemma1 } where 323 infinite = record { od = record { def = λ x → infinite-d x } ; odmax = next o∅ ; <odmax = lemma } where
323 lemma : {y : Ordinal} → Lift (suc n) (infinite-d y → y o< next o∅ ) 324 u : HOD → HOD
324 lemma {y} = TransFinite {λ x → Lift (suc n) (infinite-d x → x o< next o∅) } ind y where 325 u x = Union (x , (x , x))
325 ind : (x : Ordinal) → ((z : Ordinal) → z o< x → Lift (suc n) (infinite-d z → z o< (next o∅))) → 326 lemma1 : {x : HOD} → u x ⊆ Union (u x , (u x , u x))
326 Lift (suc n) (infinite-d x → x o< (next o∅)) 327 lemma1 {x} = record { incl = λ {y} lt → lemma2 y lt } where
327 ind x prev with {!!} 328 lemma2 : (y : HOD) → u x ∋ y → ((z : Ordinal) → (z ≡ od→ord (u x)) ∨ (z ≡ od→ord (u x , u x)) ∧ def (od (ord→od z)) (od→ord y) → ⊥) → ⊥
328 ... | ttt = {!!} 329 lemma2 y lt not = not (od→ord (u x)) record { proj1 = case1 refl ; proj2 = subst (λ k → def (od k) (od→ord y) ) (sym oiso) lt }
329 lemma1 : {y : Ordinal} → infinite-d y → y o< next o∅ 330 lemma3 : {x : HOD} → od→ord (u x) o< osuc (od→ord ( Union (u x , (u x , u x)) ))
330 lemma1 {y} with lemma {y} 331 lemma3 {x} = od⊆→o≤ lemma1
331 lemma1 {y} | lift p = p 332 lemma : {y : Ordinal} → infinite-d y → y o< next o∅
333 lemma {y} = TransFinite {λ x → infinite-d x → x o< next o∅ } ind y where
334 ind : (x : Ordinal) → ((z : Ordinal) → z o< x → infinite-d z → z o< (next o∅)) →
335 infinite-d x → x o< (next o∅)
336 ind o∅ prev iφ = proj1 next-limit
337 ind x prev (isuc lt) = lemma0 where
338 lemma0 : {x : Ordinal} → od→ord (Union (ord→od x , (ord→od x , ord→od x))) o< next o∅
339 lemma0 {x} = {!!}
332 340
333 _=h=_ : (x y : HOD) → Set n 341 _=h=_ : (x y : HOD) → Set n
334 x =h= y = od x == od y 342 x =h= y = od x == od y
335 343
336 infixr 200 _∈_ 344 infixr 200 _∈_