Mercurial > hg > Members > kono > Proof > ZF-in-agda
comparison OD.agda @ 396:8c092c042093
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 27 Jul 2020 15:11:54 +0900 |
parents | 77c6123f49ee |
children | 382a4a411aff |
comparison
equal
deleted
inserted
replaced
395:77c6123f49ee | 396:8c092c042093 |
---|---|
137 od∅ = Ord o∅ | 137 od∅ = Ord o∅ |
138 | 138 |
139 odef : HOD → Ordinal → Set n | 139 odef : HOD → Ordinal → Set n |
140 odef A x = def ( od A ) x | 140 odef A x = def ( od A ) x |
141 | 141 |
142 _∋_ : ( a x : HOD ) → Set n | |
143 _∋_ a x = odef a ( od→ord x ) | |
144 | |
145 _c<_ : ( x a : HOD ) → Set n | |
146 x c< a = a ∋ x | |
147 | |
148 d→∋ : ( a : HOD ) { x : Ordinal} → odef a x → a ∋ (ord→od x) | |
149 d→∋ a lt = subst (λ k → odef a k ) (sym diso) lt | |
150 | |
151 cseq : HOD → HOD | |
152 cseq x = record { od = record { def = λ y → odef x (osuc y) } ; odmax = osuc (odmax x) ; <odmax = lemma } where | |
153 lemma : {y : Ordinal} → def (od x) (osuc y) → y o< osuc (odmax x) | |
154 lemma {y} lt = ordtrans <-osuc (ordtrans (<odmax x lt) <-osuc ) | |
155 | |
156 odef-subst : {Z : HOD } {X : Ordinal }{z : HOD } {x : Ordinal }→ odef Z X → Z ≡ z → X ≡ x → odef z x | |
157 odef-subst df refl refl = df | |
158 | |
159 otrans : {a x y : Ordinal } → odef (Ord a) x → odef (Ord x) y → odef (Ord a) y | |
160 otrans x<a y<x = ordtrans y<x x<a | |
161 | |
162 odef→o< : {X : HOD } → {x : Ordinal } → odef X x → x o< od→ord X | |
163 odef→o< {X} {x} lt = o<-subst {_} {_} {x} {od→ord X} ( c<→o< ( odef-subst {X} {x} lt (sym oiso) (sym diso) )) diso diso | |
164 | |
165 odefo→o< : {X y : Ordinal } → odef (ord→od X) y → y o< X | |
166 odefo→o< {X} {y} lt = subst₂ (λ j k → j o< k ) diso diso ( c<→o< (subst (λ k → odef (ord→od X) k ) (sym diso ) lt )) | |
167 | |
142 -- If we have reverse of c<→o<, everything becomes Ordinal | 168 -- If we have reverse of c<→o<, everything becomes Ordinal |
143 o<→c<→HOD=Ord : ( o<→c< : {x y : Ordinal } → x o< y → odef (ord→od y) x ) → {x : HOD } → x ≡ Ord (od→ord x) | 169 o<→c<→HOD=Ord : ( o<→c< : {x y : Ordinal } → x o< y → odef (ord→od y) x ) → {x : HOD } → x ≡ Ord (od→ord x) |
144 o<→c<→HOD=Ord o<→c< {x} = ==→o≡ ( record { eq→ = lemma1 ; eq← = lemma2 } ) where | 170 o<→c<→HOD=Ord o<→c< {x} = ==→o≡ ( record { eq→ = lemma1 ; eq← = lemma2 } ) where |
145 lemma1 : {y : Ordinal} → odef x y → odef (Ord (od→ord x)) y | 171 lemma1 : {y : Ordinal} → odef x y → odef (Ord (od→ord x)) y |
146 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)) | 172 lemma1 {y} lt = subst ( λ k → k o< od→ord x ) diso (c<→o< {ord→od y} {x} (d→∋ x lt)) |
147 lemma2 : {y : Ordinal} → odef (Ord (od→ord x)) y → odef x y | 173 lemma2 : {y : Ordinal} → odef (Ord (od→ord x)) y → odef x y |
148 lemma2 {y} lt = subst (λ k → odef k y ) oiso (o<→c< {y} {od→ord x} lt ) | 174 lemma2 {y} lt = subst (λ k → odef k y ) oiso (o<→c< {y} {od→ord x} lt ) |
149 | |
150 _∋_ : ( a x : HOD ) → Set n | |
151 _∋_ a x = odef a ( od→ord x ) | |
152 | |
153 _c<_ : ( x a : HOD ) → Set n | |
154 x c< a = a ∋ x | |
155 | |
156 cseq : HOD → HOD | |
157 cseq x = record { od = record { def = λ y → odef x (osuc y) } ; odmax = osuc (odmax x) ; <odmax = lemma } where | |
158 lemma : {y : Ordinal} → def (od x) (osuc y) → y o< osuc (odmax x) | |
159 lemma {y} lt = ordtrans <-osuc (ordtrans (<odmax x lt) <-osuc ) | |
160 | |
161 odef-subst : {Z : HOD } {X : Ordinal }{z : HOD } {x : Ordinal }→ odef Z X → Z ≡ z → X ≡ x → odef z x | |
162 odef-subst df refl refl = df | |
163 | |
164 otrans : {a x y : Ordinal } → odef (Ord a) x → odef (Ord x) y → odef (Ord a) y | |
165 otrans x<a y<x = ordtrans y<x x<a | |
166 | |
167 odef→o< : {X : HOD } → {x : Ordinal } → odef X x → x o< od→ord X | |
168 odef→o< {X} {x} lt = o<-subst {_} {_} {x} {od→ord X} ( c<→o< ( odef-subst {X} {x} lt (sym oiso) (sym diso) )) diso diso | |
169 | |
170 odefo→o< : {X y : Ordinal } → odef (ord→od X) y → y o< X | |
171 odefo→o< {X} {y} lt = subst₂ (λ j k → j o< k ) diso diso ( c<→o< (subst (λ k → odef (ord→od X) k ) (sym diso ) lt )) | |
172 | 175 |
173 -- avoiding lv != Zero error | 176 -- avoiding lv != Zero error |
174 orefl : { x : HOD } → { y : Ordinal } → od→ord x ≡ y → od→ord x ≡ y | 177 orefl : { x : HOD } → { y : Ordinal } → od→ord x ≡ y → od→ord x ≡ y |
175 orefl refl = refl | 178 orefl refl = refl |
176 | 179 |
261 | 264 |
262 -- another possible restriction. We reqest no minimality on odmax, so it may arbitrary larger. | 265 -- another possible restriction. We reqest no minimality on odmax, so it may arbitrary larger. |
263 odmax<od→ord : { x y : HOD } → x ∋ y → Set n | 266 odmax<od→ord : { x y : HOD } → x ∋ y → Set n |
264 odmax<od→ord {x} {y} x∋y = odmax x o< od→ord x | 267 odmax<od→ord {x} {y} x∋y = odmax x o< od→ord x |
265 | 268 |
266 -- open import Relation.Binary.HeterogeneousEquality as HE using (_≅_ ) | |
267 -- postulate f-extensionality : { n : Level} → Relation.Binary.PropositionalEquality.Extensionality n (suc n) | 269 -- postulate f-extensionality : { n : Level} → Relation.Binary.PropositionalEquality.Extensionality n (suc n) |
268 | 270 |
269 in-codomain : (X : HOD ) → ( ψ : HOD → HOD ) → OD | 271 in-codomain : (X : HOD ) → ( ψ : HOD → HOD ) → OD |
270 in-codomain X ψ = record { def = λ x → ¬ ( (y : Ordinal ) → ¬ ( odef X y ∧ ( x ≡ od→ord (ψ (ord→od y ))))) } | 272 in-codomain X ψ = record { def = λ x → ¬ ( (y : Ordinal ) → ¬ ( odef X y ∧ ( x ≡ od→ord (ψ (ord→od y ))))) } |
271 | 273 |
285 | 287 |
286 refl-⊆ : {A : HOD} → A ⊆ A | 288 refl-⊆ : {A : HOD} → A ⊆ A |
287 refl-⊆ {A} = record { incl = λ x → x } | 289 refl-⊆ {A} = record { incl = λ x → x } |
288 | 290 |
289 od⊆→o≤ : {x y : HOD } → x ⊆ y → od→ord x o< osuc (od→ord y) | 291 od⊆→o≤ : {x y : HOD } → x ⊆ y → od→ord x o< osuc (od→ord y) |
290 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 ))) | 292 od⊆→o≤ {x} {y} lt = ⊆→o≤ {x} {y} (λ {z} x>z → subst (λ k → def (od y) k ) diso (incl lt (d→∋ x x>z))) |
291 | 293 |
292 -- if we have od→ord (x , x) ≡ osuc (od→ord x), ⊆→o≤ → c<→o< | 294 -- if we have od→ord (x , x) ≡ osuc (od→ord x), ⊆→o≤ → c<→o< |
293 ⊆→o≤→c<→o< : ({x : HOD} → od→ord (x , x) ≡ osuc (od→ord x) ) | 295 ⊆→o≤→c<→o< : ({x : HOD} → od→ord (x , x) ≡ osuc (od→ord x) ) |
294 → ({y z : HOD } → ({x : Ordinal} → def (od y) x → def (od z) x ) → od→ord y o< osuc (od→ord z) ) | 296 → ({y z : HOD } → ({x : Ordinal} → def (od y) x → def (od z) x ) → od→ord y o< osuc (od→ord z) ) |
295 → {x y : HOD } → def (od y) ( od→ord x ) → od→ord x o< od→ord y | 297 → {x y : HOD } → def (od y) ( od→ord x ) → od→ord x o< od→ord y |
313 } | 315 } |
314 | 316 |
315 power< : {A x : HOD } → x ⊆ A → Ord (osuc (od→ord A)) ∋ x | 317 power< : {A x : HOD } → x ⊆ A → Ord (osuc (od→ord A)) ∋ x |
316 power< {A} {x} x⊆A = ⊆→o≤ (λ {y} x∋y → subst (λ k → def (od A) k) diso (lemma y x∋y ) ) where | 318 power< {A} {x} x⊆A = ⊆→o≤ (λ {y} x∋y → subst (λ k → def (od A) k) diso (lemma y x∋y ) ) where |
317 lemma : (y : Ordinal) → def (od x) y → def (od A) (od→ord (ord→od y)) | 319 lemma : (y : Ordinal) → def (od x) y → def (od A) (od→ord (ord→od y)) |
318 lemma y x∋y = incl x⊆A (subst (λ k → def (od x) k ) (sym diso) x∋y ) | 320 lemma y x∋y = incl x⊆A (d→∋ x x∋y) |
319 | 321 |
320 open import Data.Unit | 322 open import Data.Unit |
321 | 323 |
322 ε-induction : { ψ : HOD → Set n} | 324 ε-induction : { ψ : HOD → Set n} |
323 → ( {x : HOD } → ({ y : HOD } → x ∋ y → ψ y ) → ψ x ) | 325 → ( {x : HOD } → ({ y : HOD } → x ∋ y → ψ y ) → ψ x ) |
347 rmax : Ordinal | 349 rmax : Ordinal |
348 rmax = sup-o X (λ y X∋y → od→ord (ψ (ord→od y))) | 350 rmax = sup-o X (λ y X∋y → od→ord (ψ (ord→od y))) |
349 rmax< : {y : Ordinal} → (y o< rmax) ∧ def (in-codomain X ψ) y → y o< rmax | 351 rmax< : {y : Ordinal} → (y o< rmax) ∧ def (in-codomain X ψ) y → y o< rmax |
350 rmax< lt = proj1 lt | 352 rmax< lt = proj1 lt |
351 | 353 |
352 d→∋ : ( a : HOD ) { x : Ordinal} → odef a x → a ∋ (ord→od x) | |
353 d→∋ a lt = subst (λ k → odef a k ) (sym diso) lt | |
354 | |
355 -- | 354 -- |
356 -- If we have LEM, Replace' is equivalent to Replace | 355 -- If we have LEM, Replace' is equivalent to Replace |
357 -- | 356 -- |
358 in-codomain' : (X : HOD ) → ((x : HOD) → X ∋ x → HOD) → OD | 357 in-codomain' : (X : HOD ) → ((x : HOD) → X ∋ x → HOD) → OD |
359 in-codomain' X ψ = record { def = λ x → ¬ ( (y : Ordinal ) → ¬ ( odef X y ∧ ((lt : odef X y) → x ≡ od→ord (ψ (ord→od y ) (d→∋ X lt) )))) } | 358 in-codomain' X ψ = record { def = λ x → ¬ ( (y : Ordinal ) → ¬ ( odef X y ∧ ((lt : odef X y) → x ≡ od→ord (ψ (ord→od y ) (d→∋ X lt) )))) } |
369 Union U = record { od = record { def = λ x → ¬ (∀ (u : Ordinal ) → ¬ ((odef U u) ∧ (odef (ord→od u) x))) } | 368 Union U = record { od = record { def = λ x → ¬ (∀ (u : Ordinal ) → ¬ ((odef U u) ∧ (odef (ord→od u) x))) } |
370 ; odmax = osuc (od→ord U) ; <odmax = umax< } where | 369 ; odmax = osuc (od→ord U) ; <odmax = umax< } where |
371 umax< : {y : Ordinal} → ¬ ((u : Ordinal) → ¬ def (od U) u ∧ def (od (ord→od u)) y) → y o< osuc (od→ord U) | 370 umax< : {y : Ordinal} → ¬ ((u : Ordinal) → ¬ def (od U) u ∧ def (od (ord→od u)) y) → y o< osuc (od→ord U) |
372 umax< {y} not = lemma (FExists _ lemma1 not ) where | 371 umax< {y} not = lemma (FExists _ lemma1 not ) where |
373 lemma0 : {x : Ordinal} → def (od (ord→od x)) y → y o< x | 372 lemma0 : {x : Ordinal} → def (od (ord→od x)) y → y o< x |
374 lemma0 {x} x<y = subst₂ (λ j k → j o< k ) diso diso (c<→o< (subst (λ k → def (od (ord→od x)) k) (sym diso) x<y)) | 373 lemma0 {x} x<y = subst₂ (λ j k → j o< k ) diso diso (c<→o< (d→∋ (ord→od x) x<y )) |
375 lemma2 : {x : Ordinal} → def (od U) x → x o< od→ord U | 374 lemma2 : {x : Ordinal} → def (od U) x → x o< od→ord U |
376 lemma2 {x} x<U = subst (λ k → k o< od→ord U ) diso (c<→o< (subst (λ k → def (od U) k) (sym diso) x<U)) | 375 lemma2 {x} x<U = subst (λ k → k o< od→ord U ) diso (c<→o< (d→∋ U x<U)) |
377 lemma1 : {x : Ordinal} → def (od U) x ∧ def (od (ord→od x)) y → ¬ (od→ord U o< y) | 376 lemma1 : {x : Ordinal} → def (od U) x ∧ def (od (ord→od x)) y → ¬ (od→ord U o< y) |
378 lemma1 {x} lt u<y = o<> u<y (ordtrans (lemma0 (proj2 lt)) (lemma2 (proj1 lt)) ) | 377 lemma1 {x} lt u<y = o<> u<y (ordtrans (lemma0 (proj2 lt)) (lemma2 (proj1 lt)) ) |
379 lemma : ¬ ((od→ord U) o< y ) → y o< osuc (od→ord U) | 378 lemma : ¬ ((od→ord U) o< y ) → y o< osuc (od→ord U) |
380 lemma not with trio< y (od→ord U) | 379 lemma not with trio< y (od→ord U) |
381 lemma not | tri< a ¬b ¬c = ordtrans a <-osuc | 380 lemma not | tri< a ¬b ¬c = ordtrans a <-osuc |
453 lemma = subst (λ k → od→ord (Union (k , ( k , k ))) ≡ od→ord (nat→ω (Suc n))) (sym oiso) refl | 452 lemma = subst (λ k → od→ord (Union (k , ( k , k ))) ≡ od→ord (nat→ω (Suc n))) (sym oiso) refl |
454 | 453 |
455 _=h=_ : (x y : HOD) → Set n | 454 _=h=_ : (x y : HOD) → Set n |
456 x =h= y = od x == od y | 455 x =h= y = od x == od y |
457 | 456 |
457 open import Relation.Binary.HeterogeneousEquality as HE using (_≅_ ) | |
458 | |
459 ord∋eq : {n : Level } {A i : HOD } → { f : (x : HOD ) → A ∋ x → Set n} | |
460 → ( ( x : Ordinal ) → ( lx : odef A x ) → f (ord→od x) (d→∋ A lx) ) | |
461 → ( lt : A ∋ i ) → f i lt | |
462 ord∋eq {n} {A} {i} {f} of lt = subst (λ k → odef A k ) ? (of (od→ord i) ?) | |
463 | |
464 nat→ω-iso : {i : HOD} → (lt : infinite ∋ i ) → nat→ω ( ω→nat i lt ) ≡ i | |
465 nat→ω-iso {i} lt = ord∋eq {_} {infinite} {i} (λ x lx → lemma lx ) lt where | |
466 lemma : {x : Ordinal} → (lx : infinite-d x ) → nat→ω ( ω→nat (ord→od x) (d→∋ infinite lx) ) ≡ ord→od x | |
467 lemma = {!!} | |
468 | |
458 infixr 200 _∈_ | 469 infixr 200 _∈_ |
459 -- infixr 230 _∩_ _∪_ | 470 -- infixr 230 _∩_ _∪_ |
460 | 471 |
461 pair→ : ( x y t : HOD ) → (x , y) ∋ t → ( t =h= x ) ∨ ( t =h= y ) | 472 pair→ : ( x y t : HOD ) → (x , y) ∋ t → ( t =h= x ) ∨ ( t =h= y ) |
462 pair→ x y t (case1 t≡x ) = case1 (subst₂ (λ j k → j =h= k ) oiso oiso (o≡→== t≡x )) | 473 pair→ x y t (case1 t≡x ) = case1 (subst₂ (λ j k → j =h= k ) oiso oiso (o≡→== t≡x )) |
483 union→ X z u xx not = ⊥-elim ( not (od→ord u) ( record { proj1 = proj1 xx | 494 union→ X z u xx not = ⊥-elim ( not (od→ord u) ( record { proj1 = proj1 xx |
484 ; proj2 = subst ( λ k → odef k (od→ord z)) (sym oiso) (proj2 xx) } )) | 495 ; proj2 = subst ( λ k → odef k (od→ord z)) (sym oiso) (proj2 xx) } )) |
485 union← : (X z : HOD) (X∋z : Union X ∋ z) → ¬ ( (u : HOD ) → ¬ ((X ∋ u) ∧ (u ∋ z ))) | 496 union← : (X z : HOD) (X∋z : Union X ∋ z) → ¬ ( (u : HOD ) → ¬ ((X ∋ u) ∧ (u ∋ z ))) |
486 union← X z UX∋z = FExists _ lemma UX∋z where | 497 union← X z UX∋z = FExists _ lemma UX∋z where |
487 lemma : {y : Ordinal} → odef X y ∧ odef (ord→od y) (od→ord z) → ¬ ((u : HOD) → ¬ (X ∋ u) ∧ (u ∋ z)) | 498 lemma : {y : Ordinal} → odef X y ∧ odef (ord→od y) (od→ord z) → ¬ ((u : HOD) → ¬ (X ∋ u) ∧ (u ∋ z)) |
488 lemma {y} xx not = not (ord→od y) record { proj1 = subst ( λ k → odef X k ) (sym diso) (proj1 xx ) ; proj2 = proj2 xx } | 499 lemma {y} xx not = not (ord→od y) record { proj1 = d→∋ X (proj1 xx) ; proj2 = proj2 xx } |
489 | 500 |
490 ψiso : {ψ : HOD → Set n} {x y : HOD } → ψ x → x ≡ y → ψ y | 501 ψiso : {ψ : HOD → Set n} {x y : HOD } → ψ x → x ≡ y → ψ y |
491 ψiso {ψ} t refl = t | 502 ψiso {ψ} t refl = t |
492 selection : {ψ : HOD → Set n} {X y : HOD} → ((X ∋ y) ∧ ψ y) ⇔ (Select X ψ ∋ y) | 503 selection : {ψ : HOD → Set n} {X y : HOD} → ((X ∋ y) ∧ ψ y) ⇔ (Select X ψ ∋ y) |
493 selection {ψ} {X} {y} = record { | 504 selection {ψ} {X} {y} = record { |
523 -- | 534 -- |
524 -- | 535 -- |
525 ∩-≡ : { a b : HOD } → ({x : HOD } → (a ∋ x → b ∋ x)) → a =h= ( b ∩ a ) | 536 ∩-≡ : { a b : HOD } → ({x : HOD } → (a ∋ x → b ∋ x)) → a =h= ( b ∩ a ) |
526 ∩-≡ {a} {b} inc = record { | 537 ∩-≡ {a} {b} inc = record { |
527 eq→ = λ {x} x<a → record { proj2 = x<a ; | 538 eq→ = λ {x} x<a → record { proj2 = x<a ; |
528 proj1 = odef-subst {_} {_} {b} {x} (inc (odef-subst {_} {_} {a} {_} x<a refl (sym diso) )) refl diso } ; | 539 proj1 = odef-subst {_} {_} {b} {x} (inc (d→∋ a x<a)) refl diso } ; |
529 eq← = λ {x} x<a∩b → proj2 x<a∩b } | 540 eq← = λ {x} x<a∩b → proj2 x<a∩b } |
530 -- | 541 -- |
531 -- Transitive Set case | 542 -- Transitive Set case |
532 -- we have t ∋ x → Ord a ∋ x means t is a subset of Ord a, that is (Ord a) ∩ t =h= t | 543 -- we have t ∋ x → Ord a ∋ x means t is a subset of Ord a, that is (Ord a) ∩ t =h= t |
533 -- OPwr (Ord a) is a sup of (Ord a) ∩ t, so OPwr (Ord a) ∋ t | 544 -- OPwr (Ord a) is a sup of (Ord a) ∩ t, so OPwr (Ord a) ∋ t |
538 lemma refl (lemma1 lemma-eq )where | 549 lemma refl (lemma1 lemma-eq )where |
539 lemma-eq : ((Ord a) ∩ t) =h= t | 550 lemma-eq : ((Ord a) ∩ t) =h= t |
540 eq→ lemma-eq {z} w = proj2 w | 551 eq→ lemma-eq {z} w = proj2 w |
541 eq← lemma-eq {z} w = record { proj2 = w ; | 552 eq← lemma-eq {z} w = record { proj2 = w ; |
542 proj1 = odef-subst {_} {_} {(Ord a)} {z} | 553 proj1 = odef-subst {_} {_} {(Ord a)} {z} |
543 ( t→A (odef-subst {_} {_} {t} {od→ord (ord→od z)} w refl (sym diso) )) refl diso } | 554 ( t→A (d→∋ t w)) refl diso } |
544 lemma1 : {a : Ordinal } { t : HOD } | 555 lemma1 : {a : Ordinal } { t : HOD } |
545 → (eq : ((Ord a) ∩ t) =h= t) → od→ord ((Ord a) ∩ (ord→od (od→ord t))) ≡ od→ord t | 556 → (eq : ((Ord a) ∩ t) =h= t) → od→ord ((Ord a) ∩ (ord→od (od→ord t))) ≡ od→ord t |
546 lemma1 {a} {t} eq = subst (λ k → od→ord ((Ord a) ∩ k) ≡ od→ord t ) (sym oiso) (cong (λ k → od→ord k ) (==→o≡ eq )) | 557 lemma1 {a} {t} eq = subst (λ k → od→ord ((Ord a) ∩ k) ≡ od→ord t ) (sym oiso) (cong (λ k → od→ord k ) (==→o≡ eq )) |
547 lemma2 : (od→ord t) o< (osuc (od→ord (Ord a))) | 558 lemma2 : (od→ord t) o< (osuc (od→ord (Ord a))) |
548 lemma2 = ⊆→o≤ {t} {Ord a} (λ {x} x<t → subst (λ k → def (od (Ord a)) k) diso (t→A (subst (λ k → def (od t) k) (sym diso) x<t))) | 559 lemma2 = ⊆→o≤ {t} {Ord a} (λ {x} x<t → subst (λ k → def (od (Ord a)) k) diso (t→A (d→∋ t x<t))) |
549 lemma : od→ord ((Ord a) ∩ (ord→od (od→ord t)) ) o< sup-o (Ord (osuc (od→ord (Ord a)))) (λ x lt → od→ord ((Ord a) ∩ (ord→od x))) | 560 lemma : od→ord ((Ord a) ∩ (ord→od (od→ord t)) ) o< sup-o (Ord (osuc (od→ord (Ord a)))) (λ x lt → od→ord ((Ord a) ∩ (ord→od x))) |
550 lemma = sup-o< _ lemma2 | 561 lemma = sup-o< _ lemma2 |
551 | 562 |
552 -- | 563 -- |
553 -- Every set in HOD is a subset of Ordinals, so make OPwr (Ord (od→ord A)) first | 564 -- Every set in HOD is a subset of Ordinals, so make OPwr (Ord (od→ord A)) first |
589 lemma9 : def (od (Ord (Ordinals.osuc O (od→ord (Ord (od→ord A)))))) (od→ord (Ord (od→ord A))) | 600 lemma9 : def (od (Ord (Ordinals.osuc O (od→ord (Ord (od→ord A)))))) (od→ord (Ord (od→ord A))) |
590 lemma9 = <-osuc | 601 lemma9 = <-osuc |
591 lemmab : od→ord ((Ord (od→ord A)) ∩ (ord→od (od→ord (Ord (od→ord A) )))) o< sup1 | 602 lemmab : od→ord ((Ord (od→ord A)) ∩ (ord→od (od→ord (Ord (od→ord A) )))) o< sup1 |
592 lemmab = sup-o< (Ord (osuc (od→ord (Ord (od→ord A))))) lemma9 | 603 lemmab = sup-o< (Ord (osuc (od→ord (Ord (od→ord A))))) lemma9 |
593 lemmad : Ord (osuc (od→ord A)) ∋ t | 604 lemmad : Ord (osuc (od→ord A)) ∋ t |
594 lemmad = ⊆→o≤ (λ {x} lt → subst (λ k → def (od A) k ) diso (t→A (subst (λ k → def (od t) k ) (sym diso) lt))) | 605 lemmad = ⊆→o≤ (λ {x} lt → subst (λ k → def (od A) k ) diso (t→A (d→∋ t lt))) |
595 lemmac : ((Ord (od→ord A)) ∩ (ord→od (od→ord (Ord (od→ord A) )))) =h= Ord (od→ord A) | 606 lemmac : ((Ord (od→ord A)) ∩ (ord→od (od→ord (Ord (od→ord A) )))) =h= Ord (od→ord A) |
596 lemmac = record { eq→ = lemmaf ; eq← = lemmag } where | 607 lemmac = record { eq→ = lemmaf ; eq← = lemmag } where |
597 lemmaf : {x : Ordinal} → def (od ((Ord (od→ord A)) ∩ (ord→od (od→ord (Ord (od→ord A)))))) x → def (od (Ord (od→ord A))) x | 608 lemmaf : {x : Ordinal} → def (od ((Ord (od→ord A)) ∩ (ord→od (od→ord (Ord (od→ord A)))))) x → def (od (Ord (od→ord A))) x |
598 lemmaf {x} lt = proj1 lt | 609 lemmaf {x} lt = proj1 lt |
599 lemmag : {x : Ordinal} → def (od (Ord (od→ord A))) x → def (od ((Ord (od→ord A)) ∩ (ord→od (od→ord (Ord (od→ord A)))))) x | 610 lemmag : {x : Ordinal} → def (od (Ord (od→ord A))) x → def (od ((Ord (od→ord A)) ∩ (ord→od (od→ord (Ord (od→ord A)))))) x |