| 0 ≤ j, 0 ≤ i0, 0 ≤ i0 + j, is_indexkey(sk) ⊦ 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), sk = _type, sk = _length |
⊦ is_fskey(sk) ∧ sk ≠ _length ∧ sk ≠ _type → (r -- sk ∈ addarray(r, ty, i, st) ↔ r -- sk ∈ st)
¬ (is_fskey(sk) ∧ sk ≠ _length ∧ sk ≠ _type), 0 ≤ j, 0 ≤ i0, 0 ≤ i0 + j, is_indexkey(sk) ⊦ 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), sk = _type, sk = _length
⊦ is_fskey(sk) ∧ sk ≠ _length ∧ sk ≠ _type → (r -- sk ∈ addarray(r, ty, vals, st) ↔ r -- sk ∈ st)
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (st, i0 + j + 1, ty, sk, r)]]