| 2 = # refs0 ⊦ addarrays(r ' + refs0, ty, 2 ' + 2 ', 0, st) = addarray(r, mkarraytype(ty), refval(refs0 .first) ' + refval(refs0[1]) ', addarray(refs0[0], ty, 2, addarray(refs0 .rest .first, ty, 2, st))) |
refs0 = r0 + refs ∧ refs0 ≠ [], 2 = # refs0 ⊦ addarrays(r ' + refs0, ty, 2 ' + 2 ', 0, st) = addarray(r, mkarraytype(ty), refval(r0) ' + refval(refs0[1]) ', addarray(refs0[0], ty, 2, addarray(refs .first, ty, 2, st)))
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ # [] = 0], [CSIMPELIM : refs ≠ [] ⊦ r = refs .first ∧ refs0 = refs .rest ↔ refs = r + refs0])], [EXTRATERMS : (refs0, r0, refs)]]