comparison src/zorn.agda @ 918:4c33f8383d7d

supf px o< px is in csupf
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 15 Oct 2022 20:05:34 +0900
parents 3105feb3c4e1
children 213f12f27003
comparison
equal deleted inserted replaced
911:3105feb3c4e1 918:4c33f8383d7d
794 px = Oprev.oprev op 794 px = Oprev.oprev op
795 zc : ZChain A f mf ay (Oprev.oprev op) 795 zc : ZChain A f mf ay (Oprev.oprev op)
796 zc = prev px (subst (λ k → px o< k) (Oprev.oprev=x op) <-osuc ) 796 zc = prev px (subst (λ k → px o< k) (Oprev.oprev=x op) <-osuc )
797 px<x : px o< x 797 px<x : px o< x
798 px<x = subst (λ k → px o< k) (Oprev.oprev=x op) <-osuc 798 px<x = subst (λ k → px o< k) (Oprev.oprev=x op) <-osuc
799 opx=x : osuc px ≡ x
800 opx=x = Oprev.oprev=x op
801
799 zc-b<x : (b : Ordinal ) → b o< x → b o< osuc px 802 zc-b<x : (b : Ordinal ) → b o< x → b o< osuc px
800 zc-b<x b lt = subst (λ k → b o< k ) (sym (Oprev.oprev=x op)) lt 803 zc-b<x b lt = subst (λ k → b o< k ) (sym (Oprev.oprev=x op)) lt
801 804
802 supf0 = ZChain.supf zc 805 supf0 = ZChain.supf zc
803 pchain : HOD 806 pchain : HOD
1074 csupf1 {z1} sz1<x = csupf2 where 1077 csupf1 {z1} sz1<x = csupf2 where
1075 -- z1 o< px → supf1 z1 ≡ supf0 z1 1078 -- z1 o< px → supf1 z1 ≡ supf0 z1
1076 -- z1 ≡ px , supf0 px o< px .. px o< z1, x o≤ z1 ... supf1 z1 ≡ sp1 1079 -- z1 ≡ px , supf0 px o< px .. px o< z1, x o≤ z1 ... supf1 z1 ≡ sp1
1077 -- z1 ≡ px , supf0 px ≡ px 1080 -- z1 ≡ px , supf0 px ≡ px
1078 psz1≤px : supf1 z1 o≤ px 1081 psz1≤px : supf1 z1 o≤ px
1079 psz1≤px = subst (λ k → supf1 z1 o< k ) (sym (Oprev.oprev=x op)) sz1<x 1082 psz1≤px = subst (λ k → supf1 z1 o< k ) (sym opx=x) sz1<x
1080 cs01 : supf0 px o< px → odef (UnionCF A f mf ay supf0 px) (supf0 px)
1081 cs01 spx<px = ZChain.csupf zc spx<px
1082 csupf2 : odef (UnionCF A f mf ay supf1 x) (supf1 z1) 1083 csupf2 : odef (UnionCF A f mf ay supf1 x) (supf1 z1)
1083 csupf2 with trio< z1 px | inspect supf1 z1 1084 csupf2 with trio< z1 px | inspect supf1 z1
1084 csupf2 | tri< a ¬b ¬c | record { eq = eq1 } with osuc-≡< psz1≤px 1085 csupf2 | tri< a ¬b ¬c | record { eq = eq1 } with osuc-≡< psz1≤px
1085 ... | case2 lt = zc12 (case1 cs03) where 1086 ... | case2 lt = zc12 (case1 cs03) where
1086 cs03 : odef (UnionCF A f mf ay supf0 px) (supf0 z1) 1087 cs03 : odef (UnionCF A f mf ay supf0 px) (supf0 z1)
1093 cs04 = begin 1094 cs04 = begin
1094 supf0 px ≡⟨ sym (sf1=sf0 o≤-refl) ⟩ 1095 supf0 px ≡⟨ sym (sf1=sf0 o≤-refl) ⟩
1095 supf1 px ≡⟨ sym sfz=sfpx ⟩ 1096 supf1 px ≡⟨ sym sfz=sfpx ⟩
1096 supf1 z1 ≡⟨ sf1=sf0 (o<→≤ a) ⟩ 1097 supf1 z1 ≡⟨ sf1=sf0 (o<→≤ a) ⟩
1097 supf0 z1 ∎ where open ≡-Reasoning 1098 supf0 z1 ∎ where open ≡-Reasoning
1098 ... | case2 sfz<sfpx = ? --- supf0 z1 o< supf0 px 1099 ... | case2 sfz<sfpx = ⊥-elim ( ¬p<x<op ⟪ cs05 , cs06 ⟫ ) where
1100 --- supf1 z1 ≡ px , z1 o< px , px ≡ supf0 z1 o< supf0 px o< x
1101 cs05 : px o< supf0 px
1102 cs05 = subst₂ ( λ j k → j o< k ) sfz=px (sf1=sf0 o≤-refl ) sfz<sfpx
1103 cs06 : supf0 px o< osuc px
1104 cs06 = subst (λ k → supf0 px o< k ) (sym opx=x) sfpx<x
1099 csupf2 | tri≈ ¬a b ¬c | record { eq = eq1 } = zc12 (case2 (init (ZChain.asupf zc) (cong supf0 (sym b)))) 1105 csupf2 | tri≈ ¬a b ¬c | record { eq = eq1 } = zc12 (case2 (init (ZChain.asupf zc) (cong supf0 (sym b))))
1100 csupf2 | tri> ¬a ¬b px<z1 | record { eq = eq1 } with trio< sp1 px 1106 csupf2 | tri> ¬a ¬b px<z1 | record { eq = eq1 } = ? -- ⊥-elim ( ¬p<x<op ⟪ px<z1 , subst (λ k → z1 o< k) (sym opx=x) z1<x ⟫ )
1101 ... | tri< sp1<px ¬b ¬c = ? -- sp1 o< px, supf0 sp1 ≡ supf0 px, sp1 o< z1 1107
1102 ... | tri≈ ¬a sp1=px ¬c = ⟪ MinSUP.asm sup1 , ch-is-sup (supf1 z1) (subst (λ k → k o< x) (sym eq1) sz1<x)
1103 record { fcy<sup = ? ; order = ? ; supu=u = supu=u } (init asupf1 (trans supu=u eq1) ) ⟫ where
1104 -- supf1 z1 ≡ sp1, px o< z1, sp1 o< x -- sp1 o< z1
1105 -- supf1 sp1 o≤ supf1 z1 ≡ sp1 o< z1
1106 asm : odef A (supf1 z1)
1107 asm = subst (λ k → odef A k ) (sym (sf1=sp1 px<z1)) ( MinSUP.asm sup1)
1108 cs05 : odef (UnionCF A f mf ay supf1 x) (supf1 sp1)
1109 cs05 = zc12 (case2 (init (ZChain.asupf zc) ( begin
1110 supf0 px ≡⟨ sym (sf1=sf0 o≤-refl ) ⟩
1111 supf1 px ≡⟨ cong supf1 (sym sp1=px) ⟩
1112 supf1 sp1 ∎ ))) where open ≡-Reasoning
1113 supu=u : supf1 (supf1 z1) ≡ supf1 z1
1114 supu=u = ?
1115 ... | tri> ¬a ¬b px<sp1 = ⊥-elim (¬p<x<op ⟪ px<sp1 , subst (λ k → sp1 o< k) (sym (Oprev.oprev=x op)) sz1<x ⟫ )
1116 1108
1117 zc4 : ZChain A f mf ay x --- x o≤ supf px 1109 zc4 : ZChain A f mf ay x --- x o≤ supf px
1118 zc4 with trio< x (supf0 px) 1110 zc4 with trio< x (supf0 px)
1119 ... | tri> ¬a ¬b c = zc41 c 1111 ... | tri> ¬a ¬b c = zc41 c
1120 ... | tri≈ ¬a b ¬c = ? 1112 ... | tri≈ ¬a b ¬c = ?