| ⊦ 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))) |
⊦ ints ≠ [] ∧ n→i(# refs) = countrefs(ints) ∧ posints(ints) → addarrays(refs, ty, ints, i, st) = addmultiarrays(refs, ints .first, [], mktype_from_dims(ty, countdims(ints, i)), getdims(ints), st)
¬ (2 ' + 2 ' ≠ [] ∧ n→i(# (r ' + r0 ' + r1 ')) = countrefs(2 ' + 2 ') ∧ posints(2 ' + 2 ')) ⊦ 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)))
2 ' + 2 ' ≠ [] ∧ n→i(# (r ' + r0 ' + r1 ')) = countrefs(2 ' + 2 ') ∧ posints(2 ' + 2 ') ⊦ addmultiarrays(r ' + r0 ' + r1 ', (2 ' + 2 ') .first, [], mktype_from_dims(ty, countdims(2 ' + 2 ', 0)), getdims(2 ' + 2 '), st) = addarray(r, mkarraytype(ty), refval(r0) ' + refval(r1) ', addarray(r0, ty, 2, addarray(r1, ty, 2, st)))
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (st, 0, 2 ' + 2 ', ty, r ' + r0 ' + r1 ')]]