comparison src/zorn.agda @ 767:6c87cb98abf2

spi <= u
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 25 Jul 2022 22:27:15 +0900
parents e1c6c32efe01
children 67c7d4b43844
comparison
equal deleted inserted replaced
766:e1c6c32efe01 767:6c87cb98abf2
638 ysup : ( f : Ordinal → Ordinal ) → (mf : ≤-monotonic-f A f ) {y : Ordinal} (ay : odef A y) 638 ysup : ( f : Ordinal → Ordinal ) → (mf : ≤-monotonic-f A f ) {y : Ordinal} (ay : odef A y)
639 → SUP A (uchain f mf ay) 639 → SUP A (uchain f mf ay)
640 ysup f mf {y} ay = supP (uchain f mf ay) (λ lt → A∋fc y f mf lt) (utotal f mf ay) 640 ysup f mf {y} ay = supP (uchain f mf ay) (λ lt → A∋fc y f mf lt) (utotal f mf ay)
641 641
642 inititalChain : ( f : Ordinal → Ordinal ) → (mf : ≤-monotonic-f A f ) {y : Ordinal} (ay : odef A y) → ZChain A f mf ay o∅ 642 inititalChain : ( f : Ordinal → Ordinal ) → (mf : ≤-monotonic-f A f ) {y : Ordinal} (ay : odef A y) → ZChain A f mf ay o∅
643 inititalChain f mf {y} ay = record { supf = isupf ; chain⊆A = λ lt → proj1 lt ; chain∋init = cy ; csupf = csupf ; fcy<sup = ? 643 inititalChain f mf {y} ay = record { supf = isupf ; chain⊆A = λ lt → proj1 lt ; chain∋init = cy
644 ; csupf = λ {z} → csupf {z} ; fcy<sup = λ u<0 → ⊥-elim ( ¬x<0 u<0 )
644 ; initial = isy ; f-next = inext ; f-total = itotal ; sup=u = λ _ b<0 → ⊥-elim (¬x<0 b<0) ; order = λ b<0 → ⊥-elim (¬x<0 b<0) } where 645 ; initial = isy ; f-next = inext ; f-total = itotal ; sup=u = λ _ b<0 → ⊥-elim (¬x<0 b<0) ; order = λ b<0 → ⊥-elim (¬x<0 b<0) } where
645 spi = & (SUP.sup (ysup f mf ay)) 646 spi = & (SUP.sup (ysup f mf ay))
646 isupf : Ordinal → Ordinal 647 isupf : Ordinal → Ordinal
647 isupf z = spi 648 isupf z with trio< z spi
649 ... | tri< a ¬b ¬c = y
650 ... | tri≈ ¬a b ¬c = spi
651 ... | tri> ¬a ¬b c = spi
648 sp = ysup f mf ay 652 sp = ysup f mf ay
653 asi = SUP.A∋maximal sp
649 cy : odef (UnionCF A f mf ay isupf o∅) y 654 cy : odef (UnionCF A f mf ay isupf o∅) y
650 cy = ⟪ ay , ch-init (init ay) ⟫ 655 cy = ⟪ ay , ch-init (init ay) ⟫
651 y<sup : * y ≤ SUP.sup (ysup f mf ay) 656 y<sup : * y ≤ SUP.sup (ysup f mf ay)
652 y<sup = SUP.x<sup (ysup f mf ay) (subst (λ k → FClosure A f y k ) (sym &iso) (init ay)) 657 y<sup = SUP.x<sup (ysup f mf ay) (subst (λ k → FClosure A f y k ) (sym &iso) (init ay))
653 isy : {z : Ordinal } → odef (UnionCF A f mf ay isupf o∅) z → * y ≤ * z 658 isy : {z : Ordinal } → odef (UnionCF A f mf ay isupf o∅) z → * y ≤ * z
654 isy {z} ⟪ az , uz ⟫ with uz 659 isy {z} ⟪ az , uz ⟫ with uz
655 ... | ch-init fc = s≤fc y f mf fc 660 ... | ch-init fc = s≤fc y f mf fc
656 ... | ch-is-sup u is-sup fc = ≤-ftrans (subst (λ k → * y ≤ k) (sym *iso) y<sup) (s≤fc (& (SUP.sup (ysup f mf ay))) f mf fc ) 661 ... | ch-is-sup u is-sup fc = ?
657 inext : {a : Ordinal} → odef (UnionCF A f mf ay isupf o∅) a → odef (UnionCF A f mf ay isupf o∅) (f a) 662 inext : {a : Ordinal} → odef (UnionCF A f mf ay isupf o∅) a → odef (UnionCF A f mf ay isupf o∅) (f a)
658 inext {a} ua with (proj2 ua) 663 inext {a} ua with (proj2 ua)
659 ... | ch-init fc = ⟪ proj2 (mf _ (proj1 ua)) , ch-init (fsuc _ fc ) ⟫ 664 ... | ch-init fc = ⟪ proj2 (mf _ (proj1 ua)) , ch-init (fsuc _ fc ) ⟫
660 ... | ch-is-sup u is-sup fc = ⟪ proj2 (mf _ (proj1 ua)) , ch-is-sup u (ChainP-next A f mf ay isupf is-sup) (fsuc _ fc) ⟫ 665 ... | ch-is-sup u is-sup fc = ⟪ proj2 (mf _ (proj1 ua)) , ch-is-sup u (ChainP-next A f mf ay isupf is-sup) (fsuc _ fc) ⟫
661 itotal : IsTotalOrderSet (UnionCF A f mf ay isupf o∅) 666 itotal : IsTotalOrderSet (UnionCF A f mf ay isupf o∅)
662 itotal {a} {b} ca cb = subst₂ (λ j k → Tri (j < k) (j ≡ k) (k < j)) *iso *iso uz01 where 667 itotal {a} {b} ca cb = subst₂ (λ j k → Tri (j < k) (j ≡ k) (k < j)) *iso *iso uz01 where
663 uz01 : Tri (* (& a) < * (& b)) (* (& a) ≡ * (& b)) (* (& b) < * (& a) ) 668 uz01 : Tri (* (& a) < * (& b)) (* (& a) ≡ * (& b)) (* (& b) < * (& a) )
664 uz01 = chain-total A f mf ay isupf (proj2 ca) (proj2 cb) 669 uz01 = chain-total A f mf ay isupf (proj2 ca) (proj2 cb)
665 670
666 csupf : {z : Ordinal} → odef (UnionCF A f mf ay isupf o∅) (isupf z) 671 csupf : {z : Ordinal} → odef (UnionCF A f mf ay isupf o∅) (isupf z)
667 csupf {z} = ? 672 csupf {z} = uz00 where
673 -- = ? where -- ⟪ asi , ch-is-sup spi uz02 (init asi) ⟫ where
674 uz03 : {z : Ordinal } → FClosure A f y z → (z ≡ spi) ∨ (z << spi)
675 uz03 {z} fc with SUP.x<sup sp (subst (λ k → FClosure A f y k ) (sym &iso) fc )
676 ... | case1 eq = case1 ( begin
677 z ≡⟨ sym &iso ⟩
678 & (* z) ≡⟨ cong (&) eq ⟩
679 spi ∎ ) where open ≡-Reasoning
680 ... | case2 lt = case2 (subst (λ k → * z < k ) (sym *iso) lt )
681 uz04 : {sup1 z1 : Ordinal} → sup1 o< spi → FClosure A f (isupf sup1) z1 → (z1 ≡ isupf spi) ∨ (z1 << isupf spi)
682 uz04 {s} {z} s<spi fcz = ?
683 -- uz02 : ChainP A f mf ay isupf spi spi
684 -- uz02 = record { csupz = init asi ; supfu=u = refl ; fcy<sup = uz03 ; order = ? }
685 uz00 : odef (UnionCF A f mf ay isupf o∅) (isupf z)
686 uz00 with trio< z spi
687 ... | tri< a ¬b ¬c = ?
688 ... | tri≈ ¬a b ¬c = ?
689 ... | tri> ¬a ¬b c = ?
690
668 691
669 -- 692 --
670 -- create all ZChains under o< x 693 -- create all ZChains under o< x
671 -- 694 --
672 695