Mercurial > hg > Members > kono > Proof > ZF-in-agda
comparison src/zorn1.agda @ 931:307ad8807963
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 24 Oct 2022 04:30:41 +0900 |
parents | 0e0608b1953b |
children | b1899e33e2c7 |
comparison
equal
deleted
inserted
replaced
930:0e0608b1953b | 931:307ad8807963 |
---|---|
651 usp0 : ( f : Ordinal → Ordinal ) → (mf : ≤-monotonic-f A f ) {y : Ordinal} (ay : odef A y) | 651 usp0 : ( f : Ordinal → Ordinal ) → (mf : ≤-monotonic-f A f ) {y : Ordinal} (ay : odef A y) |
652 → ( supf : Ordinal → Ordinal ) | 652 → ( supf : Ordinal → Ordinal ) |
653 → SUP A (UnionZF f mf ay supf ) | 653 → SUP A (UnionZF f mf ay supf ) |
654 usp0 f mf ay supf = supP (UnionZF f mf ay supf ) (λ lt → auzc f mf ay supf lt ) (uzctotal f mf ay supf ) | 654 usp0 f mf ay supf = supP (UnionZF f mf ay supf ) (λ lt → auzc f mf ay supf lt ) (uzctotal f mf ay supf ) |
655 | 655 |
656 sp0 : ( f : Ordinal → Ordinal ) → (mf : ≤-monotonic-f A f ) {x y : Ordinal} (ay : odef A y) | 656 msp0 : ( f : Ordinal → Ordinal ) → (mf : ≤-monotonic-f A f ) {x y : Ordinal} (ay : odef A y) |
657 → (zc : ZChain A f mf ay x ) | 657 → (zc : ZChain A f mf ay x ) |
658 → SUP A (UnionCF A f mf ay (ZChain.supf zc) x) | 658 → MinSUP A (UnionCF A f mf ay (ZChain.supf zc) x) |
659 sp0 f mf {x} ay zc = supP (UnionCF A f mf ay (ZChain.supf zc) x) (ZChain.chain⊆A zc) ztotal where | 659 msp0 f mf {x} ay zc = minsupP (UnionCF A f mf ay (ZChain.supf zc) x) (ZChain.chain⊆A zc) ztotal where |
660 ztotal : IsTotalOrderSet (ZChain.chain zc) | 660 ztotal : IsTotalOrderSet (ZChain.chain zc) |
661 ztotal {a} {b} ca cb = subst₂ (λ j k → Tri (j < k) (j ≡ k) (k < j)) *iso *iso uz01 where | 661 ztotal {a} {b} ca cb = subst₂ (λ j k → Tri (j < k) (j ≡ k) (k < j)) *iso *iso uz01 where |
662 uz01 : Tri (* (& a) < * (& b)) (* (& a) ≡ * (& b)) (* (& b) < * (& a) ) | 662 uz01 : Tri (* (& a) < * (& b)) (* (& a) ≡ * (& b)) (* (& b) < * (& a) ) |
663 uz01 = chain-total A f mf ay (ZChain.supf zc) ( (proj2 ca)) ( (proj2 cb)) | 663 uz01 = chain-total A f mf ay (ZChain.supf zc) ( (proj2 ca)) ( (proj2 cb)) |
664 | |
665 sp0 : ( f : Ordinal → Ordinal ) → (mf : ≤-monotonic-f A f ) {x y : Ordinal} (ay : odef A y) | |
666 → (zc : ZChain A f mf ay x ) | |
667 → SUP A (UnionCF A f mf ay (ZChain.supf zc) x) | |
668 sp0 f mf ay zc = M→S (ZChain.supf zc) (msp0 f mf ay zc ) | |
664 | 669 |
665 fixpoint : ( f : Ordinal → Ordinal ) → (mf : ≤-monotonic-f A f ) (zc : ZChain A f mf as0 (& A) ) | 670 fixpoint : ( f : Ordinal → Ordinal ) → (mf : ≤-monotonic-f A f ) (zc : ZChain A f mf as0 (& A) ) |
666 → ZChain.supf zc (& (SUP.sup (sp0 f mf as0 zc))) o< ZChain.supf zc (& A) | 671 → ZChain.supf zc (& (SUP.sup (sp0 f mf as0 zc))) o< ZChain.supf zc (& A) |
667 → f (& (SUP.sup (sp0 f mf as0 zc ))) ≡ & (SUP.sup (sp0 f mf as0 zc )) | 672 → f (& (SUP.sup (sp0 f mf as0 zc ))) ≡ & (SUP.sup (sp0 f mf as0 zc )) |
668 fixpoint f mf zc ss<sa = ? | 673 fixpoint f mf zc ss<sa = ? |
678 z04 nmx zc = <-irr0 {* (cf nmx c)} {* c} (subst (λ k → odef A k ) (sym &iso) (proj1 (is-cf nmx (SUP.as sp1 )))) | 683 z04 nmx zc = <-irr0 {* (cf nmx c)} {* c} (subst (λ k → odef A k ) (sym &iso) (proj1 (is-cf nmx (SUP.as sp1 )))) |
679 (subst (λ k → odef A (& k)) (sym *iso) (SUP.as sp1) ) | 684 (subst (λ k → odef A (& k)) (sym *iso) (SUP.as sp1) ) |
680 (case1 ( cong (*)( fixpoint (cf nmx) (cf-is-≤-monotonic nmx ) zc ss<sa ))) -- x ≡ f x ̄ | 685 (case1 ( cong (*)( fixpoint (cf nmx) (cf-is-≤-monotonic nmx ) zc ss<sa ))) -- x ≡ f x ̄ |
681 (proj1 (cf-is-<-monotonic nmx c (SUP.as sp1 ))) where -- x < f x | 686 (proj1 (cf-is-<-monotonic nmx c (SUP.as sp1 ))) where -- x < f x |
682 supf = ZChain.supf zc | 687 supf = ZChain.supf zc |
688 msp1 : MinSUP A (ZChain.chain zc) | |
689 msp1 = msp0 (cf nmx) (cf-is-≤-monotonic nmx) as0 zc | |
683 sp1 : SUP A (ZChain.chain zc) | 690 sp1 : SUP A (ZChain.chain zc) |
684 sp1 = sp0 (cf nmx) (cf-is-≤-monotonic nmx) as0 zc | 691 sp1 = sp0 (cf nmx) (cf-is-≤-monotonic nmx) as0 zc |
685 c = & (SUP.sup sp1) | 692 c : Ordinal |
686 z20 : c << cf nmx c | 693 c = & ( SUP.sup sp1 ) |
687 z20 = proj1 (cf-is-<-monotonic nmx c (SUP.as sp1) ) | 694 mc = MinSUP.sup msp1 |
688 asc : odef A (supf c) | 695 z20 : mc << cf nmx mc |
696 z20 = proj1 (cf-is-<-monotonic nmx mc (MinSUP.asm msp1) ) | |
697 asc : odef A (supf mc) | |
689 asc = ZChain.asupf zc | 698 asc = ZChain.asupf zc |
690 spd : MinSUP A (uchain (cf nmx) (cf-is-≤-monotonic nmx) asc ) | 699 spd : MinSUP A (uchain (cf nmx) (cf-is-≤-monotonic nmx) asc ) |
691 spd = ysup (cf nmx) (cf-is-≤-monotonic nmx) asc | 700 spd = ysup (cf nmx) (cf-is-≤-monotonic nmx) asc |
692 d = MinSUP.sup spd | 701 d = MinSUP.sup spd |
693 d<A : d o< & A | 702 d<A : d o< & A |
722 -- z25 : {x : Ordinal } → odef (uchain (cf nmx) (cf-is-≤-monotonic nmx) asc ) x → (x ≡ y ) ∨ (x << y ) | 731 -- z25 : {x : Ordinal } → odef (uchain (cf nmx) (cf-is-≤-monotonic nmx) asc ) x → (x ≡ y ) ∨ (x << y ) |
723 -- z25 {x} (init au eq ) = ? -- sup c = x, cf y ≡ d, sup c =< d | 732 -- z25 {x} (init au eq ) = ? -- sup c = x, cf y ≡ d, sup c =< d |
724 -- z25 (fsuc x lt) = ? -- cf (sup c) | 733 -- z25 (fsuc x lt) = ? -- cf (sup c) |
725 sd=d : supf d ≡ d | 734 sd=d : supf d ≡ d |
726 sd=d = ZChain.sup=u zc (MinSUP.asm spd) (o<→≤ d<A) ⟪ is-sup , not-hasprev ⟫ | 735 sd=d = ZChain.sup=u zc (MinSUP.asm spd) (o<→≤ d<A) ⟪ is-sup , not-hasprev ⟫ |
727 sc<sd : supf c << supf d | 736 sc<<sd : supf mc << supf d |
728 sc<sd = ? | 737 sc<<sd = ? |
729 -- z21 = proj1 ( cf-is-<-monotonic nmx ? ? ) | 738 -- z21 = proj1 ( cf-is-<-monotonic nmx ? ? ) |
730 -- sco<d : supf c o< supf d | 739 sc<sd : supf mc o< supf d |
731 -- sco<d with osuc-≡< ( ZChain.supf-<= zc (case2 sc<sd ) ) | 740 sc<sd with osuc-≡< ( ZChain.supf-<= zc (case2 sc<<sd ) ) |
732 -- ... | case1 eq = ⊥-elim ( <-irr eq sc<sd ) | 741 -- ... | case1 eq = ⊥-elim ( <-irr (case1 (subst₂ (λ j k → j ≡ k ) ? ? (cong (*) eq) )) sc<<sd ) |
733 -- ... | case2 lt = lt | 742 ... | case1 eq = ⊥-elim ( <-irr (case1 (cong (*) eq)) sc<<sd ) |
743 ... | case2 lt = lt | |
744 | |
745 sms<sa : supf mc o< supf (& A) | |
746 sms<sa with osuc-≡< ( ZChain.supf-mono zc (o<→≤ ( ∈∧P→o< ⟪ MinSUP.asm msp1 , lift true ⟫) )) | |
747 ... | case2 lt = lt | |
748 ... | case1 eq = ⊥-elim ( o<¬≡ eq ( ordtrans<-≤ sc<sd ( ZChain.supf-mono zc (o<→≤ d<A )))) | |
734 | 749 |
735 ss<sa : supf c o< supf (& A) | 750 ss<sa : supf c o< supf (& A) |
736 ss<sa = ? -- with osuc-≡< ( ZChain.supf-mono zc (o<→≤ ( ∈∧P→o< ⟪ SUP.as sp0 , lift true ⟫) )) | 751 ss<sa = ? |
737 -- ... | case2 lt = lt | 752 |
738 -- ... | case1 eq = ? -- where | |
739 zorn00 : Maximal A | 753 zorn00 : Maximal A |
740 zorn00 with is-o∅ ( & HasMaximal ) -- we have no Level (suc n) LEM | 754 zorn00 with is-o∅ ( & HasMaximal ) -- we have no Level (suc n) LEM |
741 ... | no not = record { maximal = ODC.minimal O HasMaximal (λ eq → not (=od∅→≡o∅ eq)) ; as = zorn01 ; ¬maximal<x = zorn02 } where | 755 ... | no not = record { maximal = ODC.minimal O HasMaximal (λ eq → not (=od∅→≡o∅ eq)) ; as = zorn01 ; ¬maximal<x = zorn02 } where |
742 -- yes we have the maximal | 756 -- yes we have the maximal |
743 zorn03 : odef HasMaximal ( & ( ODC.minimal O HasMaximal (λ eq → not (=od∅→≡o∅ eq)) ) ) | 757 zorn03 : odef HasMaximal ( & ( ODC.minimal O HasMaximal (λ eq → not (=od∅→≡o∅ eq)) ) ) |