| is_fskey(sk), 0 ≤ i ⊦ (r -- sk ∈ addarray(r, ty, i, st) ↔ r -- sk ∈ addarray(r, ty, mklist(initial_value(ty), i→n(i)), st)) ∧ (addarray(r, ty, i, st)[r -- sk]) = (addarray(r, ty, mklist(initial_value(ty), i→n(i)), st)[r -- sk]), ¬ is_indexkey(sk) ∧ sk ≠ _length ∧ sk ≠ _type, ¬ is_fskey(sk) ∧ (¬ 0 ≤ sk .index ∨ ¬ sk .index < i) |
is_fskey(sk), 0 ≤ i ⊦ (r -- sk ∈ addarray(r, ty, i, st) ↔ r -- sk ∈ addarray(r, ty, mklist(initial_value(ty), i→n(i)), st)) ∧ (addarray(r, ty, i, st)[r -- sk]) = (addarray(r, ty, mklist(initial_value(ty), i→n(i)), st)[r -- sk]), sk ≠ _type ∧ sk ≠ _length
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ ¬ is_indexkey(sk) ↔ is_fskey(sk)], [CSIMPSEQ : ⊦ is_indexkey(sk) → ¬ is_fskey(sk)])]]