| refs = r1 + refs0 ∧ refs ≠ [], 1 = # refs ⊦ addarrays(r ' + r0 ' + refs, ty, 2 ' + 2 ', 0, st) = addarray(r, mkarraytype(ty), refval(r0) ' + refval(refs[0]) ', addarray(r0, ty, 2, addarray(r1, ty, 2, st))) |
⊦ addarrays(r ' + r0 ' + r1 ', ty, 2 ' + 2 ', 0, st) = addarray(r, mkarraytype(ty), refval(r0) ' + refval(r1) ', addarray(r0, ty, 2, addarray(r1, ty, 2, st)))
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ refs + [] = refs], [CSIMPSEQ : ⊦ r ' + refs ≠ []], [CSIMPSEQ : ⊦ (r ' + refs)[0] = r], [CSIMPSEQ : ⊦ m + n = n + m], [CSIMPSEQ : ⊦ (m + n0) + n1 = m + n0 + n1], [CSIMPSEQ : ⊦ # refs = 0 ↔ refs = []], [CSIMPSEQ : ⊦ 1 = m + 1 ↔ m = 0], [CSIMPSEQ : ⊦ (refs + refs0) + refs1 = refs + refs0 + refs1], [CSIMPSEQ : ⊦ # r ' = 0 +1], [CSIMPSEQ : ⊦ # (refs + refs0) = # refs + # refs0], [CSIMPSEQ : ⊦ r + refs = r ' + refs])]]