| is_indexkey(sk), 0 ≤ i0 + j, 0 ≤ i0, 0 ≤ j, r -- sk ∈ addarray(r, ty, i0 + j + 1, st) ⊦ sk = _length, sk = _type, sk = j ', 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), is_indexkey(sk), 0 ≤ i0 + j, 0 ≤ i0, 0 ≤ j, r -- sk ∈ addarray(r, ty, i0 + j + 1, st) ⊦ sk = _length, sk = _type, sk = j ', r -- sk ∈ addarray(r, ty, ((j = 0 ⊃ []; mklist(initial_value(ty), i→n(j)))) + val ' + mklist(initial_value(ty), i→n(i0)), st)
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ is_indexkey(sk) → ¬ is_fskey(sk)])], [EXTRATERMS : (st, ((j = 0 ⊃ []; mklist(initial_value(ty), i→n(j)))) + val ' + mklist(initial_value(ty), i→n(i0)), ty, sk, r)]]