Mercurial > hg > Members > kono > Proof > ZF-in-agda
comparison src/zorn.agda @ 863:f5fc3f5f618f
u<=x to u<x
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 09 Sep 2022 20:20:39 +0900 |
parents | 269467244745 |
children | 06f692bf7a97 |
comparison
equal
deleted
inserted
replaced
862:269467244745 | 863:f5fc3f5f618f |
---|---|
256 supu=u : supf u ≡ u | 256 supu=u : supf u ≡ u |
257 | 257 |
258 data UChain ( A : HOD ) ( f : Ordinal → Ordinal ) (mf : ≤-monotonic-f A f) {y : Ordinal } (ay : odef A y ) | 258 data UChain ( A : HOD ) ( f : Ordinal → Ordinal ) (mf : ≤-monotonic-f A f) {y : Ordinal } (ay : odef A y ) |
259 (supf : Ordinal → Ordinal) (x : Ordinal) : (z : Ordinal) → Set n where | 259 (supf : Ordinal → Ordinal) (x : Ordinal) : (z : Ordinal) → Set n where |
260 ch-init : {z : Ordinal } (fc : FClosure A f y z) → UChain A f mf ay supf x z | 260 ch-init : {z : Ordinal } (fc : FClosure A f y z) → UChain A f mf ay supf x z |
261 ch-is-sup : (u : Ordinal) {z : Ordinal } (u≤x : u o≤ x) ( is-sup : ChainP A f mf ay supf u ) | 261 ch-is-sup : (u : Ordinal) {z : Ordinal } (u<x : u o< x) ( is-sup : ChainP A f mf ay supf u ) |
262 ( fc : FClosure A f (supf u) z ) → UChain A f mf ay supf x z | 262 ( fc : FClosure A f (supf u) z ) → UChain A f mf ay supf x z |
263 | 263 |
264 -- data UChain is total | 264 -- data UChain is total |
265 | 265 |
266 chain-total : (A : HOD ) ( f : Ordinal → Ordinal ) (mf : ≤-monotonic-f A f) {y : Ordinal} (ay : odef A y) (supf : Ordinal → Ordinal ) | 266 chain-total : (A : HOD ) ( f : Ordinal → Ordinal ) (mf : ≤-monotonic-f A f) {y : Ordinal} (ay : odef A y) (supf : Ordinal → Ordinal ) |
412 zc04 : odef (UnionCF A f mf ay supf (supf s)) (supf s) | 412 zc04 : odef (UnionCF A f mf ay supf (supf s)) (supf s) |
413 zc04 = csupf s≤<z | 413 zc04 = csupf s≤<z |
414 zc05 : odef (UnionCF A f mf ay supf b) (supf s) | 414 zc05 : odef (UnionCF A f mf ay supf b) (supf s) |
415 zc05 with zc04 | 415 zc05 with zc04 |
416 ... | ⟪ as , ch-init fc ⟫ = ⟪ as , ch-init fc ⟫ | 416 ... | ⟪ as , ch-init fc ⟫ = ⟪ as , ch-init fc ⟫ |
417 ... | ⟪ as , ch-is-sup u u≤x is-sup fc ⟫ = ⟪ as , ch-is-sup u (zc09 u≤x ) is-sup fc ⟫ where | 417 ... | ⟪ as , ch-is-sup u u<x is-sup fc ⟫ = ⟪ as , ch-is-sup u (zc09 u<x ) is-sup fc ⟫ where |
418 zc06 : supf u ≡ u | 418 zc06 : supf u ≡ u |
419 zc06 = ChainP.supu=u is-sup | 419 zc06 = ChainP.supu=u is-sup |
420 zc09 : u o≤ supf s → u o≤ b | 420 zc09 : u o< supf s → u o< b |
421 zc09 u<s with osuc-≡< (subst (λ k → k o≤ supf s) (sym zc06) u<s) | 421 zc09 u<s = ordtrans (supf-inject (subst (λ k → k o< supf s) (sym zc06) u<s)) s<b |
422 ... | case1 su=ss = zc08 where | |
423 zc07 : supf u o≤ supf b | |
424 zc07 = subst (λ k → k o≤ supf b) (sym su=ss) (supf-mono (o<→≤ s<b) ) | |
425 zc08 : u o≤ b | |
426 zc08 with osuc-≡< zc07 | |
427 ... | case1 su=sb = ⊥-elim ( o<¬≡ (trans (sym su=ss) su=sb ) ss<sb ) | |
428 ... | case2 lt = o<→≤ (supf-inject lt ) | |
429 ... | case2 lt = o<→≤ (ordtrans (supf-inject lt) s<b) | |
430 csupf-fc {b} {s} {z1} b<z ss≤sb (fsuc x fc) = subst (λ k → odef (UnionCF A f mf ay supf b) k ) (sym &iso) zc04 where | 422 csupf-fc {b} {s} {z1} b<z ss≤sb (fsuc x fc) = subst (λ k → odef (UnionCF A f mf ay supf b) k ) (sym &iso) zc04 where |
431 zc04 : odef (UnionCF A f mf ay supf b) (f x) | 423 zc04 : odef (UnionCF A f mf ay supf b) (f x) |
432 zc04 with subst (λ k → odef (UnionCF A f mf ay supf b) k ) &iso (csupf-fc b<z ss≤sb fc ) | 424 zc04 with subst (λ k → odef (UnionCF A f mf ay supf b) k ) &iso (csupf-fc b<z ss≤sb fc ) |
433 ... | ⟪ as , ch-init fc ⟫ = ⟪ proj2 (mf _ as) , ch-init (fsuc _ fc) ⟫ | 425 ... | ⟪ as , ch-init fc ⟫ = ⟪ proj2 (mf _ as) , ch-init (fsuc _ fc) ⟫ |
434 ... | ⟪ as , ch-is-sup u u≤x is-sup fc ⟫ = ⟪ proj2 (mf _ as) , ch-is-sup u u≤x is-sup (fsuc _ fc) ⟫ | 426 ... | ⟪ as , ch-is-sup u u≤x is-sup fc ⟫ = ⟪ proj2 (mf _ as) , ch-is-sup u u≤x is-sup (fsuc _ fc) ⟫ |
548 {a b c : Ordinal} → a o≤ b | 540 {a b c : Ordinal} → a o≤ b |
549 → odef (UnionCF A f mf ay supf a) c → odef (UnionCF A f mf ay supf b) c | 541 → odef (UnionCF A f mf ay supf a) c → odef (UnionCF A f mf ay supf b) c |
550 chain-mono f mf ay supf {a} {b} {c} a≤b ⟪ ua , ch-init fc ⟫ = | 542 chain-mono f mf ay supf {a} {b} {c} a≤b ⟪ ua , ch-init fc ⟫ = |
551 ⟪ ua , ch-init fc ⟫ | 543 ⟪ ua , ch-init fc ⟫ |
552 chain-mono f mf ay supf {a} {b} {c} a≤b ⟪ uaa , ch-is-sup ua ua<x is-sup fc ⟫ = | 544 chain-mono f mf ay supf {a} {b} {c} a≤b ⟪ uaa , ch-is-sup ua ua<x is-sup fc ⟫ = |
553 ⟪ uaa , ch-is-sup ua (ordtrans<-≤ ua<x (osucc a≤b )) is-sup fc ⟫ | 545 ⟪ uaa , ch-is-sup ua (ordtrans<-≤ ua<x a≤b ) is-sup fc ⟫ |
554 | 546 |
555 sp0 : ( f : Ordinal → Ordinal ) → (mf : ≤-monotonic-f A f ) (zc : ZChain A f mf as0 (& A) ) | 547 sp0 : ( f : Ordinal → Ordinal ) → (mf : ≤-monotonic-f A f ) (zc : ZChain A f mf as0 (& A) ) |
556 (total : IsTotalOrderSet (ZChain.chain zc) ) → SUP A (ZChain.chain zc) | 548 (total : IsTotalOrderSet (ZChain.chain zc) ) → SUP A (ZChain.chain zc) |
557 sp0 f mf zc total = supP (ZChain.chain zc) (ZChain.chain⊆A zc) total | 549 sp0 f mf zc total = supP (ZChain.chain zc) (ZChain.chain⊆A zc) total |
558 zc< : {x y z : Ordinal} → {P : Set n} → (x o< y → P) → x o< z → z o< y → P | 550 zc< : {x y z : Ordinal} → {P : Set n} → (x o< y → P) → x o< z → z o< y → P |
588 HasPrev A (UnionCF A f mf ay (ZChain.supf zc) x) b f ∨ IsSup A (UnionCF A f mf ay (ZChain.supf zc) x) ab → | 580 HasPrev A (UnionCF A f mf ay (ZChain.supf zc) x) b f ∨ IsSup A (UnionCF A f mf ay (ZChain.supf zc) x) ab → |
589 * a < * b → odef (UnionCF A f mf ay (ZChain.supf zc) x) b | 581 * a < * b → odef (UnionCF A f mf ay (ZChain.supf zc) x) b |
590 is-max {a} {b} ua b<x ab P a<b with ODC.or-exclude O P | 582 is-max {a} {b} ua b<x ab P a<b with ODC.or-exclude O P |
591 is-max {a} {b} ua b<x ab P a<b | case1 has-prev = is-max-hp x {a} {b} ua b<x ab has-prev a<b | 583 is-max {a} {b} ua b<x ab P a<b | case1 has-prev = is-max-hp x {a} {b} ua b<x ab has-prev a<b |
592 is-max {a} {b} ua b<x ab P a<b | case2 is-sup | 584 is-max {a} {b} ua b<x ab P a<b | case2 is-sup |
593 = ⟪ ab , ch-is-sup b (o<→≤ b<x) m06 (subst (λ k → FClosure A f k b) (sym m05) (init ab refl)) ⟫ where | 585 = ⟪ ab , ch-is-sup b b<x m06 (subst (λ k → FClosure A f k b) (sym m05) (init ab refl)) ⟫ where |
594 b<A : b o< & A | 586 b<A : b o< & A |
595 b<A = z09 ab | 587 b<A = z09 ab |
596 m04 : ¬ HasPrev A (UnionCF A f mf ay (ZChain.supf zc) b) b f | 588 m04 : ¬ HasPrev A (UnionCF A f mf ay (ZChain.supf zc) b) b f |
597 m04 nhp = proj1 is-sup ( record { ax = HasPrev.ax nhp ; y = HasPrev.y nhp ; ay = chain-mono1 (o<→≤ b<x) (HasPrev.ay nhp) | 589 m04 nhp = proj1 is-sup ( record { ax = HasPrev.ax nhp ; y = HasPrev.y nhp ; ay = chain-mono1 (o<→≤ b<x) (HasPrev.ay nhp) |
598 ; x=fy = HasPrev.x=fy nhp } ) | 590 ; x=fy = HasPrev.x=fy nhp } ) |
614 is-max {a} {b} ua b<x ab P a<b with ODC.or-exclude O P | 606 is-max {a} {b} ua b<x ab P a<b with ODC.or-exclude O P |
615 is-max {a} {b} ua b<x ab P a<b | case1 has-prev = is-max-hp x {a} {b} ua b<x ab has-prev a<b | 607 is-max {a} {b} ua b<x ab P a<b | case1 has-prev = is-max-hp x {a} {b} ua b<x ab has-prev a<b |
616 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 ) | 608 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 ) |
617 ... | 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 )) ⟫ | 609 ... | 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 )) ⟫ |
618 ... | case2 y<b = chain-mono1 (osucc b<x) | 610 ... | case2 y<b = chain-mono1 (osucc b<x) |
619 ⟪ ab , ch-is-sup b (ordtrans o≤-refl <-osuc ) m06 (subst (λ k → FClosure A f k b) (sym m05) (init ab refl)) ⟫ where | 611 ⟪ ab , ch-is-sup b <-osuc m06 (subst (λ k → FClosure A f k b) (sym m05) (init ab refl)) ⟫ where |
620 m09 : b o< & A | 612 m09 : b o< & A |
621 m09 = subst (λ k → k o< & A) &iso ( c<→o< (subst (λ k → odef A k ) (sym &iso ) ab)) | 613 m09 = subst (λ k → k o< & A) &iso ( c<→o< (subst (λ k → odef A k ) (sym &iso ) ab)) |
622 m07 : {z : Ordinal} → FClosure A f y z → z <= ZChain.supf zc b | 614 m07 : {z : Ordinal} → FClosure A f y z → z <= ZChain.supf zc b |
623 m07 {z} fc = ZChain.fcy<sup zc m09 fc | 615 m07 {z} fc = ZChain.fcy<sup zc m09 fc |
624 m08 : {s z1 : Ordinal} → ZChain.supf zc s o< ZChain.supf zc b | 616 m08 : {s z1 : Ordinal} → ZChain.supf zc s o< ZChain.supf zc b |
774 ... | case1 eq = case2 eq | 766 ... | case1 eq = case2 eq |
775 ... | case2 b<x = ⊥-elim ( ¬p<x<op ⟪ px<b , subst (λ k → b o< k ) (sym (Oprev.oprev=x op)) b<x ⟫ ) | 767 ... | case2 b<x = ⊥-elim ( ¬p<x<op ⟪ px<b , subst (λ k → b o< k ) (sym (Oprev.oprev=x op)) b<x ⟫ ) |
776 | 768 |
777 -- if previous chain satisfies maximality, we caan reuse it | 769 -- if previous chain satisfies maximality, we caan reuse it |
778 -- | 770 -- |
779 -- supf0 px is sup of UnionCF px , supf0 x is sup of UnionCF x | 771 -- UninCF supf0 px previous chain u o< px, supf0 px is not included |
772 -- UninCF supf0 x supf0 px is included | |
773 -- supf0 px ≡ px | |
774 -- supf0 px ≡ supf0 x | |
780 | 775 |
781 no-extension : ( (¬ xSUP (UnionCF A f mf ay supf0 px) x ) ∨ HasPrev A pchain x f) → ZChain A f mf ay x | 776 no-extension : ( (¬ xSUP (UnionCF A f mf ay supf0 px) x ) ∨ HasPrev A pchain x f) → ZChain A f mf ay x |
782 no-extension P = record { supf = supf0 ; sup = λ lt → STMP.tsup (sup lt ) ; supf-mono = supf-mono ; supf-max = supf-max | 777 no-extension P = record { supf = supf0 ; sup = λ lt → STMP.tsup (sup lt ) ; supf-mono = supf-mono ; supf-max = supf-max |
783 ; sup=u = sup=u ; supf-is-sup = λ lt → STMP.tsup=sup (sup lt) ; csupf = csupf } where | 778 ; sup=u = sup=u ; supf-is-sup = λ lt → STMP.tsup=sup (sup lt) ; csupf = csupf } where |
784 pchain0=1 : pchain ≡ pchain1 | 779 zc10 : {z : Ordinal} → OD.def (od pchain) z → OD.def (od pchain1) z |
785 pchain0=1 = ==→o≡ record { eq→ = zc10 ; eq← = zc11 P } where | 780 zc10 {z} ⟪ az , ch-init fc ⟫ = ⟪ az , ch-init fc ⟫ |
786 zc10 : {z : Ordinal} → OD.def (od pchain) z → OD.def (od pchain1) z | 781 zc10 {z} ⟪ az , ch-is-sup u1 u1<x u1-is-sup fc ⟫ = ⟪ az , ch-is-sup u1 (ordtrans u1<x (pxo<x op)) u1-is-sup fc ⟫ |
787 zc10 {z} ⟪ az , ch-init fc ⟫ = ⟪ az , ch-init fc ⟫ | 782 zc11 : (¬ xSUP (UnionCF A f mf ay supf0 px) x ) ∨ (HasPrev A pchain x f ) |
788 zc10 {z} ⟪ az , ch-is-sup u1 u1≤x u1-is-sup fc ⟫ = ⟪ az , ch-is-sup u1 (ordtrans u1≤x (osucc (pxo<x op))) u1-is-sup fc ⟫ | 783 → {z : Ordinal} → OD.def (od pchain1) z → OD.def (od pchain) z ∨ ( supf0 px ≡ px ) |
789 zc11 : (¬ xSUP (UnionCF A f mf ay supf0 px) x ) ∨ (HasPrev A pchain x f ) | 784 zc11 P {z} ⟪ az , ch-init fc ⟫ = case1 ⟪ az , ch-init fc ⟫ |
790 → {z : Ordinal} → OD.def (od pchain1) z → OD.def (od pchain) z | 785 zc11 P {z} ⟪ az , ch-is-sup u1 u1<x u1-is-sup fc ⟫ with trio< u1 px |
791 zc11 P {z} ⟪ az , ch-init fc ⟫ = ⟪ az , ch-init fc ⟫ | 786 ... | tri< u1<px ¬b ¬c = case1 ⟪ az , ch-is-sup u1 u1<px u1-is-sup fc ⟫ |
792 zc11 P {z} ⟪ az , ch-is-sup u1 u1≤x u1-is-sup fc ⟫ with osuc-≡< u1≤x | 787 ... | tri≈ ¬a eq ¬c = case2 (subst (λ k → supf0 k ≡ k) eq s1u=u) where |
793 ... | case2 lt = ⟪ az , ch-is-sup u1 u1≤px u1-is-sup fc ⟫ where | 788 s1u=u : supf0 u1 ≡ u1 |
794 u1≤px : u1 o≤ px | 789 s1u=u = ChainP.supu=u u1-is-sup |
795 u1≤px = (subst (λ k → u1 o< k) (sym (Oprev.oprev=x op)) lt) | 790 zc11 (case1 ¬sp=x) {z} ⟪ az , ch-is-sup u1 u1<x u1-is-sup fc ⟫ | tri> ¬a ¬b px<u = ⊥-elim (¬sp=x zcsup) where |
796 zc11 (case1 ¬sp=x) {z} ⟪ az , ch-is-sup u1 u1≤x u1-is-sup fc ⟫ | case1 eq = ⊥-elim (¬sp=x zcsup) where | 791 eq : u1 ≡ x |
797 s1u=x : supf0 u1 ≡ x | 792 eq with trio< u1 x |
798 s1u=x = trans (ChainP.supu=u u1-is-sup) eq | 793 ... | tri< a ¬b ¬c = ⊥-elim ( ¬p<x<op ⟪ px<u , subst (λ k → u1 o< k ) (sym (Oprev.oprev=x op )) a ⟫ ) |
799 zc13 : osuc px o< osuc u1 | 794 ... | tri≈ ¬a b ¬c = b |
800 zc13 = o≤-refl0 ( trans (Oprev.oprev=x op) (sym eq) ) | 795 ... | tri> ¬a ¬b c = ⊥-elim ( o<> u1<x c ) |
801 x<sup : {w : Ordinal} → odef (UnionCF A f mf ay supf0 px) w → (w ≡ x) ∨ (w << x) | 796 s1u=x : supf0 u1 ≡ x |
802 x<sup {w} ⟪ az , ch-init {w} fc ⟫ = subst (λ k → (w ≡ k) ∨ (w << k)) s1u=x | 797 s1u=x = trans (ChainP.supu=u u1-is-sup) eq |
798 zc13 : osuc px o< osuc u1 | |
799 zc13 = o≤-refl0 ( trans (Oprev.oprev=x op) (sym eq ) ) | |
800 x<sup : {w : Ordinal} → odef (UnionCF A f mf ay supf0 px) w → (w ≡ x) ∨ (w << x) | |
801 x<sup {w} ⟪ az , ch-init {w} fc ⟫ = subst (λ k → (w ≡ k) ∨ (w << k)) s1u=x | |
803 ( ChainP.fcy<sup u1-is-sup {w} fc ) | 802 ( ChainP.fcy<sup u1-is-sup {w} fc ) |
804 x<sup {w} ⟪ az , ch-is-sup u u≤x is-sup fc ⟫ with osuc-≡< ( supf-mono (ordtrans u≤x zc13 )) | 803 x<sup {w} ⟪ az , ch-is-sup u u<x is-sup fc ⟫ with osuc-≡< ( supf-mono (ordtrans (o<→≤ u<x) zc13 )) |
805 ... | case1 eq1 = ⊥-elim ( o<¬≡ zc14 u≤x ) where | 804 ... | case1 eq1 = ⊥-elim ( o<¬≡ zc14 (o<→≤ u<x) ) where |
806 zc14 : u ≡ osuc px | 805 zc14 : u ≡ osuc px |
807 zc14 = begin | 806 zc14 = begin |
808 u ≡⟨ sym ( ChainP.supu=u is-sup) ⟩ | 807 u ≡⟨ sym ( ChainP.supu=u is-sup) ⟩ |
809 supf0 u ≡⟨ eq1 ⟩ | 808 supf0 u ≡⟨ eq1 ⟩ |
810 supf0 u1 ≡⟨ s1u=x ⟩ | 809 supf0 u1 ≡⟨ s1u=x ⟩ |
811 x ≡⟨ sym (Oprev.oprev=x op) ⟩ | 810 x ≡⟨ sym (Oprev.oprev=x op) ⟩ |
812 osuc px ∎ where open ≡-Reasoning | 811 osuc px ∎ where open ≡-Reasoning |
813 ... | case2 lt = subst (λ k → (w ≡ k) ∨ (w << k)) s1u=x ( ChainP.order u1-is-sup lt fc ) | 812 ... | case2 lt = subst (λ k → (w ≡ k) ∨ (w << k)) s1u=x ( ChainP.order u1-is-sup lt fc ) |
814 zc12 : supf0 x ≡ u1 | 813 zc12 : supf0 x ≡ u1 |
815 zc12 = subst (λ k → supf0 k ≡ u1) eq (ChainP.supu=u u1-is-sup) | 814 zc12 = subst (λ k → supf0 k ≡ u1) eq (ChainP.supu=u u1-is-sup) |
816 zcsup : xSUP (UnionCF A f mf ay supf0 px) x | 815 zcsup : xSUP (UnionCF A f mf ay supf0 px) x |
817 zcsup = record { ax = subst (λ k → odef A k) (trans zc12 eq) (supf∈A o≤-refl) | 816 zcsup = record { ax = subst (λ k → odef A k) (trans zc12 eq) (supf∈A o≤-refl) |
818 ; is-sup = record { x<sup = x<sup } } | 817 ; is-sup = record { x<sup = x<sup } } |
819 zc11 (case2 hp) {z} ⟪ az , ch-is-sup u1 u1≤x u1-is-sup fc ⟫ | case1 eq = zc20 fc where | 818 zc11 (case2 hp) {z} ⟪ az , ch-is-sup u1 u1≤x u1-is-sup fc ⟫ | tri> ¬a ¬b px<u = case1 (zc20 fc ) where |
819 eq : u1 ≡ x | |
820 eq = ? | |
820 zc20 : {z : Ordinal} → FClosure A f (supf0 u1) z → OD.def (od pchain) z | 821 zc20 : {z : Ordinal} → FClosure A f (supf0 u1) z → OD.def (od pchain) z |
821 zc20 {z} (init asu su=z ) = zc13 where | 822 zc20 {z} (init asu su=z ) = zc13 where |
822 zc14 : x ≡ z | 823 zc14 : x ≡ z |
823 zc14 = begin | 824 zc14 = begin |
824 x ≡⟨ sym eq ⟩ | 825 x ≡⟨ sym eq ⟩ |
841 zc30 : z ≡ x | 842 zc30 : z ≡ x |
842 zc30 with osuc-≡< z≤x | 843 zc30 with osuc-≡< z≤x |
843 ... | case1 eq = eq | 844 ... | case1 eq = eq |
844 ... | case2 z<x = ⊥-elim (¬p<x<op ⟪ px<z , subst (λ k → z o< k ) (sym (Oprev.oprev=x op)) z<x ⟫ ) | 845 ... | case2 z<x = ⊥-elim (¬p<x<op ⟪ px<z , subst (λ k → z o< k ) (sym (Oprev.oprev=x op)) z<x ⟫ ) |
845 zc34 : {w : HOD} → UnionCF A f mf ay supf0 z ∋ w → (w ≡ SUP.sup zc32) ∨ (w < SUP.sup zc32) | 846 zc34 : {w : HOD} → UnionCF A f mf ay supf0 z ∋ w → (w ≡ SUP.sup zc32) ∨ (w < SUP.sup zc32) |
846 zc34 {w} lt = SUP.x<sup zc32 (subst (λ k → odef k (& w)) (sym pchain0=1) | 847 zc34 {w} lt = SUP.x<sup zc32 ? where |
847 (subst (λ k → odef (UnionCF A f mf ay supf0 k) (& w)) zc30 lt )) | 848 zc35 : odef (UnionCF A f mf ay supf0 x) (& w) |
849 zc35 = subst (λ k → odef (UnionCF A f mf ay supf0 k) (& w)) zc30 lt | |
848 zc33 : supf0 z ≡ & (SUP.sup zc32) | 850 zc33 : supf0 z ≡ & (SUP.sup zc32) |
849 zc33 = trans (sym (supfx (o≤-refl0 (sym zc30)))) ( ZChain.supf-is-sup zc o≤-refl ) | 851 zc33 = trans (sym (supfx (o≤-refl0 (sym zc30)))) ( ZChain.supf-is-sup zc o≤-refl ) |
850 sup=u : {b : Ordinal} (ab : odef A b) → | 852 sup=u : {b : Ordinal} (ab : odef A b) → |
851 b o≤ x → IsSup A (UnionCF A f mf ay supf0 b) ab ∧ (¬ HasPrev A (UnionCF A f mf ay supf0 b) b f ) → supf0 b ≡ b | 853 b o≤ x → IsSup A (UnionCF A f mf ay supf0 b) ab ∧ (¬ HasPrev A (UnionCF A f mf ay supf0 b) b f ) → supf0 b ≡ b |
852 sup=u {b} ab b≤x is-sup with trio< b px | 854 sup=u {b} ab b≤x is-sup with trio< b px |
858 ... | case1 eq = sym (eq) | 860 ... | case1 eq = sym (eq) |
859 ... | case2 b<x = ⊥-elim (¬p<x<op ⟪ px<b , subst (λ k → b o< k ) (sym (Oprev.oprev=x op)) b<x ⟫ ) | 861 ... | case2 b<x = ⊥-elim (¬p<x<op ⟪ px<b , subst (λ k → b o< k ) (sym (Oprev.oprev=x op)) b<x ⟫ ) |
860 zcsup : xSUP (UnionCF A f mf ay supf0 px) x | 862 zcsup : xSUP (UnionCF A f mf ay supf0 px) x |
861 zcsup with zc30 | 863 zcsup with zc30 |
862 ... | refl = record { ax = ab ; is-sup = record { x<sup = λ {w} lt → | 864 ... | refl = record { ax = ab ; is-sup = record { x<sup = λ {w} lt → |
863 IsSup.x<sup (proj1 is-sup) (subst (λ k → odef k w) pchain0=1 lt) } } | 865 IsSup.x<sup (proj1 is-sup) (zc10 lt)} } |
864 zc31 : ( (¬ xSUP (UnionCF A f mf ay supf0 px) x ) ∨ HasPrev A (UnionCF A f mf ay supf0 px) x f) → supf0 b ≡ b | 866 zc31 : ( (¬ xSUP (UnionCF A f mf ay supf0 px) x ) ∨ HasPrev A (UnionCF A f mf ay supf0 px) x f) → supf0 b ≡ b |
865 zc31 (case1 ¬sp=x) with zc30 | 867 zc31 (case1 ¬sp=x) with zc30 |
866 ... | refl = ⊥-elim (¬sp=x zcsup ) | 868 ... | refl = ⊥-elim (¬sp=x zcsup ) |
867 zc31 (case2 hasPrev ) with zc30 | 869 zc31 (case2 hasPrev ) with zc30 |
868 ... | refl = ⊥-elim ( proj2 is-sup (subst (λ k → HasPrev A k x f) pchain0=1 hasPrev ) ) | 870 ... | refl = ⊥-elim ( proj2 is-sup record { ax = HasPrev.ax hasPrev ; y = HasPrev.y hasPrev |
869 | 871 ; ay = zc10 (HasPrev.ay hasPrev) ; x=fy = HasPrev.x=fy hasPrev } ) |
870 csupf : {b : Ordinal} → b o≤ x → odef (UnionCF A f mf ay supf0 (supf0 b)) (supf0 b) | 872 csupf : {b : Ordinal} → b o≤ x → odef (UnionCF A f mf ay supf0 (supf0 b)) (supf0 b) |
871 csupf {b} b≤x with zc04 b≤x | 873 csupf {b} b≤x with zc04 b≤x |
872 ... | case2 b=x = subst (λ k → odef (UnionCF A f mf ay supf0 k) k) (ZChain.supf-max zc zc05 ) ( ZChain.csupf zc o≤-refl ) where | 874 ... | case2 b=x = subst (λ k → odef (UnionCF A f mf ay supf0 k) k) (ZChain.supf-max zc zc05 ) ( ZChain.csupf zc o≤-refl ) where |
873 zc05 : px o≤ b | 875 zc05 : px o≤ b |
874 zc05 = subst (λ k → px o≤ k) (sym b=x) (o<→≤ (pxo<x op) ) | 876 zc05 = subst (λ k → px o≤ k) (sym b=x) (o<→≤ (pxo<x op) ) |
1013 ... | ⟪ ua1 , ch-init fc₁ ⟫ = ⟪ proj2 ( mf _ ua1) , ch-init (fsuc _ fc₁) ⟫ | 1015 ... | ⟪ ua1 , ch-init fc₁ ⟫ = ⟪ proj2 ( mf _ ua1) , ch-init (fsuc _ fc₁) ⟫ |
1014 ... | ⟪ ua1 , ch-is-sup u u≤x is-sup fc₁ ⟫ = ⟪ proj2 ( mf _ ua1) , ch-is-sup u u≤x is-sup (fsuc _ fc₁) ⟫ | 1016 ... | ⟪ ua1 , ch-is-sup u u≤x is-sup fc₁ ⟫ = ⟪ proj2 ( mf _ ua1) , ch-is-sup u u≤x is-sup (fsuc _ fc₁) ⟫ |
1015 zc12 (init asu su=z ) = ⟪ subst (λ k → odef A k) su=z asu , ch-is-sup u u≤x ? (init ? ? ) ⟫ | 1017 zc12 (init asu su=z ) = ⟪ subst (λ k → odef A k) su=z asu , ch-is-sup u u≤x ? (init ? ? ) ⟫ |
1016 zc11 : {z : Ordinal} → OD.def (od pchain1) z → OD.def (od pchain) z | 1018 zc11 : {z : Ordinal} → OD.def (od pchain1) z → OD.def (od pchain) z |
1017 zc11 {z} ⟪ az , ch-init fc ⟫ = ⟪ az , ch-init fc ⟫ | 1019 zc11 {z} ⟪ az , ch-init fc ⟫ = ⟪ az , ch-init fc ⟫ |
1018 zc11 {z} ⟪ az , ch-is-sup u u≤x is-sup fc ⟫ = zc13 fc where | 1020 zc11 {z} ⟪ az , ch-is-sup u u<x is-sup fc ⟫ = zc13 fc where |
1019 zc13 : {z : Ordinal} → FClosure A f (supf1 u) z → odef pchain z | 1021 zc13 : {z : Ordinal} → FClosure A f (supf1 u) z → odef pchain z |
1020 zc13 (fsuc x fc) with zc13 fc | 1022 zc13 (fsuc x fc) with zc13 fc |
1021 ... | ⟪ ua1 , ch-init fc₁ ⟫ = ⟪ proj2 ( mf _ ua1) , ch-init (fsuc _ fc₁) ⟫ | 1023 ... | ⟪ ua1 , ch-init fc₁ ⟫ = ⟪ proj2 ( mf _ ua1) , ch-init (fsuc _ fc₁) ⟫ |
1022 ... | ⟪ ua1 , ch-is-sup u u≤x is-sup fc₁ ⟫ = ⟪ proj2 ( mf _ ua1) , ch-is-sup u u≤x is-sup (fsuc _ fc₁) ⟫ | 1024 ... | ⟪ ua1 , ch-is-sup u u<x is-sup fc₁ ⟫ = ⟪ proj2 ( mf _ ua1) , ch-is-sup u u<x is-sup (fsuc _ fc₁) ⟫ |
1023 zc13 (init asu su=z ) with trio< u x | 1025 zc13 (init asu su=z ) with trio< u x |
1024 ... | tri< a ¬b ¬c = ⟪ ? , ch-is-sup u u≤x ? (init ? ? ) ⟫ | 1026 ... | tri< a ¬b ¬c = ⟪ ? , ch-is-sup u u<x ? (init ? ? ) ⟫ |
1025 ... | tri≈ ¬a b ¬c = ? | 1027 ... | tri≈ ¬a b ¬c = ? |
1026 ... | tri> ¬a ¬b c = ⊥-elim ( o≤> u≤x c ) | 1028 ... | tri> ¬a ¬b c = ? -- ⊥-elim ( o≤> u<x c ) |
1027 sup : {z : Ordinal} → z o≤ x → SUP A (UnionCF A f mf ay supf1 z) | 1029 sup : {z : Ordinal} → z o≤ x → SUP A (UnionCF A f mf ay supf1 z) |
1028 sup {z} z≤x with trio< z x | 1030 sup {z} z≤x with trio< z x |
1029 ... | tri< a ¬b ¬c = SUP⊆ ? (ZChain.sup (pzc (osuc z) {!!}) {!!} ) | 1031 ... | tri< a ¬b ¬c = SUP⊆ ? (ZChain.sup (pzc (osuc z) {!!}) {!!} ) |
1030 ... | tri≈ ¬a b ¬c = {!!} | 1032 ... | tri≈ ¬a b ¬c = {!!} |
1031 ... | tri> ¬a ¬b x<z = ⊥-elim (o<¬≡ refl (ordtrans<-≤ x<z z≤x )) | 1033 ... | tri> ¬a ¬b x<z = ⊥-elim (o<¬≡ refl (ordtrans<-≤ x<z z≤x )) |