| 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 |
⊦ is_fskey(sk) ↔ (∃ fs. sk = fs ')
∃ fs. sk = fs ', 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 : ()], [EXTRATERMS : (sk)]]