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