comparison OD.agda @ 317:57df07b63cae

Power done
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Fri, 03 Jul 2020 18:29:51 +0900
parents c030a9655e79
children 9e0c97ab3a4a
comparison
equal deleted inserted replaced
316:c030a9655e79 317:57df07b63cae
309 ; ε-induction = ε-induction 309 ; ε-induction = ε-induction
310 ; infinity∅ = infinity∅ 310 ; infinity∅ = infinity∅
311 ; infinity = infinity 311 ; infinity = infinity
312 ; selection = λ {X} {ψ} {y} → selection {X} {ψ} {y} 312 ; selection = λ {X} {ψ} {y} → selection {X} {ψ} {y}
313 ; replacement← = replacement← 313 ; replacement← = replacement←
314 ; replacement→ = replacement→ 314 ; replacement→ = λ {ψ} → replacement→ {ψ}
315 -- ; choice-func = choice-func 315 -- ; choice-func = choice-func
316 -- ; choice = choice 316 -- ; choice = choice
317 } where 317 } where
318 318
319 pair→ : ( x y t : ZFSet ) → (x , y) ∋ t → ( t =h= x ) ∨ ( t =h= y ) 319 pair→ : ( x y t : ZFSet ) → (x , y) ∋ t → ( t =h= x ) ∨ ( t =h= y )
413 -- 413 --
414 power→ : ( A t : HOD) → Power A ∋ t → {x : HOD} → t ∋ x → ¬ ¬ (A ∋ x) 414 power→ : ( A t : HOD) → Power A ∋ t → {x : HOD} → t ∋ x → ¬ ¬ (A ∋ x)
415 power→ A t P∋t {x} t∋x = FExists _ lemma5 lemma4 where 415 power→ A t P∋t {x} t∋x = FExists _ lemma5 lemma4 where
416 a = od→ord A 416 a = od→ord A
417 lemma2 : ¬ ( (y : HOD) → ¬ (t =h= (A ∩ y))) 417 lemma2 : ¬ ( (y : HOD) → ¬ (t =h= (A ∩ y)))
418 lemma2 = replacement→ (OPwr (Ord (od→ord A))) t P∋t 418 lemma2 = replacement→ {λ x → A ∩ x} (OPwr (Ord (od→ord A))) t P∋t
419 lemma3 : (y : HOD) → t =h= ( A ∩ y ) → ¬ ¬ (A ∋ x) 419 lemma3 : (y : HOD) → t =h= ( A ∩ y ) → ¬ ¬ (A ∋ x)
420 lemma3 y eq not = not (proj1 (eq→ eq t∋x)) 420 lemma3 y eq not = not (proj1 (eq→ eq t∋x))
421 lemma4 : ¬ ((y : Ordinal) → ¬ (t =h= (A ∩ ord→od y))) 421 lemma4 : ¬ ((y : Ordinal) → ¬ (t =h= (A ∩ ord→od y)))
422 lemma4 not = lemma2 ( λ y not1 → not (od→ord y) (subst (λ k → t =h= ( A ∩ k )) (sym oiso) not1 )) 422 lemma4 not = lemma2 ( λ y not1 → not (od→ord y) (subst (λ k → t =h= ( A ∩ k )) (sym oiso) not1 ))
423 lemma5 : {y : Ordinal} → t =h= (A ∩ ord→od y) → ¬ ¬ (odef A (od→ord x)) 423 lemma5 : {y : Ordinal} → t =h= (A ∩ ord→od y) → ¬ ¬ (odef A (od→ord x))
433 lemma4 : (A ∩ ord→od (od→ord t)) ≡ t 433 lemma4 : (A ∩ ord→od (od→ord t)) ≡ t
434 lemma4 = let open ≡-Reasoning in begin 434 lemma4 = let open ≡-Reasoning in begin
435 A ∩ ord→od (od→ord t) 435 A ∩ ord→od (od→ord t)
436 ≡⟨ cong (λ k → A ∩ k) oiso ⟩ 436 ≡⟨ cong (λ k → A ∩ k) oiso ⟩
437 A ∩ t 437 A ∩ t
438 ≡⟨ sym (==→o≡ ( ∩-≡ t→A )) ⟩ 438 ≡⟨ sym (==→o≡ ( ∩-≡ {t} {A} t→A )) ⟩
439 t 439 t
440 440
441 --- (od→ord t) o< (sup-o (Ord (osuc (od→ord (Ord (od→ord A))))) (λ x A∋x → od→ord (ZFSubset (Ord (od→ord A)) (ord→od x)))) 441 sup1 : Ordinal
442 sup1 = sup-o (Ord (osuc (od→ord (Ord (od→ord A))))) (λ x A∋x → od→ord (ZFSubset (Ord (od→ord A)) (ord→od x))) 442 sup1 = sup-o (Ord (osuc (od→ord (Ord (od→ord A))))) (λ x A∋x → od→ord (ZFSubset (Ord (od→ord A)) (ord→od x)))
443 lemma9 : def (od (Ord (Ordinals.osuc O (od→ord (Ord (od→ord A)))))) (od→ord (Ord (od→ord A))) 443 lemma9 : def (od (Ord (Ordinals.osuc O (od→ord (Ord (od→ord A)))))) (od→ord (Ord (od→ord A)))
444 lemma9 = <-osuc 444 lemma9 = <-osuc
445 lemmab : od→ord (ZFSubset (Ord (od→ord A)) (ord→od (od→ord (Ord (od→ord A) )))) o< sup1 445 lemmab : od→ord (ZFSubset (Ord (od→ord A)) (ord→od (od→ord (Ord (od→ord A) )))) o< sup1
446 lemmab = sup-o< (Ord (osuc (od→ord (Ord (od→ord A))))) lemma9 446 lemmab = sup-o< (Ord (osuc (od→ord (Ord (od→ord A))))) lemma9
447 lemmad : Ord (osuc (od→ord A)) ∋ t 447 lemmad : Ord (osuc (od→ord A)) ∋ t
448 lemmad = {!!} 448 lemmad = ⊆→o≤ (λ {x} lt → subst (λ k → def (od A) k ) diso (t→A (subst (λ k → def (od t) k ) (sym diso) lt)))
449 lemmac : ZFSubset (Ord (od→ord A)) (ord→od (od→ord (Ord (od→ord A) ))) =h= Ord (od→ord A) 449 lemmac : ZFSubset (Ord (od→ord A)) (ord→od (od→ord (Ord (od→ord A) ))) =h= Ord (od→ord A)
450 lemmac = record { eq→ = {!!} ; eq← = {!!} } 450 lemmac = record { eq→ = lemmaf ; eq← = lemmag } where
451 lemmaf : {x : Ordinal} → def (od (ZFSubset (Ord (od→ord A)) (ord→od (od→ord (Ord (od→ord A)))))) x → def (od (Ord (od→ord A))) x
452 lemmaf {x} lt = proj1 lt
453 lemmag : {x : Ordinal} → def (od (Ord (od→ord A))) x → def (od (ZFSubset (Ord (od→ord A)) (ord→od (od→ord (Ord (od→ord A)))))) x
454 lemmag {x} lt = record { proj1 = lt ; proj2 = subst (λ k → def (od k) x) (sym oiso) lt }
451 lemmae : od→ord (ZFSubset (Ord (od→ord A)) (ord→od (od→ord (Ord (od→ord A))))) ≡ od→ord (Ord (od→ord A)) 455 lemmae : od→ord (ZFSubset (Ord (od→ord A)) (ord→od (od→ord (Ord (od→ord A))))) ≡ od→ord (Ord (od→ord A))
452 lemmae = cong (λ k → od→ord k ) ( ==→o≡ lemmac) 456 lemmae = cong (λ k → od→ord k ) ( ==→o≡ lemmac)
453 lemma7 : def (od (OPwr (Ord (od→ord A)))) (od→ord t) 457 lemma7 : def (od (OPwr (Ord (od→ord A)))) (od→ord t)
454 lemma7 with osuc-≡< lemmad 458 lemma7 with osuc-≡< lemmad
455 lemma7 | case2 lt = ordtrans (c<→o< lt) (subst (λ k → k o< sup1) lemmae lemmab ) 459 lemma7 | case2 lt = ordtrans (c<→o< lt) (subst (λ k → k o< sup1) lemmae lemmab )
456 lemma7 | case1 eq with osuc-≡< (⊆→o≤ {ord→od (od→ord t)} {ord→od (od→ord (Ord (od→ord t)))} (λ {x} lt → {!!} )) 460 lemma7 | case1 eq with osuc-≡< (⊆→o≤ {ord→od (od→ord t)} {ord→od (od→ord (Ord (od→ord t)))} (λ {x} lt → lemmah lt )) where
457 lemma7 | case1 eq | case1 eq1 = subst (λ k → k o< sup1) (trans lemmae {!!}) lemmab -- od→ord (Ord (od→ord A)) ≡ od→ord t 461 lemmah : {x : Ordinal } → def (od (ord→od (od→ord t))) x → def (od (ord→od (od→ord (Ord (od→ord t))))) x
458 lemma7 | case1 eq | case2 lt = ordtrans {!!} (subst (λ k → k o< sup1) lemmae lemmab ) 462 lemmah {x} lt = subst (λ k → def (od k) x ) (sym oiso) (subst (λ k → k o< (od→ord t))
463 diso
464 (c<→o< (subst₂ (λ j k → def (od j) k) oiso (sym diso) lt )))
465 lemma7 | case1 eq | case1 eq1 = subst (λ k → k o< sup1) (trans lemmae lemmai) lemmab where
466 lemmai : od→ord (Ord (od→ord A)) ≡ od→ord t
467 lemmai = let open ≡-Reasoning in begin
468 od→ord (Ord (od→ord A))
469 ≡⟨ sym (cong (λ k → od→ord (Ord k)) eq) ⟩
470 od→ord (Ord (od→ord t))
471 ≡⟨ sym diso ⟩
472 od→ord (ord→od (od→ord (Ord (od→ord t))))
473 ≡⟨ sym eq1 ⟩
474 od→ord (ord→od (od→ord t))
475 ≡⟨ diso ⟩
476 od→ord t
477
478 lemma7 | case1 eq | case2 lt = ordtrans lemmaj (subst (λ k → k o< sup1) lemmae lemmab ) where
479 lemmak : od→ord (ord→od (od→ord (Ord (od→ord t)))) ≡ od→ord (Ord (od→ord A))
480 lemmak = let open ≡-Reasoning in begin
481 od→ord (ord→od (od→ord (Ord (od→ord t))))
482 ≡⟨ diso ⟩
483 od→ord (Ord (od→ord t))
484 ≡⟨ cong (λ k → od→ord (Ord k)) eq ⟩
485 od→ord (Ord (od→ord A))
486
487 lemmaj : od→ord t o< od→ord (Ord (od→ord A))
488 lemmaj = subst₂ (λ j k → j o< k ) diso lemmak lt
459 lemma1 : od→ord t o< sup-o (OPwr (Ord (od→ord A))) (λ x lt → od→ord (A ∩ (ord→od x))) 489 lemma1 : od→ord t o< sup-o (OPwr (Ord (od→ord A))) (λ x lt → od→ord (A ∩ (ord→od x)))
460 lemma1 = subst (λ k → od→ord k o< sup-o (OPwr (Ord (od→ord A))) (λ x lt → od→ord (A ∩ (ord→od x)))) 490 lemma1 = subst (λ k → od→ord k o< sup-o (OPwr (Ord (od→ord A))) (λ x lt → od→ord (A ∩ (ord→od x))))
461 lemma4 (sup-o< (OPwr (Ord (od→ord A))) lemma7 ) 491 lemma4 (sup-o< (OPwr (Ord (od→ord A))) lemma7 )
462 lemma2 : odef (in-codomain (OPwr (Ord (od→ord A))) (_∩_ A)) (od→ord t) 492 lemma2 : odef (in-codomain (OPwr (Ord (od→ord A))) (_∩_ A)) (od→ord t)
463 lemma2 not = ⊥-elim ( not (od→ord t) (record { proj1 = lemma3 ; proj2 = lemma6 }) ) where 493 lemma2 not = ⊥-elim ( not (od→ord t) (record { proj1 = lemma3 ; proj2 = lemma6 }) ) where
464 lemma6 : od→ord t ≡ od→ord (A ∩ ord→od (od→ord t)) 494 lemma6 : od→ord t ≡ od→ord (A ∩ ord→od (od→ord t))
465 lemma6 = cong ( λ k → od→ord k ) (==→o≡ (subst (λ k → t =h= (A ∩ k)) (sym oiso) ( ∩-≡ t→A ))) 495 lemma6 = cong ( λ k → od→ord k ) (==→o≡ (subst (λ k → t =h= (A ∩ k)) (sym oiso) ( ∩-≡ {t} {A} t→A )))
466 496
467 497
468 ord⊆power : (a : Ordinal) → (Ord (osuc a)) ⊆ (Power (Ord a)) 498 ord⊆power : (a : Ordinal) → (Ord (osuc a)) ⊆ (Power (Ord a))
469 ord⊆power a = record { incl = λ {x} lt → power← (Ord a) x (lemma lt) } where 499 ord⊆power a = record { incl = λ {x} lt → power← (Ord a) x (lemma lt) } where
470 lemma : {x y : HOD} → od→ord x o< osuc a → x ∋ y → Ord a ∋ y 500 lemma : {x y : HOD} → od→ord x o< osuc a → x ∋ y → Ord a ∋ y