comparison src/zorn.agda @ 1026:8b3d7c461a84

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 26 Nov 2022 07:51:09 +0900
parents e4919cc0cfe8
children 91988ae176ab
comparison
equal deleted inserted replaced
1025:e4919cc0cfe8 1026:8b3d7c461a84
1068 z50 : odef (UnionCF A f mf ay supf1 b) w 1068 z50 : odef (UnionCF A f mf ay supf1 b) w
1069 z50 with osuc-≡< px≤sa 1069 z50 with osuc-≡< px≤sa
1070 ... | case1 px=sa = ⟪ A∋fc {A} _ f mf fc , ch-is-sup (supf0 px) z51 cp (subst (λ k → FClosure A f k w) z52 fc) ⟫ where 1070 ... | case1 px=sa = ⟪ A∋fc {A} _ f mf fc , ch-is-sup (supf0 px) z51 cp (subst (λ k → FClosure A f k w) z52 fc) ⟫ where
1071 sa≤px : supf0 a o≤ px 1071 sa≤px : supf0 a o≤ px
1072 sa≤px = subst₂ (λ j k → j o< k) px=sa (sym (Oprev.oprev=x op)) px<x 1072 sa≤px = subst₂ (λ j k → j o< k) px=sa (sym (Oprev.oprev=x op)) px<x
1073 spx=sa : supf0 px ≡ supf0 a
1074 spx=sa = begin
1075 supf0 px ≡⟨ cong supf0 px=sa ⟩
1076 supf0 (supf0 a) ≡⟨ ZChain.supf-idem zc mf< a≤px sa≤px ⟩
1077 supf0 a ∎ where open ≡-Reasoning
1073 z51 : supf0 px o< b 1078 z51 : supf0 px o< b
1074 z51 = subst (λ k → k o< b ) (sym ( begin supf0 px ≡⟨ cong supf0 px=sa ⟩ 1079 z51 = subst (λ k → k o< b ) (sym ( begin supf0 px ≡⟨ spx=sa ⟩
1075 supf0 (supf0 a ) ≡⟨ ZChain.supf-idem zc mf< a≤px sa≤px ⟩
1076 supf0 a ≡⟨ sym (sf1=sf0 a≤px) ⟩ 1080 supf0 a ≡⟨ sym (sf1=sf0 a≤px) ⟩
1077 supf1 a ∎ )) sa<b where open ≡-Reasoning 1081 supf1 a ∎ )) sa<b where open ≡-Reasoning
1078 z52 : supf1 a ≡ supf1 (supf0 px) 1082 z52 : supf1 a ≡ supf1 (supf0 px)
1079 z52 = begin supf1 a ≡⟨ sf1=sf0 a≤px ⟩ 1083 z52 = begin supf1 a ≡⟨ sf1=sf0 a≤px ⟩
1080 supf0 a ≡⟨ sym (ZChain.supf-idem zc mf< a≤px sa≤px ) ⟩ 1084 supf0 a ≡⟨ sym (ZChain.supf-idem zc mf< a≤px sa≤px ) ⟩
1081 supf0 (supf0 a) ≡⟨ sym (sf1=sf0 sa≤px) ⟩ 1085 supf0 (supf0 a) ≡⟨ sym (sf1=sf0 sa≤px) ⟩
1082 supf1 (supf0 a) ≡⟨ cong supf1 (sym (ZChain.supf-idem zc mf< a≤px sa≤px )) ⟩ 1086 supf1 (supf0 a) ≡⟨ cong supf1 (sym spx=sa) ⟩
1083 supf1 (supf0 (supf0 a)) ≡⟨ cong (λ k → supf1 (supf0 k)) (sym px=sa) ⟩
1084 supf1 (supf0 px) ∎ where open ≡-Reasoning 1087 supf1 (supf0 px) ∎ where open ≡-Reasoning
1085 m : MinSUP A (UnionCF A f mf ay supf0 px) 1088 m : MinSUP A (UnionCF A f mf ay supf0 px)
1086 m = ZChain.minsup zc o≤-refl 1089 m = ZChain.minsup zc o≤-refl
1087 m=spx : MinSUP.sup m ≡ supf1 (supf0 px) 1090 m=spx : MinSUP.sup m ≡ supf1 (supf0 px)
1088 m=spx = begin 1091 m=spx = begin
1089 MinSUP.sup m ≡⟨ sym ( ZChain.supf-is-minsup zc o≤-refl) ⟩ 1092 MinSUP.sup m ≡⟨ sym ( ZChain.supf-is-minsup zc o≤-refl) ⟩
1090 supf0 px ≡⟨ cong supf0 px=sa ⟩ 1093 supf0 px ≡⟨ cong supf0 px=sa ⟩
1091 supf0 (supf0 a) ≡⟨ ZChain.supf-idem zc mf< a≤px sa≤px ⟩ 1094 supf0 (supf0 a) ≡⟨ sym (sf1=sf0 sa≤px) ⟩
1092 supf0 a ≡⟨ sym (sf1=sf0 a≤px) ⟩ 1095 supf1 (supf0 a) ≡⟨ cong supf1 (sym spx=sa) ⟩
1093 supf1 a ≡⟨ z52 ⟩
1094 supf1 (supf0 px) ∎ where open ≡-Reasoning 1096 supf1 (supf0 px) ∎ where open ≡-Reasoning
1095 z53 : supf1 (supf0 px) ≡ supf0 px 1097 z53 : supf1 (supf0 px) ≡ supf0 px
1096 z53 = begin 1098 z53 = begin
1097 supf1 (supf0 px) ≡⟨ sym z52 ⟩ 1099 supf1 (supf0 px) ≡⟨ cong supf1 spx=sa ⟩
1098 supf1 a ≡⟨ sf1=sf0 a≤px ⟩ 1100 supf1 (supf0 a) ≡⟨ sf1=sf0 sa≤px ⟩
1099 supf0 a ≡⟨ sym (ZChain.supf-idem zc mf< a≤px sa≤px ) ⟩
1100 supf0 (supf0 a) ≡⟨ sym ( cong supf0 px=sa ) ⟩ 1101 supf0 (supf0 a) ≡⟨ sym ( cong supf0 px=sa ) ⟩
1101 supf0 px ∎ where open ≡-Reasoning 1102 supf0 px ∎ where open ≡-Reasoning
1102 cp : ChainP A f mf ay supf1 (supf0 px) 1103 cp : ChainP A f mf ay supf1 (supf0 px)
1103 cp = record { fcy<sup = λ {z} fc → subst (λ k → (z ≡ k) ∨ ( z << k ) ) m=spx (MinSUP.x≤sup m ⟪ A∋fc _ f mf fc , ch-init fc ⟫ ) 1104 cp = record { fcy<sup = λ {z} fc → subst (λ k → (z ≡ k) ∨ ( z << k ) ) m=spx (MinSUP.x≤sup m ⟪ A∋fc _ f mf fc , ch-init fc ⟫ )
1104 ; order = order 1105 ; order = order
1105 ; supu=u = z53 } where 1106 ; supu=u = z53 } where
1106 uz : {s z1 : Ordinal } → supf1 s o< supf1 (supf0 px) → FClosure A f (supf1 s) z1 → odef (UnionCF A f mf ay supf0 px) z1 1107 uz : {s z1 : Ordinal } → supf1 s o< supf1 (supf0 px) → FClosure A f (supf1 s) z1 → odef (UnionCF A f mf ay supf0 px) z1
1107 uz {s} {z1} ss<sp fc = ZChain.cfcs zc mf< s<px o≤-refl ss<px (subst (λ k → FClosure A f k z1) 1108 uz {s} {z1} ss<sp fc = ZChain.cfcs zc mf< s<px o≤-refl ss<px (subst (λ k → FClosure A f k z1)
1108 (sf1=sf0 (o<→≤ s<px)) fc ) where 1109 (sf1=sf0 (o<→≤ s<px)) fc ) where
1110 s<spx : s o< supf0 px
1111 s<spx = supf-inject0 supf1-mono ss<sp
1109 s<px : s o< px 1112 s<px : s o< px
1110 s<px = ZChain.supf-inject zc (osucprev ( begin 1113 s<px = osucprev ( begin
1111 osuc (supf0 s) ≡⟨ sym (cong osuc (sf1=sf0 ?) ) ⟩ 1114 osuc s ≤⟨ osucc s<spx ⟩
1112 osuc (supf1 s) ≤⟨ osucc ss<sp ⟩ 1115 supf0 px ≡⟨ spx=sa ⟩
1113 supf1 (supf0 px) ≡⟨ z53 ⟩ 1116 supf0 a ≡⟨ sym px=sa ⟩
1114 supf0 px ∎ )) where open o≤-Reasoning O 1117 px ∎ ) where open o≤-Reasoning O
1115 ss<px : supf0 s o< px 1118 ss<px : supf0 s o< px
1116 ss<px = osucprev ( begin 1119 ss<px = osucprev ( begin
1117 osuc (supf0 s) ≡⟨ sym (cong osuc (sf1=sf0 ?) ) ⟩ 1120 osuc (supf0 s) ≡⟨ cong osuc (sym (sf1=sf0 (o<→≤ s<px))) ⟩
1118 osuc (supf1 s) ≤⟨ osucc ss<sp ⟩ 1121 osuc (supf1 s) ≤⟨ osucc ss<sp ⟩
1119 supf1 (supf0 px) ≡⟨ sym z52 ⟩ 1122 supf1 (supf0 px) ≡⟨ sym z52 ⟩
1120 supf1 a ≡⟨ sf1=sf0 a≤px ⟩ 1123 supf1 a ≡⟨ sf1=sf0 a≤px ⟩
1121 supf0 a ≡⟨ sym px=sa ⟩ 1124 supf0 a ≡⟨ sym px=sa ⟩
1122 px ∎ ) where open o≤-Reasoning O 1125 px ∎ ) where open o≤-Reasoning O