Mercurial > hg > Members > kono > Proof > ZF-in-agda
comparison src/zorn.agda @ 833:3fa321cbc337
... dead end
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 23 Aug 2022 10:33:47 +0900 |
parents | e61cbf28ec31 |
children | 6bf0899a6150 |
comparison
equal
deleted
inserted
replaced
832:e61cbf28ec31 | 833:3fa321cbc337 |
---|---|
647 ysup f mf {y} ay = supP (uchain f mf ay) (λ lt → A∋fc y f mf lt) (utotal f mf ay) | 647 ysup f mf {y} ay = supP (uchain f mf ay) (λ lt → A∋fc y f mf lt) (utotal f mf ay) |
648 | 648 |
649 SUP⊆ : { B C : HOD } → B ⊆' C → SUP A C → SUP A B | 649 SUP⊆ : { B C : HOD } → B ⊆' C → SUP A C → SUP A B |
650 SUP⊆ {B} {C} B⊆C sup = record { sup = SUP.sup sup ; as = SUP.as sup ; x<sup = λ lt → SUP.x<sup sup (B⊆C lt) } | 650 SUP⊆ {B} {C} B⊆C sup = record { sup = SUP.sup sup ; as = SUP.as sup ; x<sup = λ lt → SUP.x<sup sup (B⊆C lt) } |
651 | 651 |
652 record xSUP (B : HOD) (x : Ordinal) : Set n where | |
653 field | |
654 ax : odef A x | |
655 is-sup : IsSup A B ax | |
656 | |
652 -- | 657 -- |
653 -- create all ZChains under o< x | 658 -- create all ZChains under o< x |
654 -- | 659 -- |
655 | 660 |
656 ind : ( f : Ordinal → Ordinal ) → (mf : ≤-monotonic-f A f ) {y : Ordinal} (ay : odef A y) → (x : Ordinal) | 661 ind : ( f : Ordinal → Ordinal ) → (mf : ≤-monotonic-f A f ) {y : Ordinal} (ay : odef A y) → (x : Ordinal) |
688 pcy : odef pchain y | 693 pcy : odef pchain y |
689 pcy = ⟪ ay , ch-init (init ay refl) ⟫ | 694 pcy = ⟪ ay , ch-init (init ay refl) ⟫ |
690 | 695 |
691 supf0 = ZChain.supf zc | 696 supf0 = ZChain.supf zc |
692 | 697 |
693 sup1 : SUP A (UnionCF A f mf ay supf0 px) | |
694 sup1 = supP pchain pchain⊆A ptotal | |
695 sp1 = & (SUP.sup sup1 ) | |
696 supf1 : Ordinal → Ordinal | |
697 supf1 z with trio< z px | |
698 ... | tri< a ¬b ¬c = ZChain.supf zc z | |
699 ... | tri≈ ¬a b ¬c = sp1 | |
700 ... | tri> ¬a ¬b c = sp1 | |
701 | |
702 pchain1 : HOD | |
703 pchain1 = UnionCF A f mf ay supf1 x | |
704 pcy1 : odef pchain1 y | |
705 pcy1 = ⟪ ay , ch-init (init ay refl) ⟫ | |
706 pinit1 : {y₁ : Ordinal} → odef pchain1 y₁ → * y ≤ * y₁ | |
707 pinit1 {a} ⟪ aa , ua ⟫ with ua | |
708 ... | ch-init fc = s≤fc y f mf fc | |
709 ... | ch-is-sup u u≤x is-sup fc = ≤-ftrans (<=to≤ zc7) (s≤fc _ f mf fc) where | |
710 zc7 : y <= supf1 u | |
711 zc7 = ChainP.fcy<sup is-sup (init ay refl) | |
712 pnext1 : {a : Ordinal} → odef pchain1 a → odef pchain1 (f a) | |
713 pnext1 {a} ⟪ aa , ch-init fc ⟫ = ⟪ proj2 (mf a aa) , ch-init (fsuc _ fc) ⟫ | |
714 pnext1 {a} ⟪ aa , ch-is-sup u u≤x is-sup fc ⟫ = ⟪ proj2 (mf a aa) , ch-is-sup u u≤x is-sup (fsuc _ fc ) ⟫ | |
715 ptotal1 : IsTotalOrderSet pchain1 | |
716 ptotal1 {a} {b} ca cb = subst₂ (λ j k → Tri (j < k) (j ≡ k) (k < j)) *iso *iso uz01 where | |
717 uz01 : Tri (* (& a) < * (& b)) (* (& a) ≡ * (& b)) (* (& b) < * (& a) ) | |
718 uz01 = chain-total A f mf ay supf1 ( (proj2 ca)) ( (proj2 cb)) | |
719 | |
720 zc64 : {z : Ordinal } → supf0 z o< supf0 px → odef (UnionCF A f mf ay supf0 px) (supf0 z) | |
721 zc64 {z} sz<spx = zc73 where | |
722 z<px = ZChain.supf-inject zc sz<spx | |
723 zc70 : odef (UnionCF A f mf ay supf0 (supf0 z) ) (supf0 z) | |
724 zc70 = ZChain.csupf zc (o<→≤ z<px ) | |
725 zc73 : odef (UnionCF A f mf ay supf0 px ) (supf0 z) | |
726 zc73 with osuc-≡< (ZChain.supf-mono zc (o<→≤ z<px)) | |
727 ... | case1 eq2 = ⊥-elim ( o<¬≡ eq2 sz<spx ) | |
728 ... | case2 lt = subst (λ k → odef (UnionCF A f mf ay supf0 px ) k ) &iso ( ZChain.csupf-fc zc o≤-refl lt (init (proj1 zc70) refl) ) | |
729 | |
730 supf1<sp1 : {z : Ordinal } → supf1 z o≤ sp1 | |
731 supf1<sp1 {z} = ? where | |
732 zc50 : supf0 px ≡ sp1 | |
733 zc50 = ? -- ZChain.sup=u zc ? ? ? | |
734 zc53 : SUP A ( UnionCF A f mf ay supf0 px ) | |
735 zc53 = ZChain.sup zc o≤-refl | |
736 zc52 : supf0 px ≡ ? | |
737 zc52 = ? -- ZChain.sup=u zc ? ? ? | |
738 zc51 : supf0 sp1 ≡ sp1 | |
739 zc51 = ZChain.sup=u zc ? ? ? | |
740 | |
741 -- if previous chain satisfies maximality, we caan reuse it | 698 -- if previous chain satisfies maximality, we caan reuse it |
742 -- | 699 -- |
743 -- supf0 px is sup of UnionCF px , supf0 x is sup of UnionCF x | 700 -- supf0 px is sup of UnionCF px , supf0 x is sup of UnionCF x |
744 | 701 |
745 record xSUP : Set n where | 702 no-extension : (¬ xSUP (UnionCF A f mf ay supf0 px) x ) ∨ HasPrev A pchain ? f → ZChain A f mf ay x |
746 field | 703 no-extension ¬sp=x = record { supf = supf0 ; sup = ? ; supf-mono = {!!} |
747 ax : odef A x | 704 ; initial = ? ; chain∋init = ? ; sup=u = ? ; supf-is-sup = ? ; csupf = {!!} |
748 is-sup : IsSup A (UnionCF A f mf ay supf0 px) ax | 705 ; chain⊆A = λ lt → proj1 lt ; f-next = ? ; f-total = ? } where |
749 | 706 pchain0=1 : ? |
750 UnionCF⊆ : {z0 z1 : Ordinal} → (z0≤1 : z0 o≤ z1 ) → (z0≤px : z0 o< px ) → UnionCF A f mf ay supf0 z0 ⊆' UnionCF A f mf ay supf1 z1 | 707 pchain0=1 = ? |
751 UnionCF⊆ {z0} {z1} z0≤1 z0<px ⟪ au , ch-init fc ⟫ = ⟪ au , ch-init fc ⟫ | 708 sup : {z : Ordinal} → z o≤ x → SUP A (UnionCF A f mf ay supf0 z) |
752 UnionCF⊆ {z0} {z1} z0≤1 z0<px ⟪ au , ch-is-sup u1 {w} u1≤x u1-is-sup fc ⟫ = zc60 fc where | |
753 zc60 : {w : Ordinal } → FClosure A f (supf0 u1) w → odef (UnionCF A f mf ay supf1 z1 ) w | |
754 zc60 (init asp refl) with trio< u1 px | inspect supf1 u1 | |
755 ... | tri< a ¬b ¬c | record { eq = eq1 } = ⟪ A∋fcs _ f mf fc , ch-is-sup u1 (OrdTrans u1≤x z0≤1 ) | |
756 record { fcy<sup = fcy<sup ; order = order ; supu=u = trans eq1 (ChainP.supu=u u1-is-sup) } (init (subst (λ k → odef A k ) (sym eq1) asp) eq1 ) ⟫ where | |
757 fcy<sup : {z : Ordinal} → FClosure A f y z → (z ≡ supf1 u1) ∨ (z << supf1 u1 ) | |
758 fcy<sup {z} fc = subst ( λ k → (z ≡ k) ∨ (z << k )) (sym eq1) ( ChainP.fcy<sup u1-is-sup fc ) | |
759 order : {s : Ordinal} {z2 : Ordinal} → supf1 s o< supf1 u1 → FClosure A f (supf1 s) z2 → | |
760 (z2 ≡ supf1 u1) ∨ (z2 << supf1 u1) | |
761 order {s} {z2} s<u1 fc with trio< s px | |
762 ... | tri< a ¬b ¬c = subst (λ k → (z2 ≡ k) ∨ (z2 << k) ) (sym eq1) ( ChainP.order u1-is-sup zc61 fc ) where | |
763 zc61 : supf0 s o< supf0 u1 | |
764 zc61 = subst (λ k → supf0 s o< k ) eq1 s<u1 | |
765 ... | tri≈ ¬a b ¬c = ⊥-elim ( o≤> supf1<sp1 s<u1 ) | |
766 ... | tri> ¬a ¬b px<s = ⊥-elim ( o<¬≡ refl (ordtrans px<s {!!} )) -- px o< s < u1 < px | |
767 ... | tri≈ ¬a b ¬c | record { eq = eq1 } = ⟪ A∋fcs _ f mf fc , ch-is-sup u1 (OrdTrans u1≤x z0≤1 ) | |
768 record { fcy<sup = fcy<sup ; order = order ; supu=u = trans eq1 {!!} } (init (subst (λ k → odef A k ) (sym eq1) {!!} ) {!!} ) ⟫ where | |
769 fcy<sup : {z : Ordinal} → FClosure A f y z → (z ≡ supf1 u1) ∨ (z << supf1 u1 ) | |
770 fcy<sup {z} fc = subst ( λ k → (z ≡ k) ∨ (z << k )) (sym eq1) {!!} -- ( ChainP.fcy<sup u1-is-sup fc ) | |
771 order : {s : Ordinal} {z2 : Ordinal} → supf1 s o< supf1 u1 → FClosure A f (supf1 s) z2 → | |
772 (z2 ≡ supf1 u1) ∨ (z2 << supf1 u1) | |
773 order {s} {z2} s<u1 fc with trio< s px | |
774 ... | tri< a ¬b ¬c = subst (λ k → (z2 ≡ k) ∨ (z2 << k) ) (sym eq1) {!!} | |
775 ... | tri≈ ¬a b ¬c = subst (λ k → (z2 ≡ k) ∨ (z2 << k) ) (sym eq1) {!!} -- ( ChainP.order u1-is-sup s<u1 fc ) | |
776 ... | tri> ¬a ¬b px<s = ⊥-elim ( o<¬≡ refl (ordtrans px<s (subst (λ k → s o< k) b {!!} ) )) -- px o< s < u1 = px | |
777 ... | tri> ¬a ¬b px<u1 | record { eq = eq1 } with osuc-≡< (OrdTrans u1≤x (o<→≤ z0<px)) | |
778 ... | case1 eq = ⊥-elim ( o<¬≡ (sym eq) px<u1 ) | |
779 ... | case2 lt = ⊥-elim ( o<> lt px<u1 ) | |
780 zc60 (fsuc w1 fc) with zc60 fc | |
781 ... | ⟪ ua1 , ch-init fc₁ ⟫ = ⟪ proj2 ( mf _ ua1) , ch-init (fsuc _ fc₁) ⟫ | |
782 ... | ⟪ ua1 , ch-is-sup u u≤x is-sup fc₁ ⟫ = ⟪ proj2 ( mf _ ua1) , ch-is-sup u u≤x is-sup (fsuc _ fc₁) ⟫ | |
783 no-extension : ¬ xSUP → ZChain A f mf ay x | |
784 no-extension ¬sp=x = record { supf = supf1 ; sup = sup ; supf-mono = {!!} | |
785 ; initial = pinit1 ; chain∋init = pcy1 ; sup=u = sup=u ; supf-is-sup = sis ; csupf = {!!} | |
786 ; chain⊆A = λ lt → proj1 lt ; f-next = pnext1 ; f-total = ptotal1 } where | |
787 UnionCFR⊆ : {z0 z1 : Ordinal} → z0 o≤ z1 → z0 o< x → UnionCF A f mf ay supf1 z0 ⊆' UnionCF A f mf ay supf0 z1 | |
788 UnionCFR⊆ {z0} {z1} z0≤1 z0<x ⟪ au , ch-init fc ⟫ = ⟪ au , ch-init fc ⟫ | |
789 UnionCFR⊆ {z0} {z1} z0≤1 z0<x ⟪ au , ch-is-sup u1 {w} u1≤x u1-is-sup fc ⟫ = zc60 fc where | |
790 zc60 : {w : Ordinal } → FClosure A f (supf1 u1) w → odef (UnionCF A f mf ay supf0 z1 ) w | |
791 zc60 {w} (init asp refl) with trio< u1 px | inspect supf1 u1 | |
792 ... | tri< a ¬b ¬c | record { eq = eq1 } = ⟪ A∋fcs _ f mf fc , ch-is-sup u1 (OrdTrans u1≤x z0≤1 ) | |
793 record { fcy<sup = fcy<sup ; order = {!!} ; supu=u = trans (sym eq1) (ChainP.supu=u u1-is-sup) } (init asp refl ) ⟫ where | |
794 fcy<sup : {z : Ordinal} → FClosure A f y z → (z ≡ supf0 u1) ∨ (z << supf0 u1 ) | |
795 fcy<sup {z} fc = subst ( λ k → (z ≡ k) ∨ (z << k )) eq1 ( ChainP.fcy<sup u1-is-sup fc ) | |
796 order : {s : Ordinal} {z2 : Ordinal} → s o< u1 → FClosure A f (supf0 s) z2 → | |
797 (z2 ≡ supf0 u1) ∨ (z2 << supf0 u1) | |
798 order {s} {z2} s<u1 fc with trio< s px | inspect supf1 s | |
799 ... | tri< a ¬b ¬c | record { eq = eq2 } = subst (λ k → (z2 ≡ k) ∨ (z2 << k) ) eq1 ( ChainP.order u1-is-sup {!!} (subst (λ k → FClosure A f k z2) (sym eq2) fc )) | |
800 ... | tri≈ ¬a b ¬c | record { eq = eq2 } = subst (λ k → (z2 ≡ k) ∨ (z2 << k) ) eq1 ( ChainP.order u1-is-sup {!!} (subst (λ k → FClosure A f k z2) (sym eq2) {!!} )) | |
801 ... | tri> ¬a ¬b px<s | record { eq = eq2 } = ⊥-elim ( o<¬≡ refl (ordtrans px<s (ordtrans s<u1 a) )) -- px o< s < u1 < px | |
802 ... | tri≈ ¬a b ¬c | record { eq = eq1 } = ⟪ A∋fcs _ f mf fc , ch-is-sup u1 (OrdTrans u1≤x z0≤1 ) | |
803 record { fcy<sup = fcy<sup ; order = {!!} ; supu=u = trans (sym {!!} ) (ChainP.supu=u u1-is-sup) } (init {!!} {!!} ) ⟫ where | |
804 fcy<sup : {z : Ordinal} → FClosure A f y z → (z ≡ supf0 u1) ∨ (z << supf0 u1 ) | |
805 fcy<sup {z} fc = subst ( λ k → (z ≡ k) ∨ (z << k )) {!!} ( ChainP.fcy<sup u1-is-sup fc ) | |
806 order : {s : Ordinal} {z2 : Ordinal} → s o< u1 → FClosure A f (supf0 s) z2 → | |
807 (z2 ≡ supf0 u1) ∨ (z2 << supf0 u1) | |
808 order {s} {z2} s<u1 fc with trio< s px | inspect supf1 s | |
809 ... | tri< a ¬b ¬c | record { eq = eq2 } = subst (λ k → (z2 ≡ k) ∨ (z2 << k) ) {!!}( ChainP.order u1-is-sup {!!} (subst (λ k → FClosure A f k z2) (sym eq2) fc )) | |
810 ... | tri≈ ¬a b ¬c | record { eq = eq2 } = subst (λ k → (z2 ≡ k) ∨ (z2 << k) ) {!!} ( ChainP.order u1-is-sup {!!} (subst (λ k → FClosure A f k z2) (sym eq2) {!!} )) | |
811 ... | tri> ¬a ¬b px<s | _ = ⊥-elim ( o<¬≡ refl (ordtrans px<s (subst (λ k → s o< k) b s<u1 ) )) -- px o< s < u1 = px | |
812 ... | tri> ¬a ¬b px<u1 | record { eq = eq1 } with trio< z0 px | |
813 ... | tri< a ¬b ¬c with osuc-≡< (OrdTrans u1≤x (o<→≤ a) ) | |
814 ... | case1 eq = ⊥-elim ( o<¬≡ (sym eq) px<u1 ) | |
815 ... | case2 lt = ⊥-elim ( o<> lt px<u1 ) | |
816 zc60 (init asp refl) | tri> ¬a ¬b px<u1 | record { eq = eq1} | tri≈ ¬a' b ¬c with osuc-≡< (OrdTrans u1≤x (o≤-refl0 b) ) | |
817 ... | case1 eq = ⊥-elim ( o<¬≡ (sym eq) px<u1 ) | |
818 ... | case2 lt = ⊥-elim ( o<> lt px<u1 ) | |
819 zc60 (init asp refl) | tri> ¬a ¬b px<u1 | record { eq = eq1} | tri> ¬a' ¬b' px<z0 = ⊥-elim (¬p<x<op ⟪ px<z0 , subst (λ k → z0 o< k ) (sym (Oprev.oprev=x op)) z0<x ⟫ ) | |
820 zc60 (fsuc w1 fc) with zc60 fc | |
821 ... | ⟪ ua1 , ch-init fc₁ ⟫ = ⟪ proj2 ( mf _ ua1) , ch-init (fsuc _ fc₁) ⟫ | |
822 ... | ⟪ ua1 , ch-is-sup u u≤x is-sup fc₁ ⟫ = ⟪ proj2 ( mf _ ua1) , ch-is-sup u u≤x is-sup (fsuc _ fc₁) ⟫ | |
823 sup : {z : Ordinal} → z o≤ x → SUP A (UnionCF A f mf ay supf1 z) | |
824 sup {z} z≤x with trio< z px | 709 sup {z} z≤x with trio< z px |
825 ... | tri< a ¬b ¬c = SUP⊆ (UnionCFR⊆ o≤-refl ? ) ( ZChain.sup zc (o<→≤ a) ) | 710 ... | tri< a ¬b ¬c = SUP⊆ ? ( ZChain.sup zc (o<→≤ a) ) |
826 ... | tri≈ ¬a b ¬c = record { sup = SUP.sup sup1 ; as = SUP.as sup1 ; x<sup = zc61 } where | 711 ... | tri≈ ¬a b ¬c = record { sup = SUP.sup ? ; as = SUP.as ? ; x<sup = ? } where |
827 zc61 : {w : HOD} → UnionCF A f mf ay supf1 z ∋ w → (w ≡ SUP.sup sup1) ∨ (w < SUP.sup sup1) | 712 zc61 : {w : HOD} → UnionCF A f mf ay supf0 z ∋ w → (w ≡ SUP.sup ?) ∨ (w < SUP.sup ? ) |
828 zc61 {w} lt = ? -- SUP.x<sup sup1 (UnionCFR⊆ (o<→≤ z<x) z<x lt ) | 713 zc61 {w} lt = ? -- SUP.x<sup sup1 (UnionCFR⊆ (o<→≤ z<x) z<x lt ) |
829 ... | tri> ¬a ¬b px<z = ⊥-elim (¬p<x<op ⟪ px<z , subst (λ k → z o< k ) (sym (Oprev.oprev=x op)) ? ⟫ ) | 714 ... | tri> ¬a ¬b px<z = ⊥-elim (¬p<x<op ⟪ px<z , subst (λ k → z o< k ) (sym (Oprev.oprev=x op)) ? ⟫ ) |
830 sup=u : {b : Ordinal} (ab : odef A b) → | 715 sup=u : {b : Ordinal} (ab : odef A b) → |
831 b o≤ x → IsSup A (UnionCF A f mf ay supf1 b) ab → supf1 b ≡ b | 716 b o≤ x → IsSup A (UnionCF A f mf ay supf0 b) ab → supf0 b ≡ b |
832 sup=u {b} ab b≤x is-sup with trio< b px | 717 sup=u {b} ab b≤x is-sup with trio< b px |
833 ... | tri< a ¬b ¬c = ZChain.sup=u zc ab (o<→≤ a) record { x<sup = λ lt → IsSup.x<sup is-sup (UnionCF⊆ o≤-refl a lt) } | 718 ... | tri< a ¬b ¬c = ZChain.sup=u zc ab (o<→≤ a) record { x<sup = λ lt → IsSup.x<sup is-sup ? } |
834 ... | tri≈ ¬a b ¬c = {!!} -- ZChain.sup=u zc ab (o≤-refl0 b) record { x<sup = λ lt → IsSup.x<sup is-sup (UnionCF⊆ o≤-refl (o≤-refl0 b) lt) } | 719 ... | tri≈ ¬a b ¬c = {!!} -- ZChain.sup=u zc ab (o≤-refl0 b) record { x<sup = λ lt → IsSup.x<sup is-sup (UnionCF⊆ o≤-refl (o≤-refl0 b) lt) } |
835 ... | tri> ¬a ¬b px<b = ⊥-elim (¬sp=x zcsup ) where | 720 ... | tri> ¬a ¬b px<b = ? where -- ⊥-elim (¬sp=x zcsup ) where |
836 zc30 : x ≡ b | 721 zc30 : x ≡ b |
837 zc30 with osuc-≡< b≤x | 722 zc30 with osuc-≡< b≤x |
838 ... | case1 eq = sym (eq) | 723 ... | case1 eq = sym (eq) |
839 ... | case2 b<x = ⊥-elim (¬p<x<op ⟪ px<b , subst (λ k → b o< k ) (sym (Oprev.oprev=x op)) b<x ⟫ ) | 724 ... | case2 b<x = ⊥-elim (¬p<x<op ⟪ px<b , subst (λ k → b o< k ) (sym (Oprev.oprev=x op)) b<x ⟫ ) |
840 zcsup : xSUP | 725 zcsup : ? |
841 zcsup with zc30 | 726 zcsup = ? -- with zc30 |
842 ... | refl = record { ax = ab ; is-sup = record { x<sup = λ lt → IsSup.x<sup is-sup (UnionCF⊆ (pxo≤x op) {!!} lt) } } | 727 -- ... | refl = case1 record { ax = ab ; is-sup = record { x<sup = λ lt → IsSup.x<sup is-sup ? } } |
843 csupf : {b : Ordinal} → b o≤ x → odef (UnionCF A f mf ay supf1 b) (supf1 b) | 728 csupf : {b : Ordinal} → b o≤ x → odef (UnionCF A f mf ay supf0 b) (supf0 b) |
844 csupf {b} b<x with trio< b px | inspect supf1 b | 729 csupf {b} b<x with trio< b px | inspect supf0 b |
845 ... | tri< a ¬b ¬c | _ = UnionCF⊆ o≤-refl a {!!} | 730 ... | tri< a ¬b ¬c | _ = ? -- UnionCF⊆ o≤-refl a {!!} |
846 ... | tri≈ ¬a refl ¬c | _ = {!!} -- UnionCF⊆ o≤-refl o≤-refl ( ZChain.csupf zc o≤-refl ) | 731 ... | tri≈ ¬a refl ¬c | _ = {!!} -- UnionCF⊆ o≤-refl o≤-refl ( ZChain.csupf zc o≤-refl ) |
847 ... | tri> ¬a ¬b px<b | record { eq = eq1 } = {!!} -- UnionCF⊆ (o<→≤ px<b) o≤-refl ( ZChain.csupf zc o≤-refl ) | 732 ... | tri> ¬a ¬b px<b | record { eq = eq1 } = {!!} -- UnionCF⊆ (o<→≤ px<b) o≤-refl ( ZChain.csupf zc o≤-refl ) |
848 sis : {z : Ordinal} (z≤x : z o≤ x) → supf1 z ≡ & (SUP.sup (sup z≤x)) | 733 sis : {z : Ordinal} (z≤x : z o≤ x) → supf0 z ≡ & (SUP.sup (sup z≤x)) |
849 sis {z} z<x with trio< z px | 734 sis {z} z<x with trio< z px |
850 ... | tri< a ¬b ¬c = ZChain.supf-is-sup zc (o<→≤ a ) | 735 ... | tri< a ¬b ¬c = ZChain.supf-is-sup zc (o<→≤ a ) |
851 ... | tri≈ ¬a b ¬c = {!!} | 736 ... | tri≈ ¬a b ¬c = {!!} |
852 ... | tri> ¬a ¬b px<z = ⊥-elim (¬p<x<op ⟪ px<z , subst (λ k → z o< k ) (sym (Oprev.oprev=x op)) ? ⟫ ) | 737 ... | tri> ¬a ¬b px<z = ⊥-elim (¬p<x<op ⟪ px<z , subst (λ k → z o< k ) (sym (Oprev.oprev=x op)) ? ⟫ ) |
738 | |
853 zc4 : ZChain A f mf ay x | 739 zc4 : ZChain A f mf ay x |
854 zc4 with ODC.∋-p O A (* x) | 740 zc4 with ODC.∋-p O A (* x) |
855 ... | no noax = no-extension {!!} -- ¬ A ∋ p, just skip | 741 ... | no noax = no-extension {!!} -- ¬ A ∋ p, just skip |
856 ... | yes ax with ODC.p∨¬p O ( HasPrev A (ZChain.chain zc ) ax f ) | 742 ... | yes ax with ODC.p∨¬p O ( HasPrev A (ZChain.chain zc ) ax f ) |
857 -- we have to check adding x preserve is-max ZChain A y f mf x | 743 -- we have to check adding x preserve is-max ZChain A y f mf x |
885 | 771 |
886 ... | no lim = zc5 where | 772 ... | no lim = zc5 where |
887 | 773 |
888 pzc : (z : Ordinal) → z o< x → ZChain A f mf ay z | 774 pzc : (z : Ordinal) → z o< x → ZChain A f mf ay z |
889 pzc z z<x = prev z z<x | 775 pzc z z<x = prev z z<x |
890 ysp = & (SUP.sup (ysup f mf ay)) | 776 |
891 | 777 record Usupf : Set n where |
892 record SupE ( z : Ordinal ) : Set n where | |
893 field | 778 field |
894 z<x : z o< x | 779 umax : Ordinal → Ordinal |
895 z=supfz : z ≡ ZChain.supf (pzc z z<x) z | 780 umax<x : {z : Ordinal } → umax z o< x |
896 | 781 supf : Ordinal → Ordinal |
897 psupf0 : (z : Ordinal) → Ordinal | 782 supf z = ZChain.supf (pzc (osuc (umax z)) (ob<x lim umax<x )) z |
898 psupf0 z with trio< z x | 783 field |
899 ... | tri< a ¬b ¬c = ZChain.supf (pzc (osuc z) (ob<x lim a)) z | 784 supf-mono : {x y : Ordinal } → x o≤ y → supf x o≤ supf y |
900 ... | tri≈ ¬a b ¬c = ysp | |
901 ... | tri> ¬a ¬b c = ysp | |
902 | |
903 pchain0 : HOD | |
904 pchain0 = UnionCF A f mf ay psupf0 x | |
905 | |
906 ptotal0 : IsTotalOrderSet pchain0 | |
907 ptotal0 {a} {b} ca cb = subst₂ (λ j k → Tri (j < k) (j ≡ k) (k < j)) *iso *iso uz01 where | |
908 uz01 : Tri (* (& a) < * (& b)) (* (& a) ≡ * (& b)) (* (& b) < * (& a) ) | |
909 uz01 = chain-total A f mf ay psupf0 ( (proj2 ca)) ( (proj2 cb)) | |
910 | |
911 usup : SUP A pchain0 | |
912 usup = supP pchain0 (λ lt → proj1 lt) ptotal0 | |
913 spu = & (SUP.sup usup) | |
914 | 785 |
915 supf1 : Ordinal → Ordinal | 786 supf1 : Ordinal → Ordinal |
916 supf1 z with trio< z x | 787 supf1 z = ? |
917 ... | tri< a ¬b ¬c = ZChain.supf (pzc (osuc z) (ob<x lim a)) z | 788 -- ... | tri< a ¬b ¬c = ZChain.supf (pzc (osuc z) (ob<x lim a)) z |
918 ... | tri≈ ¬a b ¬c = spu | |
919 ... | tri> ¬a ¬b c = spu | |
920 | 789 |
921 pchain : HOD | 790 pchain : HOD |
922 pchain = UnionCF A f mf ay supf1 x | 791 pchain = UnionCF A f mf ay supf1 x |
923 | 792 |
924 pchain⊆A : {y : Ordinal} → odef pchain y → odef A y | 793 pchain⊆A : {y : Ordinal} → odef pchain y → odef A y |
947 ... | ⟪ ab0 , ch-init fc ⟫ = ⟪ ab , ch-init ( subst (λ k → FClosure A f y k) (sym (HasPrev.x=fy has-prev)) (fsuc _ fc )) ⟫ | 816 ... | ⟪ ab0 , ch-init fc ⟫ = ⟪ ab , ch-init ( subst (λ k → FClosure A f y k) (sym (HasPrev.x=fy has-prev)) (fsuc _ fc )) ⟫ |
948 ... | ⟪ ab0 , ch-is-sup u u≤x is-sup fc ⟫ = ⟪ ab , | 817 ... | ⟪ ab0 , ch-is-sup u u≤x is-sup fc ⟫ = ⟪ ab , |
949 subst (λ k → UChain A f mf ay supf x k ) | 818 subst (λ k → UChain A f mf ay supf x k ) |
950 (sym (HasPrev.x=fy has-prev)) ( ch-is-sup u u≤x is-sup (fsuc _ fc)) ⟫ | 819 (sym (HasPrev.x=fy has-prev)) ( ch-is-sup u u≤x is-sup (fsuc _ fc)) ⟫ |
951 | 820 |
952 record xSUP : Set n where | 821 no-extension : ¬ ( xSUP (UnionCF A f mf ay supf1 x) x ) ∨ HasPrev A pchain ? f → ZChain A f mf ay x |
953 field | |
954 ax : odef A x | |
955 not-sup : IsSup A (UnionCF A f mf ay psupf0 x) ax | |
956 | |
957 no-extension : ¬ xSUP → ZChain A f mf ay x | |
958 no-extension ¬sp=x = record { initial = pinit ; chain∋init = pcy ; supf = supf1 ; sup=u = sup=u | 822 no-extension ¬sp=x = record { initial = pinit ; chain∋init = pcy ; supf = supf1 ; sup=u = sup=u |
959 ; sup = sup ; supf-is-sup = sis ; supf-mono = {!!} | 823 ; sup = sup ; supf-is-sup = sis ; supf-mono = {!!} |
960 ; csupf = {!!} ; chain⊆A = pchain⊆A ; f-next = pnext ; f-total = ptotal } where | 824 ; csupf = {!!} ; chain⊆A = pchain⊆A ; f-next = pnext ; f-total = ptotal } where |
961 supfu : {u : Ordinal } → ( a : u o< x ) → (z : Ordinal) → Ordinal | 825 supfu : {u : Ordinal } → ( a : u o< x ) → (z : Ordinal) → Ordinal |
962 supfu {u} a z = ZChain.supf (pzc (osuc u) (ob<x lim a)) z | 826 supfu {u} a z = ZChain.supf (pzc (osuc u) (ob<x lim a)) z |
965 UnionCF⊆ {u} u<x ⟪ au , ch-is-sup u1 u1≤x u1-is-sup (init au1 refl) ⟫ = ⟪ au , ch-is-sup u1 {!!} {!!} (init {!!} {!!}) ⟫ | 829 UnionCF⊆ {u} u<x ⟪ au , ch-is-sup u1 u1≤x u1-is-sup (init au1 refl) ⟫ = ⟪ au , ch-is-sup u1 {!!} {!!} (init {!!} {!!}) ⟫ |
966 UnionCF⊆ {u} u<x ⟪ au , ch-is-sup u1 u1≤x u1-is-sup (fsuc xp fcu1) ⟫ = {!!} -- with | 830 UnionCF⊆ {u} u<x ⟪ au , ch-is-sup u1 u1≤x u1-is-sup (fsuc xp fcu1) ⟫ = {!!} -- with |
967 -- UnionCF⊆ {u} u<x ⟪ A∋fc _ f mf fcu1 , ch-is-sup u1 u1≤x u1-is-sup fcu1 ⟫ | 831 -- UnionCF⊆ {u} u<x ⟪ A∋fc _ f mf fcu1 , ch-is-sup u1 u1≤x u1-is-sup fcu1 ⟫ |
968 -- ... | ⟪ aa , ch-init fc ⟫ = ⟪ proj2 ( mf _ aa ) , ch-init (fsuc _ fc) ⟫ | 832 -- ... | ⟪ aa , ch-init fc ⟫ = ⟪ proj2 ( mf _ aa ) , ch-init (fsuc _ fc) ⟫ |
969 -- ... | ⟪ aa , ch-is-sup u u≤x is-sup fc ⟫ = ⟪ proj2 ( mf _ aa ) , ch-is-sup u u≤x is-sup (fsuc _ fc) ⟫ | 833 -- ... | ⟪ aa , ch-is-sup u u≤x is-sup fc ⟫ = ⟪ proj2 ( mf _ aa ) , ch-is-sup u u≤x is-sup (fsuc _ fc) ⟫ |
970 UnionCFR⊆ : {z : Ordinal} → (a : z o≤ x ) → UnionCF A f mf ay supf1 z ⊆' UnionCF A f mf ay psupf0 x | 834 UnionCFR⊆ : {z : Ordinal} → (a : z o≤ x ) → UnionCF A f mf ay supf1 z ⊆' UnionCF A f mf ay supf1 x |
971 UnionCFR⊆ {u} u<x ⟪ au , ch-init fc ⟫ = ⟪ au , ch-init fc ⟫ | 835 UnionCFR⊆ {u} u<x ⟪ au , ch-init fc ⟫ = ⟪ au , ch-init fc ⟫ |
972 UnionCFR⊆ {u} u<x ⟪ au , ch-is-sup u1 u1≤x u1-is-sup (init au1 refl) ⟫ = ⟪ au , ch-is-sup u1 {!!} {!!} (init {!!} {!!}) ⟫ | 836 UnionCFR⊆ {u} u<x ⟪ au , ch-is-sup u1 u1≤x u1-is-sup (init au1 refl) ⟫ = ⟪ au , ch-is-sup u1 {!!} {!!} (init {!!} {!!}) ⟫ |
973 UnionCFR⊆ {u} u<x ⟪ au , ch-is-sup u1 u1≤x u1-is-sup (fsuc xp fcu1) ⟫ = {!!} -- with | 837 UnionCFR⊆ {u} u<x ⟪ au , ch-is-sup u1 u1≤x u1-is-sup (fsuc xp fcu1) ⟫ = {!!} -- with |
974 -- UnionCF0⊆ {u} u<x ⟪ A∋fc _ f mf fcu1 , ch-is-sup u1 u1≤x u1-is-sup fcu1 ⟫ | 838 -- UnionCF0⊆ {u} u<x ⟪ A∋fc _ f mf fcu1 , ch-is-sup u1 u1≤x u1-is-sup fcu1 ⟫ |
975 -- ... | ⟪ aa , ch-init fc ⟫ = ⟪ proj2 ( mf _ aa ) , ch-init (fsuc _ fc) ⟫ | 839 -- ... | ⟪ aa , ch-init fc ⟫ = ⟪ proj2 ( mf _ aa ) , ch-init (fsuc _ fc) ⟫ |
985 zc8 = ZChain.supf-is-sup (pzc z a) {!!} | 849 zc8 = ZChain.supf-is-sup (pzc z a) {!!} |
986 ... | tri≈ ¬a b ¬c = {!!} | 850 ... | tri≈ ¬a b ¬c = {!!} |
987 ... | tri> ¬a ¬b c = {!!} | 851 ... | tri> ¬a ¬b c = {!!} |
988 sup=u : {b : Ordinal} (ab : odef A b) → b o≤ x → IsSup A (UnionCF A f mf ay supf1 b) ab → supf1 b ≡ b | 852 sup=u : {b : Ordinal} (ab : odef A b) → b o≤ x → IsSup A (UnionCF A f mf ay supf1 b) ab → supf1 b ≡ b |
989 sup=u {b} ab b<x is-sup with trio< b x | 853 sup=u {b} ab b<x is-sup with trio< b x |
990 ... | tri< a ¬b ¬c = ZChain.sup=u (pzc (osuc b) (ob<x lim a)) ab {!!} record { x<sup = {!!} } | 854 ... | tri< a ¬b ¬c = ? -- ZChain.sup=u (pzc (osuc b) (ob<x lim a)) ab {!!} record { x<sup = {!!} } |
991 ... | tri≈ ¬a b ¬c = {!!} -- ZChain.sup=u (pzc (osuc ?) ?) ab {!!} record { x<sup = {!!} } | 855 ... | tri≈ ¬a b ¬c = {!!} -- ZChain.sup=u (pzc (osuc ?) ?) ab {!!} record { x<sup = {!!} } |
992 ... | tri> ¬a ¬b c = {!!} | 856 ... | tri> ¬a ¬b c = {!!} |
993 csupf : {z : Ordinal} → z o≤ x → odef (UnionCF A f mf ay supf1 z) (supf1 z) | 857 csupf : {z : Ordinal} → z o≤ x → odef (UnionCF A f mf ay supf1 z) (supf1 z) |
994 csupf {z} z≤x with trio< z x | 858 csupf {z} z≤x with trio< z x |
995 ... | tri< a ¬b ¬c = zc9 where | 859 ... | tri< a ¬b ¬c = ? where |
996 zc9 : odef (UnionCF A f mf ay supf1 z) (ZChain.supf (pzc (osuc z) (ob<x lim a)) z) | 860 zc9 : odef (UnionCF A f mf ay supf1 z) (ZChain.supf (pzc (osuc z) (ob<x lim a)) z) |
997 zc9 = {!!} | 861 zc9 = {!!} |
998 zc8 : odef (UnionCF A f mf ay (supfu a) z) (ZChain.supf (pzc (osuc z) (ob<x lim a)) z) | 862 zc8 : odef (UnionCF A f mf ay (supfu a) z) (ZChain.supf (pzc (osuc z) (ob<x lim a)) z) |
999 zc8 = {!!} -- ZChain.csupf (pzc (osuc z) (ob<x lim a)) ? -- (o<→≤ <-osuc ) | 863 zc8 = {!!} -- ZChain.csupf (pzc (osuc z) (ob<x lim a)) ? -- (o<→≤ <-osuc ) |
1000 ... | tri≈ ¬a b ¬c = {!!} | 864 ... | tri≈ ¬a b ¬c = {!!} |