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