| ∀ st, ty, j, r, vals0. # vals0 < # [] → (true → (r -- j ' ∈ addarray(r, ty, vals0, st) ↔ ¬ j < 0 ∧ ¬ n→i(# vals0) ≤ j ∨ r -- j ' ∈ st)) ⊦ r -- j ' ∈ addarray(r, ty, [], st) ↔ r -- j ' ∈ st ∨ ¬ j < 0 ∧ ¬ 0 ≤ j |
⊦ addarray(r, ty, vals, st) = addarray(r, vals, 0, st[r -- _type, typeval(mkarraytype(ty))][r -- _length, intval(n→i(# vals))])
⊦ addarray(r, [], i, st) = st
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ # [] = 0], [CSIMPSEQ : ⊦ _length ≠ i '], [CSIMPSEQ : sk ≠ sk0 ⊦ r -- sk ∈ st[r -- sk0, val] ↔ r -- sk ∈ st], [CSIMPSEQ : ⊦ _type ≠ i '], [CSIMPSEQ : ⊦ ¬ i < j ↔ j ≤ i])], [EXTRATERMS : (st, [], ty, r)]]