| 0 ≤ i0, posints(ints0), i < 0, r ∈ st ⊦ (addmultiarrays(newref_list(i→n(countrefs(i0 ' + ints0)), st), i0, [], mktype_from_dims(ty, countdims(i0 ' + ints0, i)), getdims(i0 ' + ints0), st) [r -- sk ] ) = st[r -- sk], countrefs(i0 ' + ints0) = countrefs(i0 ' + getdims(i0 ' + ints0) .rest) ∧ ¬ 0 ∈ getdims(i0 ' + ints0) .butlast ∧ ¬ getdims(i0 ' + ints0) .first < i0 |
⊦ 0 < j → getdims(j ' + ints) = j ' + getdims(ints)
⊦ countrefs(0 ' + ints) = 1
⊦ j ≤ 0 → countdims(j ' + ints, i) = i + n→i(# ints)
⊦ j ≤ 0 → getdims(j ' + ints) = 0 '
⊦ countrefs(i ') = 1
0 < i0, 0 ≤ i0, posints(ints0), i < 0, r ∈ st ⊦ (addmultiarrays(newref_list(i→n(countrefs(i0 ' + ints0)), st), i0, [], mktype_from_dims(ty, countdims(i0 ' + ints0, i)), i0 ' + getdims(ints0), st) [r -- sk ] ) = st[r -- sk], countrefs(i0 ' + ints0) = countrefs(i0 ' + (i0 ' + getdims(ints0)) .rest) ∧ ¬ 0 ∈ (i0 ' + getdims(ints0)) .butlast ∧ ¬ (i0 ' + getdims(ints0)) .first < i0
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ ¬ i < j ↔ j ≤ i], [CSIMPSEQ : ⊦ i ≤ j → (j ≤ i ↔ i = j)], [CSIMPSEQ : ⊦ (ints + ints0) + ints1 = ints + ints0 + ints1], [CSIMPSEQ : ⊦ newref_list(1, st) = newref(st) '], [CSIMPSEQ : ⊦ i ' .rest = []], [CSIMPSEQ : ⊦ ints + [] = ints], [CSIMPSEQ : ⊦ i ' .butlast = []], [CSIMPSEQ : ⊦ ¬ i ∈ []], [CSIMPSEQ : ⊦ i ' .first = i])], [EXTRATERMS : (ints0, i0)]]