comparison src/zorn.agda @ 752:2be90b90deb3

dead end
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 23 Jul 2022 17:19:18 +0900
parents 71ad137dd101
children
comparison
equal deleted inserted replaced
751:71ad137dd101 752:2be90b90deb3
291 chain⊆A : chain ⊆' A 291 chain⊆A : chain ⊆' A
292 chain∋init : odef chain init 292 chain∋init : odef chain init
293 initial : {y : Ordinal } → odef chain y → * init ≤ * y 293 initial : {y : Ordinal } → odef chain y → * init ≤ * y
294 f-next : {a : Ordinal } → odef chain a → odef chain (f a) 294 f-next : {a : Ordinal } → odef chain a → odef chain (f a)
295 f-total : IsTotalOrderSet chain 295 f-total : IsTotalOrderSet chain
296 chain∋supf : {z : Ordinal } → odef chain (supf z)
296 sup=u : {b : Ordinal} → {ab : odef A b} → b o< z → IsSup A chain ab → supf b ≡ b 297 sup=u : {b : Ordinal} → {ab : odef A b} → b o< z → IsSup A chain ab → supf b ≡ b
297 order : {b sup1 z1 : Ordinal} → b o< z → sup1 o< b → FClosure A f (supf sup1) z1 → z1 << supf b 298 order : {b sup1 z1 : Ordinal} → b o< z → sup1 o< b → FClosure A f (supf sup1) z1 → z1 << supf b
298 299
299 record ZChain1 ( A : HOD ) ( f : Ordinal → Ordinal ) (mf : ≤-monotonic-f A f) 300 record ZChain1 ( A : HOD ) ( f : Ordinal → Ordinal ) (mf : ≤-monotonic-f A f)
300 {init : Ordinal} (ay : odef A init) (zc : ZChain A f mf ay (& A)) ( z : Ordinal ) : Set (Level.suc n) where 301 {init : Ordinal} (ay : odef A init) (zc : ZChain A f mf ay (& A)) ( z : Ordinal ) : Set (Level.suc n) where
447 ... | ⟪ ab0 , ch-is-sup u u<x is-sup fc ⟫ = ⟪ ab , 448 ... | ⟪ ab0 , ch-is-sup u u<x is-sup fc ⟫ = ⟪ ab ,
448 subst (λ k → UChain A f mf ay (ZChain.supf zc) x k ) 449 subst (λ k → UChain A f mf ay (ZChain.supf zc) x k )
449 (sym (HasPrev.x=fy has-prev)) ( ch-is-sup u u<x (ChainP-next A f mf ay _ is-sup) (fsuc _ fc)) ⟫ 450 (sym (HasPrev.x=fy has-prev)) ( ch-is-sup u u<x (ChainP-next A f mf ay _ is-sup) (fsuc _ fc)) ⟫
450 zc1 : (x : Ordinal) → ((y₁ : Ordinal) → y₁ o< x → ZChain1 A f mf ay zc y₁) → ZChain1 A f mf ay zc x 451 zc1 : (x : Ordinal) → ((y₁ : Ordinal) → y₁ o< x → ZChain1 A f mf ay zc y₁) → ZChain1 A f mf ay zc x
451 zc1 x prev with Oprev-p x 452 zc1 x prev with Oprev-p x
452 ... | yes op = record { is-max = is-max ; chain-mono2 = chain-mono2 x ; fcy<sup = fcy<sup ; sup=u = ? ; order = order } where 453 ... | yes op = record { is-max = is-max ; chain-mono2 = chain-mono2 x ; fcy<sup = fcy<sup ; sup=u = sup=u ; order = order } where
453 px = Oprev.oprev op 454 px = Oprev.oprev op
454 px<x : px o< x 455 px<x : px o< x
455 px<x = subst (λ k → px o< k ) (Oprev.oprev=x op) <-osuc 456 px<x = subst (λ k → px o< k ) (Oprev.oprev=x op) <-osuc
456 zc-b<x : (b : Ordinal ) → b o< x → b o< osuc px 457 zc-b<x : (b : Ordinal ) → b o< x → b o< osuc px
457 zc-b<x b lt = subst (λ k → b o< k ) (sym (Oprev.oprev=x op)) lt 458 zc-b<x b lt = subst (λ k → b o< k ) (sym (Oprev.oprev=x op)) lt
468 ... | tri> ¬a ¬b c = ⊥-elim ( ¬p<x<op ⟪ c , subst (λ k → b o< k ) (sym (Oprev.oprev=x op)) b<x ⟫ ) 469 ... | tri> ¬a ¬b c = ⊥-elim ( ¬p<x<op ⟪ c , subst (λ k → b o< k ) (sym (Oprev.oprev=x op)) b<x ⟫ )
469 sup=u : {b : Ordinal} {ab : odef A b} → b o< x → 470 sup=u : {b : Ordinal} {ab : odef A b} → b o< x →
470 IsSup A (UnionCF A f mf ay (ZChain.supf zc) (osuc b)) ab → ZChain.supf zc b ≡ b 471 IsSup A (UnionCF A f mf ay (ZChain.supf zc) (osuc b)) ab → ZChain.supf zc b ≡ b
471 sup=u {b} {ab} b<x is-sup with trio< b px 472 sup=u {b} {ab} b<x is-sup with trio< b px
472 ... | tri< b<px ¬b ¬c = ZChain1.sup=u (prev px px<x) b<px is-sup 473 ... | tri< b<px ¬b ¬c = ZChain1.sup=u (prev px px<x) b<px is-sup
473 ... | tri≈ ¬a b=px ¬c = ZChain.sup=u zc ? is-sup 474 ... | tri≈ ¬a b=px ¬c = ZChain.sup=u zc ? ?
474 ... | tri> ¬a ¬b c = ⊥-elim ( ¬p<x<op ⟪ c , subst (λ k → b o< k ) (sym (Oprev.oprev=x op)) b<x ⟫ ) 475 ... | tri> ¬a ¬b c = ⊥-elim ( ¬p<x<op ⟪ c , subst (λ k → b o< k ) (sym (Oprev.oprev=x op)) b<x ⟫ )
475 is-max : {a : Ordinal} {b : Ordinal} → odef (UnionCF A f mf ay (ZChain.supf zc) x) a → 476 is-max : {a : Ordinal} {b : Ordinal} → odef (UnionCF A f mf ay (ZChain.supf zc) x) a →
476 b o< x → (ab : odef A b) → 477 b o< x → (ab : odef A b) →
477 HasPrev A (UnionCF A f mf ay (ZChain.supf zc) x) ab f ∨ IsSup A (UnionCF A f mf ay (ZChain.supf zc) x) ab → 478 HasPrev A (UnionCF A f mf ay (ZChain.supf zc) x) ab f ∨ IsSup A (UnionCF A f mf ay (ZChain.supf zc) x) ab →
478 * a < * b → odef (UnionCF A f mf ay (ZChain.supf zc) x) b 479 * a < * b → odef (UnionCF A f mf ay (ZChain.supf zc) x) b
656 zc7 : y << (ZChain.supf zc) u 657 zc7 : y << (ZChain.supf zc) u
657 zc7 = ChainP.fcy<sup is-sup (init ay) 658 zc7 = ChainP.fcy<sup is-sup (init ay)
658 pcy : odef pchain y 659 pcy : odef pchain y
659 pcy = ⟪ ay , ch-init (init ay) ⟫ 660 pcy = ⟪ ay , ch-init (init ay) ⟫
660 661
661 supf0 = ZChain.supf (prev px (subst (λ k → px o< k) (Oprev.oprev=x op) <-osuc )) 662 supf0 : Ordinal → Ordinal
663 supf0 z with trio< z x
664 ... | tri< a ¬b ¬c = ZChain.supf zc z
665 ... | tri≈ ¬a b ¬c = ZChain.supf zc px
666 ... | tri> ¬a ¬b c = ZChain.supf zc px
667
668 spuf0eq : {z : Ordinal} → z o< x → supf0 z ≡ ZChain.supf zc z
669 spuf0eq {z} z<x with trio< z x
670 ... | tri< a ¬b ¬c = refl
671 ... | tri≈ ¬a b ¬c = ⊥-elim ( ¬a z<x )
672 ... | tri> ¬a ¬b c = ⊥-elim ( ¬a z<x )
673
674 zc9 : UnionCF A f mf ay (ZChain.supf zc) px ⊆' UnionCF A f mf ay supf0 x
675 zc9 ⟪ az , ch-init fc ⟫ = ⟪ az , ch-init fc ⟫
676 zc9 {z} ⟪ az , ch-is-sup u u<px is-sup fc ⟫ with trio< z x
677 ... | tri< a ¬b ¬c = ⟪ az , ch-is-sup u (ordtrans u<px px<x) ? ? ⟫
678 ... | tri≈ ¬a b ¬c = ?
679 ... | tri> ¬a ¬b c = ?
680
681 -- ⟪ az , ch-init fc ⟫ = ⟪ az , ch-init fc ⟫
682 --- zc9 {z} ⟪ az , ch-is-sup u u<px is-sup fc ⟫ with trio< z x
683 -- ... | tri< a ¬b ¬c = ⟪ az , ch-is-sup u (ordtrans u<px px<x) ? ? ⟫
684 -- ... | tri≈ ¬a b ¬c = ?
685 -- ... | tri> ¬a ¬b c = ?
686 -- = ⟪ az , ch-is-sup u (ordtrans u<px px<x) ? ? ⟫
662 687
663 -- if previous chain satisfies maximality, we caan reuse it 688 -- if previous chain satisfies maximality, we caan reuse it
664 -- 689 --
665 no-extension : ZChain A f mf ay x 690 no-extension : ZChain A f mf ay x
666 no-extension = record { supf = supf0 691 no-extension = record { supf = supf0
667 ; initial = pinit ; chain∋init = pcy ; sup=u = sup=u 692 ; initial = ? ; chain∋init = ? ; sup=u = sup=u ; chain∋supf = ?
668 ; chain⊆A = pchain⊆A ; f-next = pnext ; f-total = ptotal ; order = order } where 693 ; chain⊆A = ? ; f-next = ? ; f-total = ? ; order = ? } where
694 cs : {z : Ordinal} → odef (UnionCF A f mf ay supf0 x) (supf0 z)
695 cs {z} with trio< z x
696 ... | tri< a ¬b ¬c = zc9 (ZChain.chain∋supf zc {z} )
697 ... | tri≈ ¬a b ¬c = ?
698 ... | tri> ¬a ¬b c = ?
699 --- = subst (λ k → odef (UnionCF A f mf ay supf0 k) (supf0 z)) ? (ZChain.chain∋supf zc {z} )
669 sup=u : {b : Ordinal} {ab : odef A b} → b o< x 700 sup=u : {b : Ordinal} {ab : odef A b} → b o< x
670 → IsSup A (UnionCF A f mf ay supf0 x) ab 701 → IsSup A (UnionCF A f mf ay supf0 x) ab
671 → supf0 b ≡ b 702 → supf0 b ≡ b
672 sup=u {b} {ab} b<x is-sup with trio< b px 703 sup=u {b} {ab} b<x is-sup with trio< b px
673 ... | tri< a ¬b ¬c = ZChain.sup=u zc {b} {ab} a record { x<sup = pc20 } where 704 ... | tri< a ¬b ¬c = ? where -- ZChain.sup=u zc {b} {ab} a record { x<sup = pc20 } where
674 pc20 : {z : Ordinal} → odef (UnionCF A f mf ay (ZChain.supf zc) (Oprev.oprev op)) z → (z ≡ b) ∨ (z << b) 705 pc20 : {z : Ordinal} → odef (UnionCF A f mf ay (ZChain.supf zc) (Oprev.oprev op)) z → (z ≡ b) ∨ (z << b)
675 pc20 {z} ⟪ az , ch-init fc ⟫ = 706 pc20 {z} ⟪ az , ch-init fc ⟫ =
676 IsSup.x<sup is-sup ⟪ az , ch-init fc ⟫ 707 IsSup.x<sup is-sup ⟪ az , ch-init fc ⟫
677 pc20 {z} ⟪ az , ch-is-sup u u<x is-sup-c fc ⟫ = IsSup.x<sup is-sup 708 pc20 {z} ⟪ az , ch-is-sup u u<x is-sup-c fc ⟫ = IsSup.x<sup is-sup
678 ⟪ az , ch-is-sup u (subst (λ k → u o< k) (Oprev.oprev=x op) (ordtrans u<x <-osuc)) is-sup-c fc ⟫ 709 ⟪ az , ch-is-sup u (subst (λ k → u o< k) (Oprev.oprev=x op) (ordtrans u<x <-osuc)) ? ? ⟫
679 ... | tri≈ ¬a refl ¬c = ? 710 ... | tri≈ ¬a refl ¬c = ?
680 ... | tri> ¬a ¬b c = ⊥-elim ( ¬p<x<op ⟪ c , subst (λ k → b o< k ) (sym (Oprev.oprev=x op)) b<x ⟫ ) 711 ... | tri> ¬a ¬b c = ⊥-elim ( ¬p<x<op ⟪ c , subst (λ k → b o< k ) (sym (Oprev.oprev=x op)) b<x ⟫ )
681 order : {b sup1 z1 : Ordinal} → b o< x → sup1 o< b → FClosure A f (supf0 sup1) z1 → z1 << supf0 b 712 order : {b sup1 z1 : Ordinal} → b o< x → sup1 o< b → FClosure A f (supf0 sup1) z1 → z1 << supf0 b
682 order {b} {s} {z1} b<x s<b fc with trio< b px 713 order {b} {s} {z1} b<x s<b fc with trio< b px
683 ... | tri< a ¬b ¬c = ZChain.order zc a s<b fc 714 ... | tri< a ¬b ¬c = ? -- ZChain.order zc a s<b ?
684 ... | tri≈ ¬a refl ¬c = ? 715 ... | tri≈ ¬a refl ¬c = ?
685 ... | tri> ¬a ¬b c = ⊥-elim ( ¬p<x<op ⟪ c , subst (λ k → b o< k ) (sym (Oprev.oprev=x op)) b<x ⟫ ) 716 ... | tri> ¬a ¬b c = ⊥-elim ( ¬p<x<op ⟪ c , subst (λ k → b o< k ) (sym (Oprev.oprev=x op)) b<x ⟫ )
686 717
687 zc4 : ZChain A f mf ay x 718 zc4 : ZChain A f mf ay x
688 zc4 with ODC.∋-p O A (* px) 719 zc4 with ODC.∋-p O A (* px)
690 ... | yes apx with ODC.p∨¬p O ( HasPrev A (ZChain.chain zc ) apx f ) 721 ... | yes apx with ODC.p∨¬p O ( HasPrev A (ZChain.chain zc ) apx f )
691 -- we have to check adding x preserve is-max ZChain A y f mf x 722 -- we have to check adding x preserve is-max ZChain A y f mf x
692 ... | case1 pr = no-extension -- we have previous A ∋ z < x , f z ≡ x, so chain ∋ f z ≡ x because of f-next 723 ... | case1 pr = no-extension -- we have previous A ∋ z < x , f z ≡ x, so chain ∋ f z ≡ x because of f-next
693 ... | case2 ¬fy<x with ODC.p∨¬p O (IsSup A (ZChain.chain zc ) apx ) 724 ... | case2 ¬fy<x with ODC.p∨¬p O (IsSup A (ZChain.chain zc ) apx )
694 ... | case1 is-sup = -- x is a sup of zc 725 ... | case1 is-sup = -- x is a sup of zc
695 record { supf = psupf1 ; chain⊆A = ? ; f-next = ? ; f-total = ? 726 record { supf = psupf1 ; chain⊆A = ? ; f-next = ? ; f-total = ? ; chain∋supf = ?
696 ; initial = ? ; chain∋init = ? ; sup=u = ? ; order = ? } where 727 ; initial = ? ; chain∋init = ? ; sup=u = ? ; order = ? } where
697 psupf1 : Ordinal → Ordinal 728 psupf1 : Ordinal → Ordinal
698 psupf1 z with trio< z x 729 psupf1 z with trio< z x
699 ... | tri< a ¬b ¬c = ZChain.supf zc z 730 ... | tri< a ¬b ¬c = ZChain.supf zc z
700 ... | tri≈ ¬a b ¬c = x 731 ... | tri≈ ¬a b ¬c = x
701 ... | tri> ¬a ¬b c = x 732 ... | tri> ¬a ¬b c = x
733 cA : UnionCF A f mf ay psupf1 x ⊆' A
734 cA {z} uz with trio< z x
735 ... | tri< a ¬b ¬c = ZChain.chain⊆A zc ⟪ proj1 uz , ? ⟫
736 ... | tri≈ ¬a b ¬c = ?
737 ... | tri> ¬a ¬b c = ?
738
702 ... | case2 ¬x=sup = no-extension -- px is not f y' nor sup of former ZChain from y -- no extention 739 ... | case2 ¬x=sup = no-extension -- px is not f y' nor sup of former ZChain from y -- no extention
703 ... | no lim = zc5 where 740 ... | no lim = zc5 where
704 741
705 pzc : (z : Ordinal) → z o< x → ZChain A f mf ay z 742 pzc : (z : Ordinal) → z o< x → ZChain A f mf ay z
706 pzc z z<x = prev z z<x 743 pzc z z<x = prev z z<x
739 zc7 = ChainP.fcy<sup is-sup (init ay) 776 zc7 = ChainP.fcy<sup is-sup (init ay)
740 pcy : odef pchain y 777 pcy : odef pchain y
741 pcy = ⟪ ay , ch-init (init ay) ⟫ 778 pcy = ⟪ ay , ch-init (init ay) ⟫
742 779
743 no-extension : ZChain A f mf ay x 780 no-extension : ZChain A f mf ay x
744 no-extension = record { initial = pinit ; chain∋init = pcy ; supf = psupf0 781 no-extension = record { initial = pinit ; chain∋init = pcy ; supf = psupf0 ; chain∋supf = ?
745 ; chain⊆A = pchain⊆A ; f-next = pnext ; f-total = ptotal ; sup=u = ? ; order = ? } 782 ; chain⊆A = pchain⊆A ; f-next = pnext ; f-total = ptotal ; sup=u = ? ; order = ? }
746 783
747 usup : SUP A pchain 784 usup : SUP A pchain
748 usup = supP pchain (λ lt → proj1 lt) ptotal 785 usup = supP pchain (λ lt → proj1 lt) ptotal
749 spu = & (SUP.sup usup) 786 spu = & (SUP.sup usup)
758 ... | no noax = no-extension -- ¬ A ∋ p, just skip 795 ... | no noax = no-extension -- ¬ A ∋ p, just skip
759 ... | yes ax with ODC.p∨¬p O ( HasPrev A pchain ax f ) 796 ... | yes ax with ODC.p∨¬p O ( HasPrev A pchain ax f )
760 -- we have to check adding x preserve is-max ZChain A y f mf x 797 -- we have to check adding x preserve is-max ZChain A y f mf x
761 ... | case1 pr = no-extension 798 ... | case1 pr = no-extension
762 ... | case2 ¬fy<x with ODC.p∨¬p O (IsSup A pchain ax ) 799 ... | case2 ¬fy<x with ODC.p∨¬p O (IsSup A pchain ax )
763 ... | case1 is-sup = record { initial = {!!} ; chain∋init = {!!} ; supf = psupf1 ; sup=u = ? ; order = ? 800 ... | case1 is-sup = record { initial = {!!} ; chain∋init = {!!} ; supf = psupf1 ; sup=u = ? ; order = ? ; chain∋supf = ?
764 ; chain⊆A = {!!} ; f-next = {!!} ; f-total = ? } where -- x is a sup of (zc ?) 801 ; chain⊆A = {!!} ; f-next = {!!} ; f-total = ? } where -- x is a sup of (zc ?)
765 psupf1 : Ordinal → Ordinal 802 psupf1 : Ordinal → Ordinal
766 psupf1 z with trio< z x 803 psupf1 z with trio< z x
767 ... | tri< a ¬b ¬c = ZChain.supf (pzc z a) z 804 ... | tri< a ¬b ¬c = ZChain.supf (pzc z a) z
768 ... | tri≈ ¬a b ¬c = x 805 ... | tri≈ ¬a b ¬c = x