| ∀ st, ty, sks, class, r0, r, vals0. # vals0 < # [] → (true → r = r0 ∨ (is_obj(r0, class, sks, addarray(r, ty, vals0, st)) ↔ is_obj(r0, class, sks, st))) ⊦ is_obj(r0, class, sks, addarray(r, [], 0, st[r -- _type, typeval(mkarraytype(ty))][r -- _length, intval(n→i(# []))])) ↔ is_obj(r0, class, sks, st), r = r0 |
⊦ addarray(r, [], i, st) = st
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ r ≠ r0 → ( is_obj (r, class, sks, st[r0 -- sk, val]) ↔ is_obj(r, class, sks, st))], [CSIMPSEQ : ⊦ # [] = 0])]]