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