| 3 = countrefs(2 ' + 2 ') ⊦ addmultiarrays(r ', 0, r0 ' + r1 ', ty, 2 ' + 2 ', addarray(r0, ty, 2, addarray(r1, ty, 2, st))) = addarray(r, mkarraytype(ty), refval(r0) ' + refval(r1) ', addarray(r0, ty, 2, addarray(r1, ty, 2, st))) |
⊦ i = 0 ∧ # ints > 1 → addmultiarrays(refs, i, acc, ty, ints, st) = addarray(refs .first, mktype_from_dims(ty, n→i(# ints) - 1), mkjavavalues(acc), st)
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ r ' .first = r], [CSIMPSEQ : ⊦ # (ints + ints0) = # ints + # ints0], [CSIMPSEQ : ⊦ # i ' = 0 +1], [CSIMPSEQ : ⊦ (ints + ints0) + ints1 = ints + ints0 + ints1], [CSIMPSEQ : ⊦ mktype_from_dims(ty, 1) = mkarraytype(ty)], [CSIMPSEQ : ⊦ mkjavavalues(r ' + refs) = refval(r) ' + mkjavavalues(refs)], [CSIMPSEQ : ⊦ mkjavavalues(r ') = refval(r) '], [CSIMPSEQ : ⊦ (refs + refs0) + refs1 = refs + refs0 + refs1])], [EXTRATERMS : (addarray(r0, ty, 2, addarray(r1, ty, 2, st)), 2 ' + 2 ', ty, r0 ' + r1 ', 0, r ')]]