| 0 ≤ i0, 0 ≤ i0 + j, 0 < j ⊦ (addarray(r, ty, i0 + j + 1, st)[r -- sk]) = (addarray(r, ty, mklist(initial_value(ty), i→n(j)) + val ' + mklist(initial_value(ty), i→n(i0)), st)[r -- sk]), sk = j ', j = 0 |
⊦ is_fskey(sk) ∧ sk ≠ _length ∧ sk ≠ _type → (addarray(r, ty, vals, st)[r0 -- sk]) = st[r0 -- sk]
¬ (is_fskey(sk) ∧ sk ≠ _length ∧ sk ≠ _type), 0 ≤ i0, 0 ≤ i0 + j, 0 < j ⊦ (addarray(r, ty, i0 + j + 1, st)[r -- sk]) = (addarray(r, ty, mklist(initial_value(ty), i→n(j)) + val ' + mklist(initial_value(ty), i→n(i0)), st)[r -- sk]), sk = j ', j = 0
⊦ is_fskey(sk) ∧ sk ≠ _type ∧ sk ≠ _length → (addarray(r, ty, i, st)[r0 -- sk]) = st[r0 -- sk]
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (sk, r, st, mklist(initial_value(ty), i→n(j)) + val ' + mklist(initial_value(ty), i→n(i0)), ty, r)]]