Mercurial > hg > Members > kono > Proof > ZF-in-agda
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 |