| 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(refs .first, ty, 2, st))) |
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)))
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ # [] = 0], [CSIMPELIM : refs ≠ [] ⊦ r = refs .first ∧ refs0 = refs .rest ↔ refs = r + refs0])], [EXTRATERMS : (refs, r1, refs0)]]