| # refs = i→n(countrefs(ints)), posints(ints), 0 ≤ i ⊦ (addarrays(refs, ty, ints, i, st)[r -- sk]) = st[r -- sk], ints = [], r ∈ refs |
⊦ 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)
¬ (ints ≠ [] ∧ n→i(# refs) = countrefs(ints) ∧ posints(ints)), # refs = i→n(countrefs(ints)), posints(ints), 0 ≤ i ⊦ (addarrays(refs, ty, ints, i, st)[r -- sk]) = st[r -- sk], ints = [], r ∈ refs
ints ≠ [] ∧ n→i(# refs) = countrefs(ints) ∧ posints(ints), # refs = i→n(countrefs(ints)), posints(ints), 0 ≤ i ⊦ (addmultiarrays(refs, ints .first, [], mktype_from_dims(ty, countdims(ints, i)), getdims(ints), st)[r -- sk]) = st[r -- sk], ints = [], r ∈ refs
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (st, i, ints, ty, refs)]]