Mercurial > hg > Members > kono > Proof > ZF-in-agda
comparison src/zorn.agda @ 995:04f4baee7b68
UChain is now u o< x
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 17 Nov 2022 08:36:03 +0900 |
parents | a15f1cddf4c6 |
children | 61d74b3d5456 |
comparison
equal
deleted
inserted
replaced
994:a15f1cddf4c6 | 995:04f4baee7b68 |
---|---|
278 supu=u : supf u ≡ u | 278 supu=u : supf u ≡ u |
279 | 279 |
280 data UChain ( A : HOD ) ( f : Ordinal → Ordinal ) (mf : ≤-monotonic-f A f) {y : Ordinal } (ay : odef A y ) | 280 data UChain ( A : HOD ) ( f : Ordinal → Ordinal ) (mf : ≤-monotonic-f A f) {y : Ordinal } (ay : odef A y ) |
281 (supf : Ordinal → Ordinal) (x : Ordinal) : (z : Ordinal) → Set n where | 281 (supf : Ordinal → Ordinal) (x : Ordinal) : (z : Ordinal) → Set n where |
282 ch-init : {z : Ordinal } (fc : FClosure A f y z) → UChain A f mf ay supf x z | 282 ch-init : {z : Ordinal } (fc : FClosure A f y z) → UChain A f mf ay supf x z |
283 ch-is-sup : (u : Ordinal) {z : Ordinal } (u<x : supf u o< supf x) ( is-sup : ChainP A f mf ay supf u ) | 283 ch-is-sup : (u : Ordinal) {z : Ordinal } (u<x : u o< x) ( is-sup : ChainP A f mf ay supf u ) |
284 ( fc : FClosure A f (supf u) z ) → UChain A f mf ay supf x z | 284 ( fc : FClosure A f (supf u) z ) → UChain A f mf ay supf x z |
285 | 285 |
286 -- | 286 -- |
287 -- f (f ( ... (supf y))) f (f ( ... (supf z1))) | 287 -- f (f ( ... (supf y))) f (f ( ... (supf z1))) |
288 -- / | / | | 288 -- / | / | |
420 (supf-mono : {x y : Ordinal } → x o≤ y → supf x o≤ supf y ) {a b c : Ordinal} → a o≤ b | 420 (supf-mono : {x y : Ordinal } → x o≤ y → supf x o≤ supf y ) {a b c : Ordinal} → a o≤ b |
421 → odef (UnionCF A f mf ay supf a) c → odef (UnionCF A f mf ay supf b) c | 421 → odef (UnionCF A f mf ay supf a) c → odef (UnionCF A f mf ay supf b) c |
422 chain-mono f mf ay supf supf-mono {a} {b} {c} a≤b ⟪ ua , ch-init fc ⟫ = | 422 chain-mono f mf ay supf supf-mono {a} {b} {c} a≤b ⟪ ua , ch-init fc ⟫ = |
423 ⟪ ua , ch-init fc ⟫ | 423 ⟪ ua , ch-init fc ⟫ |
424 chain-mono f mf ay supf supf-mono {a} {b} {c} a≤b ⟪ uaa , ch-is-sup ua ua<x is-sup fc ⟫ = | 424 chain-mono f mf ay supf supf-mono {a} {b} {c} a≤b ⟪ uaa , ch-is-sup ua ua<x is-sup fc ⟫ = |
425 ⟪ uaa , ch-is-sup ua (ordtrans<-≤ ua<x (supf-mono a≤b ) ) is-sup fc ⟫ | 425 ⟪ uaa , ch-is-sup ua (ordtrans<-≤ ua<x a≤b) is-sup fc ⟫ |
426 | 426 |
427 record ZChain ( A : HOD ) ( f : Ordinal → Ordinal ) (mf : ≤-monotonic-f A f) | 427 record ZChain ( A : HOD ) ( f : Ordinal → Ordinal ) (mf : ≤-monotonic-f A f) |
428 {y : Ordinal} (ay : odef A y) ( z : Ordinal ) : Set (Level.suc n) where | 428 {y : Ordinal} (ay : odef A y) ( z : Ordinal ) : Set (Level.suc n) where |
429 field | 429 field |
430 supf : Ordinal → Ordinal | 430 supf : Ordinal → Ordinal |
520 → (supf-mono : {x y : Ordinal } → x o≤ y → supf x o≤ supf y ) | 520 → (supf-mono : {x y : Ordinal } → x o≤ y → supf x o≤ supf y ) |
521 → ( { x : Ordinal } → x o< z → supf x ≡ supf1 x) | 521 → ( { x : Ordinal } → x o< z → supf x ≡ supf1 x) |
522 → ( { x : Ordinal } → z o≤ x → supf z o≤ supf1 x) | 522 → ( { x : Ordinal } → z o≤ x → supf z o≤ supf1 x) |
523 → UnionCF A f mf ay supf z ⊆' UnionCF A f mf ay supf1 z | 523 → UnionCF A f mf ay supf z ⊆' UnionCF A f mf ay supf1 z |
524 UChain⊆ A f mf {z} {y} ay {supf} {supf1} supf-mono eq<x lex ⟪ az , ch-init fc ⟫ = ⟪ az , ch-init fc ⟫ | 524 UChain⊆ A f mf {z} {y} ay {supf} {supf1} supf-mono eq<x lex ⟪ az , ch-init fc ⟫ = ⟪ az , ch-init fc ⟫ |
525 UChain⊆ A f mf {z} {y} ay {supf} {supf1} supf-mono eq<x lex ⟪ az , ch-is-sup u {x} u<x is-sup fc ⟫ = ⟪ az , ch-is-sup u u<x1 cp1 fc1 ⟫ where | 525 UChain⊆ A f mf {z} {y} ay {supf} {supf1} supf-mono eq<x lex ⟪ az , ch-is-sup u {x} u<x is-sup fc ⟫ = ⟪ az , ch-is-sup u u<x cp1 fc1 ⟫ where |
526 u<x0 : u o< z | |
527 u<x0 = supf-inject0 supf-mono u<x | |
528 u<x1 : supf1 u o< supf1 z | |
529 u<x1 = subst (λ k → k o< supf1 z ) (eq<x u<x0) (ordtrans<-≤ u<x (lex o≤-refl ) ) | |
530 fc1 : FClosure A f (supf1 u) x | 526 fc1 : FClosure A f (supf1 u) x |
531 fc1 = subst (λ k → FClosure A f k x ) (eq<x u<x0) fc | 527 fc1 = subst (λ k → FClosure A f k x ) (eq<x u<x) fc |
528 supf1-mono : {x y : Ordinal } → x o≤ y → supf1 x o≤ supf1 y | |
529 supf1-mono = ? | |
532 uc01 : {s : Ordinal } → supf1 s o< supf1 u → s o< z | 530 uc01 : {s : Ordinal } → supf1 s o< supf1 u → s o< z |
533 uc01 {s} s<u with trio< s z | 531 uc01 {s} s<u with trio< s z |
534 ... | tri< a ¬b ¬c = a | 532 ... | tri< a ¬b ¬c = a |
535 ... | tri≈ ¬a b ¬c = ⊥-elim ( o≤> uc02 s<u ) where -- (supf-mono (o<→≤ u<x0)) | 533 ... | tri≈ ¬a b ¬c = ⊥-elim ( o≤> uc02 s<u ) where -- (supf-mono (o<→≤ u<x0)) |
536 uc02 : supf1 u o≤ supf1 s | 534 uc02 : supf1 u o≤ supf1 s |
537 uc02 = begin | 535 uc02 = begin |
538 supf1 u <⟨ u<x1 ⟩ | 536 supf1 u ≤⟨ supf1-mono (o<→≤ u<x) ⟩ |
539 supf1 z ≡⟨ cong supf1 (sym b) ⟩ | 537 supf1 z ≡⟨ cong supf1 (sym b) ⟩ |
540 supf1 s ∎ where open o≤-Reasoning O | 538 supf1 s ∎ where open o≤-Reasoning O |
541 ... | tri> ¬a ¬b c = ⊥-elim ( o≤> uc03 s<u ) where | 539 ... | tri> ¬a ¬b c = ⊥-elim ( o≤> uc03 s<u ) where |
542 uc03 : supf1 u o≤ supf1 s | 540 uc03 : supf1 u o≤ supf1 s |
543 uc03 = begin | 541 uc03 = begin |
544 supf1 u ≡⟨ sym (eq<x u<x0) ⟩ | 542 supf1 u ≡⟨ sym (eq<x u<x) ⟩ |
545 supf u <⟨ u<x ⟩ | 543 supf u ≤⟨ supf-mono (o<→≤ u<x) ⟩ |
546 supf z ≤⟨ lex (o<→≤ c) ⟩ | 544 supf z ≤⟨ lex (o<→≤ c) ⟩ |
547 supf1 s ∎ where open o≤-Reasoning O | 545 supf1 s ∎ where open o≤-Reasoning O |
548 cp1 : ChainP A f mf ay supf1 u | 546 cp1 : ChainP A f mf ay supf1 u |
549 cp1 = record { fcy<sup = λ {z} fc → subst (λ k → (z ≡ k) ∨ ( z << k ) ) (eq<x u<x0) (ChainP.fcy<sup is-sup fc ) | 547 cp1 = record { fcy<sup = λ {z} fc → subst (λ k → (z ≡ k) ∨ ( z << k ) ) (eq<x u<x) (ChainP.fcy<sup is-sup fc ) |
550 ; order = λ {s} {z} s<u fc → subst (λ k → (z ≡ k) ∨ ( z << k ) ) (eq<x u<x0) | 548 ; order = λ {s} {z} s<u fc → subst (λ k → (z ≡ k) ∨ ( z << k ) ) (eq<x u<x) |
551 (ChainP.order is-sup (subst₂ (λ j k → j o< k ) (sym (eq<x (uc01 s<u) )) (sym (eq<x u<x0)) s<u) | 549 (ChainP.order is-sup (subst₂ (λ j k → j o< k ) (sym (eq<x (uc01 s<u) )) (sym (eq<x u<x)) s<u) |
552 (subst (λ k → FClosure A f k z ) (sym (eq<x (uc01 s<u) )) fc )) | 550 (subst (λ k → FClosure A f k z ) (sym (eq<x (uc01 s<u) )) fc )) |
553 ; supu=u = trans (sym (eq<x u<x0)) (ChainP.supu=u is-sup) } | 551 ; supu=u = trans (sym (eq<x u<x)) (ChainP.supu=u is-sup) } |
554 | 552 |
555 record ZChain1 ( A : HOD ) ( f : Ordinal → Ordinal ) (mf : ≤-monotonic-f A f) | 553 record ZChain1 ( A : HOD ) ( f : Ordinal → Ordinal ) (mf : ≤-monotonic-f A f) |
556 {y : Ordinal} (ay : odef A y) (zc : ZChain A f mf ay (& A)) ( z : Ordinal ) : Set (Level.suc n) where | 554 {y : Ordinal} (ay : odef A y) (zc : ZChain A f mf ay (& A)) ( z : Ordinal ) : Set (Level.suc n) where |
557 supf = ZChain.supf zc | 555 supf = ZChain.supf zc |
558 field | 556 field |
700 zc04 : odef (UnionCF A f mf ay supf (& A)) (supf s) | 698 zc04 : odef (UnionCF A f mf ay supf (& A)) (supf s) |
701 zc04 = ZChain.csupf zc (ordtrans<-≤ ss<sb (ZChain.supf-mono zc (o<→≤ b<z))) | 699 zc04 = ZChain.csupf zc (ordtrans<-≤ ss<sb (ZChain.supf-mono zc (o<→≤ b<z))) |
702 zc05 : odef (UnionCF A f mf ay supf b) (supf s) | 700 zc05 : odef (UnionCF A f mf ay supf b) (supf s) |
703 zc05 with zc04 | 701 zc05 with zc04 |
704 ... | ⟪ as , ch-init fc ⟫ = ⟪ as , ch-init fc ⟫ | 702 ... | ⟪ as , ch-init fc ⟫ = ⟪ as , ch-init fc ⟫ |
705 ... | ⟪ as , ch-is-sup u u<x is-sup fc ⟫ = ⟪ as , ch-is-sup u zc08 is-sup fc ⟫ where | 703 ... | ⟪ as , ch-is-sup u u<x is-sup fc ⟫ = ⟪ as , ch-is-sup u (ZChain.supf-inject zc zc08) is-sup fc ⟫ where |
706 zc07 : FClosure A f (supf u) (supf s) -- supf u ≤ supf s → supf u o≤ supf s | 704 zc07 : FClosure A f (supf u) (supf s) -- supf u ≤ supf s → supf u o≤ supf s |
707 zc07 = fc | 705 zc07 = fc |
708 zc06 : supf u ≡ u | 706 zc06 : supf u ≡ u |
709 zc06 = ChainP.supu=u is-sup | 707 zc06 = ChainP.supu=u is-sup |
710 zc08 : supf u o< supf b | 708 zc08 : supf u o< supf b |
733 HasPrev A (UnionCF A f mf ay supf x) f b ∨ IsSUP A (UnionCF A f mf ay supf b) ab → | 731 HasPrev A (UnionCF A f mf ay supf x) f b ∨ IsSUP A (UnionCF A f mf ay supf b) ab → |
734 * a < * b → odef (UnionCF A f mf ay supf x) b | 732 * a < * b → odef (UnionCF A f mf ay supf x) b |
735 is-max {a} {b} ua b<x ab P a<b with ODC.or-exclude O P | 733 is-max {a} {b} ua b<x ab P a<b with ODC.or-exclude O P |
736 is-max {a} {b} ua b<x ab P a<b | case1 has-prev = is-max-hp x {a} {b} ua ab has-prev a<b | 734 is-max {a} {b} ua b<x ab P a<b | case1 has-prev = is-max-hp x {a} {b} ua ab has-prev a<b |
737 is-max {a} {b} ua b<x ab P a<b | case2 is-sup with osuc-≡< (ZChain.supf-mono zc (o<→≤ b<x)) | 735 is-max {a} {b} ua b<x ab P a<b | case2 is-sup with osuc-≡< (ZChain.supf-mono zc (o<→≤ b<x)) |
738 ... | case2 sb<sx = ⟪ ab , ch-is-sup b sb<sx m06 (subst (λ k → FClosure A f k b) (sym m05) (init ab refl)) ⟫ where | 736 ... | case2 sb<sx = ⟪ ab , ch-is-sup b b<x m06 (subst (λ k → FClosure A f k b) (sym m05) (init ab refl)) ⟫ where |
739 b<A : b o< & A | 737 b<A : b o< & A |
740 b<A = z09 ab | 738 b<A = z09 ab |
741 m04 : ¬ HasPrev A (UnionCF A f mf ay supf b) f b | 739 m04 : ¬ HasPrev A (UnionCF A f mf ay supf b) f b |
742 m04 nhp = proj1 is-sup ( record { ax = HasPrev.ax nhp ; y = HasPrev.y nhp ; ay = | 740 m04 nhp = proj1 is-sup ( record { ax = HasPrev.ax nhp ; y = HasPrev.y nhp ; ay = |
743 chain-mono1 (o<→≤ b<x) (HasPrev.ay nhp) ; x=fy = HasPrev.x=fy nhp } ) | 741 chain-mono1 (o<→≤ b<x) (HasPrev.ay nhp) ; x=fy = HasPrev.x=fy nhp } ) |
770 is-max {a} {b} ua b<x ab P a<b with ODC.or-exclude O P | 768 is-max {a} {b} ua b<x ab P a<b with ODC.or-exclude O P |
771 is-max {a} {b} ua b<x ab P a<b | case1 has-prev = is-max-hp x {a} {b} ua ab has-prev a<b | 769 is-max {a} {b} ua b<x ab P a<b | case1 has-prev = is-max-hp x {a} {b} ua ab has-prev a<b |
772 is-max {a} {b} ua b<x ab P a<b | case2 is-sup with IsSUP.x≤sup (proj2 is-sup) (init-uchain A f mf ay ) | 770 is-max {a} {b} ua b<x ab P a<b | case2 is-sup with IsSUP.x≤sup (proj2 is-sup) (init-uchain A f mf ay ) |
773 ... | case1 b=y = ⟪ subst (λ k → odef A k ) b=y ay , ch-init (subst (λ k → FClosure A f y k ) b=y (init ay refl )) ⟫ | 771 ... | case1 b=y = ⟪ subst (λ k → odef A k ) b=y ay , ch-init (subst (λ k → FClosure A f y k ) b=y (init ay refl )) ⟫ |
774 ... | case2 y<b with osuc-≡< (ZChain.supf-mono zc (o<→≤ b<x)) | 772 ... | case2 y<b with osuc-≡< (ZChain.supf-mono zc (o<→≤ b<x)) |
775 ... | case2 sb<sx = ⟪ ab , ch-is-sup b sb<sx m06 (subst (λ k → FClosure A f k b) (sym m05) (init ab refl)) ⟫ where | 773 ... | case2 sb<sx = ⟪ ab , ch-is-sup b b<x m06 (subst (λ k → FClosure A f k b) (sym m05) (init ab refl)) ⟫ where |
776 m09 : b o< & A | 774 m09 : b o< & A |
777 m09 = subst (λ k → k o< & A) &iso ( c<→o< (subst (λ k → odef A k ) (sym &iso ) ab)) | 775 m09 = subst (λ k → k o< & A) &iso ( c<→o< (subst (λ k → odef A k ) (sym &iso ) ab)) |
778 m07 : {z : Ordinal} → FClosure A f y z → z <= ZChain.supf zc b | 776 m07 : {z : Ordinal} → FClosure A f y z → z <= ZChain.supf zc b |
779 m07 {z} fc = ZChain.fcy<sup zc (o<→≤ m09) fc | 777 m07 {z} fc = ZChain.fcy<sup zc (o<→≤ m09) fc |
780 m08 : {s z1 : Ordinal} → ZChain.supf zc s o< ZChain.supf zc b | 778 m08 : {s z1 : Ordinal} → ZChain.supf zc s o< ZChain.supf zc b |
1030 fcup {u} {z} fc u≤px = subst (λ k → FClosure A f k z ) (sf1=sf0 u≤px) fc | 1028 fcup {u} {z} fc u≤px = subst (λ k → FClosure A f k z ) (sf1=sf0 u≤px) fc |
1031 fcpu : {u z : Ordinal } → FClosure A f (supf0 u) z → u o≤ px → FClosure A f (supf1 u) z | 1029 fcpu : {u z : Ordinal } → FClosure A f (supf0 u) z → u o≤ px → FClosure A f (supf1 u) z |
1032 fcpu {u} {z} fc u≤px = subst (λ k → FClosure A f k z ) (sym (sf1=sf0 u≤px)) fc | 1030 fcpu {u} {z} fc u≤px = subst (λ k → FClosure A f k z ) (sym (sf1=sf0 u≤px)) fc |
1033 | 1031 |
1034 fcs<sup : {a b w : Ordinal } → a o< b → b o≤ x → FClosure A f (supf1 a) w → odef (UnionCF A f mf ay supf1 b) w | 1032 fcs<sup : {a b w : Ordinal } → a o< b → b o≤ x → FClosure A f (supf1 a) w → odef (UnionCF A f mf ay supf1 b) w |
1035 fcs<sup with trio< a px | 1033 fcs<sup {a} {b} {w} a<b b≤x fc with trio< a px |
1036 ... | tri< a ¬b ¬c = ? -- chain-mono ZChain.fcs<sup a | 1034 ... | tri< a<px ¬b ¬c = ? -- chain-mono ZChain.fcs<sup a |
1037 ... | tri≈ ¬a b ¬c = ? -- a ≡ px , b ≡ x, sp o≤ x → supf px o≤ supf x | 1035 ... | tri≈ ¬a a=px ¬c = ⟪ A∋fc _ f mf fc , ch-is-sup px px<b ? ? ⟫ where -- a ≡ px , b ≡ x, sp o≤ x → supf px o≤ supf x |
1036 px<b : px o< b | |
1037 px<b = subst₂ (λ j k → j o< k) a=px refl a<b | |
1038 b=x : b ≡ x | |
1039 b=x with trio< b x | |
1040 ... | tri< a ¬b ¬c = ? | |
1041 ... | tri≈ ¬a b ¬c = b | |
1042 ... | tri> ¬a ¬b c = ⊥-elim ( o<> c ? ) -- subst₂ (λ j k → j o≤ k ) ? ? a<b | |
1038 ... | tri> ¬a ¬b c = ? -- px o< a o< b o≤ x | 1043 ... | tri> ¬a ¬b c = ? -- px o< a o< b o≤ x |
1039 | 1044 |
1040 zc11 : {z : Ordinal} → odef (UnionCF A f mf ay supf1 x) z → odef pchainpx z | 1045 zc11 : {z : Ordinal} → odef (UnionCF A f mf ay supf1 x) z → odef pchainpx z |
1041 zc11 {z} ⟪ az , ch-init fc ⟫ = case1 ⟪ az , ch-init fc ⟫ | 1046 zc11 {z} ⟪ az , ch-init fc ⟫ = case1 ⟪ az , ch-init fc ⟫ |
1042 zc11 {z} ⟪ az , ch-is-sup u su<sx is-sup fc ⟫ = zc21 fc where | 1047 zc11 {z} ⟪ az , ch-is-sup u u<x is-sup fc ⟫ = zc21 fc where |
1043 u<x : u o< x | |
1044 u<x = supf-inject0 supf1-mono su<sx | |
1045 u≤px : u o≤ px | 1048 u≤px : u o≤ px |
1046 u≤px = zc-b<x _ u<x | 1049 u≤px = zc-b<x _ u<x |
1047 zc21 : {z1 : Ordinal } → FClosure A f (supf1 u) z1 → odef pchainpx z1 | 1050 zc21 : {z1 : Ordinal } → FClosure A f (supf1 u) z1 → odef pchainpx z1 |
1048 zc21 {z1} (fsuc z2 fc ) with zc21 fc | 1051 zc21 {z1} (fsuc z2 fc ) with zc21 fc |
1049 ... | case1 ⟪ ua1 , ch-init fc₁ ⟫ = case1 ⟪ proj2 ( mf _ ua1) , ch-init (fsuc _ fc₁) ⟫ | 1052 ... | case1 ⟪ ua1 , ch-init fc₁ ⟫ = case1 ⟪ proj2 ( mf _ ua1) , ch-init (fsuc _ fc₁) ⟫ |
1050 ... | case1 ⟪ ua1 , ch-is-sup u u<x u1-is-sup fc₁ ⟫ = case1 ⟪ proj2 ( mf _ ua1) , ch-is-sup u u<x u1-is-sup (fsuc _ fc₁) ⟫ | 1053 ... | case1 ⟪ ua1 , ch-is-sup u u<x u1-is-sup fc₁ ⟫ = case1 ⟪ proj2 ( mf _ ua1) , ch-is-sup u u<x u1-is-sup (fsuc _ fc₁) ⟫ |
1051 ... | case2 fc = case2 (fsuc _ fc) | 1054 ... | case2 fc = case2 (fsuc _ fc) |
1052 zc21 (init asp refl ) with trio< (supf0 u) (supf0 px) | inspect supf1 u | 1055 zc21 (init asp refl ) with trio< (supf0 u) (supf0 px) | inspect supf1 u |
1053 ... | tri< a ¬b ¬c | _ = case1 ⟪ asp , ch-is-sup u a record {fcy<sup = zc13 ; order = zc17 | 1056 ... | tri< a ¬b ¬c | _ = case1 ⟪ asp , ch-is-sup u u<px record {fcy<sup = zc13 ; order = zc17 |
1054 ; supu=u = trans (sym (sf1=sf0 (o<→≤ u<px))) (ChainP.supu=u is-sup) } (init asp0 (sym (sf1=sf0 (o<→≤ u<px))) ) ⟫ where | 1057 ; supu=u = trans (sym (sf1=sf0 (o<→≤ u<px))) (ChainP.supu=u is-sup) } (init asp0 (sym (sf1=sf0 (o<→≤ u<px))) ) ⟫ where |
1055 u<px : u o< px | 1058 u<px : u o< px |
1056 u<px = ZChain.supf-inject zc a | 1059 u<px = ZChain.supf-inject zc a |
1057 asp0 : odef A (supf0 u) | 1060 asp0 : odef A (supf0 u) |
1058 asp0 = ZChain.asupf zc | 1061 asp0 = ZChain.asupf zc |
1139 ... | tri< a ¬b ¬c = ⊥-elim ( o<> (osucc a) (subst (λ k → k o≤ z) (sym (Oprev.oprev=x op)) x≤z ) ) | 1142 ... | tri< a ¬b ¬c = ⊥-elim ( o<> (osucc a) (subst (λ k → k o≤ z) (sym (Oprev.oprev=x op)) x≤z ) ) |
1140 ... | tri≈ ¬a b ¬c = ⊥-elim ( o≤> x≤z (subst (λ k → k o< x ) (sym b) px<x )) | 1143 ... | tri≈ ¬a b ¬c = ⊥-elim ( o≤> x≤z (subst (λ k → k o< x ) (sym b) px<x )) |
1141 ... | tri> ¬a ¬b c = o≤-refl0 ? -- (sym ( ZChain.supfmax zc px<x )) | 1144 ... | tri> ¬a ¬b c = o≤-refl0 ? -- (sym ( ZChain.supfmax zc px<x )) |
1142 | 1145 |
1143 zc17 : {z : Ordinal } → supf0 z o≤ supf0 px | 1146 zc17 : {z : Ordinal } → supf0 z o≤ supf0 px |
1144 zc17 = ? -- px o< z, px o< supf0 px | 1147 zc17 {z} with trio< z px |
1148 ... | tri< a ¬b ¬c = ZChain.supf-mono zc (o<→≤ a) | |
1149 ... | tri≈ ¬a b ¬c = o≤-refl0 (cong supf0 b) | |
1150 ... | tri> ¬a ¬b px<z = o≤-refl0 zc177 where | |
1151 zc177 : supf0 z ≡ supf0 px | |
1152 zc177 = ZChain.supfmax zc px<z -- px o< z, px o< supf0 px | |
1145 | 1153 |
1146 supf-mono1 : {z w : Ordinal } → z o≤ w → supf1 z o≤ supf1 w | 1154 supf-mono1 : {z w : Ordinal } → z o≤ w → supf1 z o≤ supf1 w |
1147 supf-mono1 {z} {w} z≤w with trio< w px | 1155 supf-mono1 {z} {w} z≤w with trio< w px |
1148 ... | tri< a ¬b ¬c = subst₂ (λ j k → j o≤ k ) (sym (sf1=sf0 (ordtrans≤-< z≤w a))) refl ( supf-mono z≤w ) | 1156 ... | tri< a ¬b ¬c = subst₂ (λ j k → j o≤ k ) (sym (sf1=sf0 (ordtrans≤-< z≤w a))) refl ( supf-mono z≤w ) |
1149 ... | tri≈ ¬a refl ¬c with trio< z px | 1157 ... | tri≈ ¬a refl ¬c with trio< z px |
1150 ... | tri< a ¬b ¬c = zc17 | 1158 ... | tri< a ¬b ¬c = zc17 |
1151 ... | tri≈ ¬a refl ¬c = o≤-refl | 1159 ... | tri≈ ¬a refl ¬c = o≤-refl |
1152 ... | tri> ¬a ¬b c = o≤-refl | 1160 ... | tri> ¬a ¬b c = o≤-refl |
1153 supf-mono1 {z} {w} z≤w | tri> ¬a ¬b c with trio< z px | 1161 supf-mono1 {z} {w} z≤w | tri> ¬a ¬b px<w with trio< z px |
1154 ... | tri< a ¬b ¬c = zc17 | 1162 ... | tri< a ¬b ¬c = zc17 |
1155 ... | tri≈ ¬a b ¬c = o≤-refl0 ? | 1163 ... | tri≈ ¬a b ¬c = o≤-refl0 (cong supf0 b) -- z=px supf1 z = supf0 z, supf1 w = supf0 px |
1156 ... | tri> ¬a ¬b c = o≤-refl | 1164 ... | tri> ¬a ¬b c = o≤-refl |
1157 | 1165 |
1158 pchain1 : HOD | 1166 pchain1 : HOD |
1159 pchain1 = UnionCF A f mf ay supf1 x | 1167 pchain1 = UnionCF A f mf ay supf1 x |
1160 | 1168 |