| is_arrayref(r, n→i(# vals), addarray(r, ty, vals, st)), val ∈ vals, ∀ j. ¬ j < 0 ∧ ¬ n→i(# vals) ≤ j → okval(addarray(r, ty, vals, st)[r -- j '], ty) ⊦ r = jvmref, okval(val, ty) |
⊦ val ∈ vals ↔ (∃ n. n < # vals ∧ vals[n] = val)
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)
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (vals, val)]]