| 0 ≤ i, vals[i→n(i)] = refval(r0), i→n(i) < # vals, class∃(str, class), newref(r, st), is_array(str, r, addarray(r, mkclasstype(class), vals, st)), 0 ≤ i, junkrefs(str, r0 ' + refs, mkclasstype(class), addarray(r, mkclasstype(class), vals, st)) ⊦ r = jvmref, vals = [], ∃ n. ¬ # vals ≤ n ∧ vals[n] = refval(r0) |
vals[i→n(i)] = refval(r0), junkrefs(str, r0 ' + refs, mkclasstype(class), addarray(r, mkclasstype(class), vals, st)), 0 ≤ i, is_array(str, r, addarray(r, mkclasstype(class), vals, st)), newref(r, st), class∃(str, class), i→n(i) < # vals ⊦ vals = [], r = jvmref, ∃ n. ¬ # vals ≤ n ∧ vals[n] = refval(r0)
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ # vals = 0 ↔ vals = []], [CSIMPFORWARD : ⊦ m < n → n ≠ 0])]]