| ¬ vals ≠ [], is_fskey(sk), r -- sk ∈ addarray(r, ty, vals, st), ∀ st, ty, sk, r, vals0. # vals0 < # vals → (r -- sk ∈ addarray(r, ty, vals0, st) ∧ is_fskey(sk) → sk = _length ∨ sk = _type ∨ r -- sk ∈ st) ⊦ sk = _type, sk = _length, r -- sk ∈ st |
⊦ r ∈ addarray(r, ty0, vals, st)
r -- sk ∈ addarray(r, ty, [], st), is_fskey(sk), ∀ st, ty, sk, r, vals0. # vals0 < # [] → (r -- sk ∈ addarray(r, ty, vals0, st) ∧ is_fskey(sk) → sk = _length ∨ sk = _type ∨ r -- sk ∈ st) ⊦ sk = _length, sk = _type, r -- sk ∈ st
[[CONCRETESIMPRULES : ([CSIMPFORWARD : ⊦ r -- sk ∈ st → r ∈ st])]]