| r -- sk ∈ addarray(r, ty, vals .butlast, 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 |
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
[[CONCRETESIMPRULES : ([CSIMPELIM : vals ≠ [] ⊦ val = vals .last ∧ vals0 = vals .butlast ↔ vals = vals0 + val '])], [EXTRATERMS : (vals, val, vals1)]]