| is_arrayref(r, n→i(# vals), addarray(r, ty, vals, st)), ∃ n. n < # vals ∧ vals[n] = val, ∀ j. ¬ j < 0 ∧ ¬ n→i(# vals) ≤ j → okval(addarray(r, ty, vals, st)[r -- j '], ty) ⊦ r = jvmref, okval(val, ty) |
n < # vals, is_arrayref(r, n→i(# vals), addarray(r, ty, vals, st)), ∀ j. ¬ j < 0 ∧ ¬ n→i(# vals) ≤ j → okval(addarray(r, ty, vals, st)[r -- j '], ty) ⊦ r = jvmref, vals = [], okval(vals[n], ty)
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ # vals = 0 ↔ vals = []], [CSIMPFORWARD : ⊦ m < n → n ≠ 0])]]