| r0 -- i ' ∈ addarray(r0, ty, n→i(# vals) + 1, st) ∨ ¬ i ≤ 0 ∧ ¬ n→i(# vals) < i ↔ r0 -- i ' ∈ addarray(r0, ty, refval(jvmref) ' + vals, st), is_reftype(ty) ⊦ (putArray(vals, r0, 1, addarray(r0, ty, n→i(# vals) + 1, st))[r0 -- i ']) = (addarray(r0, ty, refval(jvmref) ' + vals, st)[r0 -- i ']) |
⊦ i ≤ j ∧ j < i + n→i(# vals) → (putArray(vals, r, i, st)[r -- j ']) = vals[i→n(j - i)]
¬ (1 ≤ i ∧ i < 1 + n→i(# vals)), r0 -- i ' ∈ addarray(r0, ty, n→i(# vals) + 1, st) ∨ ¬ i ≤ 0 ∧ ¬ n→i(# vals) < i ↔ r0 -- i ' ∈ addarray(r0, ty, refval(jvmref) ' + vals, st), is_reftype(ty) ⊦ (putArray(vals, r0, 1, addarray(r0, ty, n→i(# vals) + 1, st))[r0 -- i ']) = (addarray(r0, ty, refval(jvmref) ' + vals, st)[r0 -- i '])
1 ≤ i ∧ i < 1 + n→i(# vals), r0 -- i ' ∈ addarray(r0, ty, n→i(# vals) + 1, st) ∨ ¬ i ≤ 0 ∧ ¬ n→i(# vals) < i ↔ r0 -- i ' ∈ addarray(r0, ty, refval(jvmref) ' + vals, st), is_reftype(ty) ⊦ vals[i→n(i - 1)] = (addarray(r0, ty, refval(jvmref) ' + vals, st)[r0 -- i '])
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (i, addarray(r0, ty, n→i(# vals) + 1, st), 1, r0, vals)]]