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