Mercurial > hg > Members > kono > Proof > ZF-in-agda
comparison src/zorn.agda @ 713:55e82405ec0d
px?
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 15 Jul 2022 10:33:55 +0900 |
parents | 92275389e623 |
children | e1ef5e6961ce |
comparison
equal
deleted
inserted
replaced
712:92275389e623 | 713:55e82405ec0d |
---|---|
567 chain-≡ : pchain ⊆' UnionCF A f mf ay (ZChain.supf zc) (Oprev.oprev op ) | 567 chain-≡ : pchain ⊆' UnionCF A f mf ay (ZChain.supf zc) (Oprev.oprev op ) |
568 → pchain ≡ UnionCF A f mf ay (ZChain.supf zc) (Oprev.oprev op ) | 568 → pchain ≡ UnionCF A f mf ay (ZChain.supf zc) (Oprev.oprev op ) |
569 chain-≡ lt = ==→o≡ record { eq→ = lt ; eq← = chain-mono } | 569 chain-≡ lt = ==→o≡ record { eq→ = lt ; eq← = chain-mono } |
570 | 570 |
571 zc4 : ZChain A f mf ay x | 571 zc4 : ZChain A f mf ay x |
572 zc4 with ODC.∋-p O A (* x) | 572 zc4 with ODC.∋-p O A (* px) |
573 ... | no noax = no-extenion zc1 where -- ¬ A ∋ p, just skip | 573 ... | no nopax = no-extenion zc1 where -- ¬ A ∋ p, just skip |
574 zc1 : {a b : Ordinal} → odef pchain a → b o< x → (ab : odef A b) → | 574 zc1 : {a b : Ordinal} → odef pchain a → b o< x → (ab : odef A b) → |
575 HasPrev A pchain ab f ∨ IsSup A pchain ab → | 575 HasPrev A pchain ab f ∨ IsSup A pchain ab → |
576 * a < * b → odef pchain b | 576 * a < * b → odef pchain b |
577 zc1 {a} {b} za b<ox ab P a<b with osuc-≡< ? | 577 zc1 {a} {b} za b<x ab P a<b with trio< b px |
578 ... | case1 eq = ⊥-elim ( noax (subst (λ k → odef A k) (trans eq (sym &iso)) ab ) ) | 578 ... | tri< lt ¬b ¬c = zcp za (chain-≡ zc10) lt ab P a<b where |
579 ... | case2 lt = zcp za (chain-≡ zc10) ? ab P a<b where | 579 zc10 : pchain ⊆' UnionCF A f mf ay (ZChain.supf zc) (Oprev.oprev op) |
580 zc10 : pchain ⊆' UnionCF A f mf ay (ZChain.supf zc) (Oprev.oprev op) | 580 zc10 {z} ⟪ az , record { u = u ; u<x = case2 u=y ; uchain = uc } ⟫ = |
581 zc10 {z} ⟪ az , record { u = u ; u<x = case2 u=y ; uchain = uc } ⟫ = | 581 ⟪ az , record { u = u ; u<x = case2 u=y ; uchain = uc } ⟫ |
582 ⟪ az , record { u = u ; u<x = case2 u=y ; uchain = uc } ⟫ | 582 zc10 {z} ⟪ az , record { u = u ; u<x = case1 u<x ; uchain = ch-init z fc } ⟫ = |
583 zc10 {z} ⟪ az , record { u = u ; u<x = case1 u<x ; uchain = ch-init z fc } ⟫ = | 583 ⟪ az , record { u = u ; u<x = case1 ? ; uchain = ch-init z fc } ⟫ |
584 ⟪ az , record { u = u ; u<x = case1 ? ; uchain = ch-init z fc } ⟫ | 584 zc10 {z} ⟪ az , record { u = u ; u<x = case1 u<x ; uchain = ch-is-sup is-sup fc } ⟫ = |
585 zc10 {z} ⟪ az , record { u = u ; u<x = case1 u<x ; uchain = ch-is-sup is-sup fc } ⟫ = | 585 ⟪ az , record { u = u ; u<x = case1 ? ; uchain = ch-is-sup is-sup fc } ⟫ |
586 ⟪ az , record { u = u ; u<x = case1 ? ; uchain = ch-is-sup is-sup fc } ⟫ | 586 -- ... | case1 eq = ⊥-elim ( noax (subst (λ k → odef A k) (trans eq (sym &iso)) ab ) ) |
587 ... | yes ax with ODC.p∨¬p O ( HasPrev A (ZChain.chain zc ) ax f ) | 587 ... | tri≈ ¬a b=px ¬c = ? |
588 ... | tri> ¬a ¬b c = ⊥-elim ( ¬p<x<op ⟪ c , subst (λ k → b o< k ) (sym (Oprev.oprev=x op)) b<x ⟫ ) | |
589 ... | yes apx with ODC.p∨¬p O ( HasPrev A (ZChain.chain zc ) apx f ) | |
588 -- we have to check adding x preserve is-max ZChain A y f mf x | 590 -- we have to check adding x preserve is-max ZChain A y f mf x |
589 ... | case1 pr = no-extenion ? where -- we have previous A ∋ z < x , f z ≡ x, so chain ∋ f z ≡ x because of f-next | 591 ... | case1 pr = no-extenion ? where -- we have previous A ∋ z < x , f z ≡ x, so chain ∋ f z ≡ x because of f-next |
590 zc7 : {a b : Ordinal} → odef pchain a → b o< x → (ab : odef A b) → | 592 zc7 : {a b : Ordinal} → odef pchain a → b o< x → (ab : odef A b) → |
591 HasPrev A pchain ab f ∨ IsSup A pchain ab → | 593 HasPrev A pchain ab f ∨ IsSup A pchain ab → |
592 * a < * b → odef pchain b | 594 * a < * b → odef pchain b |
593 zc7 {a} {b} za b<ox ab P a<b with osuc-≡< ? | 595 zc7 {a} {b} za b<x ab P a<b with osuc-≡< ? |
594 ... | case2 lt = zcp za ? ? ab P a<b | 596 ... | case2 lt = zcp za ? ? ab P a<b |
595 ... | case1 b=x = ? | 597 ... | case1 b=x = ? |
596 -- subst (λ k → odef chain0 k ) (trans (sym (HasPrev.x=fy pr )) (trans &iso (sym b=x)) ) ( ZChain.f-next zc (HasPrev.ay pr)) | 598 -- subst (λ k → odef chain0 k ) (trans (sym (HasPrev.x=fy pr )) (trans &iso (sym b=x)) ) ( ZChain.f-next zc (HasPrev.ay pr)) |
597 ... | case2 ¬fy<x with ODC.p∨¬p O (IsSup A (ZChain.chain zc ) ax ) | 599 ... | case2 ¬fy<x with ODC.p∨¬p O (IsSup A (ZChain.chain zc ) apx ) |
598 ... | case1 is-sup = -- x is a sup of zc | 600 ... | case1 is-sup = -- x is a sup of zc |
599 record { chain⊆A = pchain⊆A ; f-next = pnext ; f-total = ptotal | 601 record { chain⊆A = pchain⊆A ; f-next = pnext ; f-total = ptotal |
600 ; initial = pinit ; chain∋init = pcy ; is-max = p-ismax } where | 602 ; initial = pinit ; chain∋init = pcy ; is-max = p-ismax } where |
601 p-ismax : {a b : Ordinal} → odef pchain a → | 603 p-ismax : {a b : Ordinal} → odef pchain a → |
602 b o< x → (ab : odef A b) → | 604 b o< x → (ab : odef A b) → |
603 ( HasPrev A pchain ab f ∨ IsSup A pchain ab ) → | 605 ( HasPrev A pchain ab f ∨ IsSup A pchain ab ) → |
604 * a < * b → odef pchain b | 606 * a < * b → odef pchain b |
605 p-ismax {a} {b} ua b<ox ab (case1 hasp) a<b = ? | 607 p-ismax {a} {b} ua b<x ab (case1 hasp) a<b = ? |
606 p-ismax {a} {b} ua b<ox ab (case2 sup) a<b = ? | 608 p-ismax {a} {b} ua b<x ab (case2 sup) a<b = ? |
607 | 609 |
608 ... | case2 ¬x=sup = no-extenion z18 where -- x is not f y' nor sup of former ZChain from y -- no extention | 610 ... | case2 ¬x=sup = no-extenion z18 where -- x is not f y' nor sup of former ZChain from y -- no extention |
609 z18 : {a b : Ordinal} → odef pchain a → b o< x → (ab : odef A b) → | 611 z18 : {a b : Ordinal} → odef pchain a → b o< x → (ab : odef A b) → |
610 HasPrev A pchain ab f ∨ IsSup A pchain ab → | 612 HasPrev A pchain ab f ∨ IsSup A pchain ab → |
611 * a < * b → odef pchain b | 613 * a < * b → odef pchain b |
666 ... | tri> ¬a ¬b c = spu | 668 ... | tri> ¬a ¬b c = spu |
667 | 669 |
668 uzc : {a : Ordinal } → (za : odef pchain a) → ZChain A f mf ay (UChain.u (proj2 za)) | 670 uzc : {a : Ordinal } → (za : odef pchain a) → ZChain A f mf ay (UChain.u (proj2 za)) |
669 uzc {a} za with UChain.u<x (proj2 za) | 671 uzc {a} za with UChain.u<x (proj2 za) |
670 ... | case1 u<x = pzc _ u<x | 672 ... | case1 u<x = pzc _ u<x |
671 ... | case2 u=0 = ? | 673 ... | case2 u=0 = subst (λ k → ZChain A f mf ay k ) (sym u=0) (inititalChain f mf {y} ay ) |
672 | 674 |
673 zcp : {a b : Ordinal} → (za : odef pchain a ) | 675 zcp : {a b : Ordinal} → (za : odef pchain a ) |
674 → pchain ≡ ? | 676 → pchain ≡ UnionCF A f mf ay psupf x |
675 → b o< x → (ab : odef A b) | 677 → b o< x → (ab : odef A b) |
676 → HasPrev A pchain ab f ∨ IsSup A pchain ab | 678 → HasPrev A pchain ab f ∨ IsSup A pchain ab |
677 → * a < * b → odef pchain b | 679 → * a < * b → odef pchain b |
678 zcp {a} {b} za cheq b<x ab P a<b = ? where | 680 zcp {a} {b} za cheq b<x ab P a<b = subst (λ k → odef k b) (sym cheq) zc12 where |
679 zc12 : odef ? b | 681 zc13 : odef (UnionCF A f mf ay (ZChain.supf (uzc za)) (UChain.u (proj2 za))) a |
680 zc12 = ZChain.is-max (pzc _ ?) ? ? ab | 682 zc13 = ⟪ proj1 za , record { u = UChain.u (proj2 za) ; u<x = ? ; uchain = ? } ⟫ |
681 (subst (λ k → HasPrev A k ab f ∨ IsSup A k ab ) ? P) a<b | 683 zc14 : b o< UChain.u (proj2 za) |
684 zc14 = ? | |
685 zc12 : odef (UnionCF A f mf ay psupf x) b | |
686 zc12 = ⟪ ab , record { u = UChain.u (proj2 za) ; u<x = ? ; uchain = ? } ⟫ | |
687 -- ZChain.is-max (uzc za) ? ? ab (subst (λ k → HasPrev A k ab f ∨ IsSup A k ab ) cheq P) a<b | |
682 | 688 |
683 chain-mono : pchain ⊆' UnionCF A f mf ay psupf x | 689 chain-mono : pchain ⊆' UnionCF A f mf ay psupf x |
684 chain-mono {a} za = ⟪ proj1 za , record { u = UChain.u (proj2 za) ; u<x = UChain.u<x (proj2 za) ; uchain = zc11 } ⟫ where | 690 chain-mono {a} za = ⟪ proj1 za , record { u = UChain.u (proj2 za) ; u<x = UChain.u<x (proj2 za) ; uchain = zc11 } ⟫ where |
685 zc11 : Chain A f mf ay psupf (UChain.u (proj2 za)) a | 691 zc11 : Chain A f mf ay psupf (UChain.u (proj2 za)) a |
686 zc11 with UChain.uchain (proj2 za) | 692 zc11 with UChain.uchain (proj2 za) |
687 ... | ch-init .a x = ch-init a x | 693 ... | ch-init .a x = ch-init a x |
688 ... | ch-is-sup is-sup fc = ch-is-sup ? ? | 694 ... | ch-is-sup is-sup fc = ch-is-sup ? (subst (λ k → FClosure A f k a ) ? fc ) |
689 | 695 |
690 chain-≡ : UnionCF A f mf ay psupf x ⊆' pchain | 696 chain-≡ : UnionCF A f mf ay psupf x ⊆' pchain |
691 → UnionCF A f mf ay psupf x ≡ pchain | 697 → UnionCF A f mf ay psupf x ≡ pchain |
692 chain-≡ lt = ==→o≡ record { eq→ = lt ; eq← = chain-mono } | 698 chain-≡ lt = ==→o≡ record { eq→ = lt ; eq← = chain-mono } |
693 | 699 |