| 0 ≤ i ⊦ addarrays(r ', ty, i ', j, st) = addarray(r, mktype_from_dims(ty, countdims(i ', j)), i, 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)
⊦ countrefs(i ') = 1
i ' ≠ [] ∧ n→i(# r ') = countrefs(i ') ∧ posints(i '), 0 ≤ i ⊦ addmultiarrays(r ', i ' .first, [], mktype_from_dims(ty, countdims(i ', j)), getdims(i '), st) = addarray(r, mktype_from_dims(ty, countdims(i ', j)), i, st)
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ i ' ≠ []], [CSIMPSEQ : ⊦ # r ' = 0 +1], [CSIMPSEQ : ⊦ posints(i ') ↔ 0 ≤ i], [CSIMPSEQ : ⊦ ¬ i ≤ j ↔ j < i], [CSIMPSEQ : ⊦ i ≤ j → (¬ ¬ j < i ↔ false)])], [EXTRATERMS : (st, j, i ', ty, r ')]]