| st[r -- _type] .type = mkarraytype(ty), (st[r -- i ', refval(r2)][r -- (i ' ' + sks1)]) = refval(r2), 0 < st[r -- _length] .intval, i < st[r -- _length] .intval, 0 ≤ i, disjoint(str, r ' + r2 ', st), validref(str, r2, ty, st), fits(r2, sks1, st[r -- i ', refval(r2)]) ⊦ r = jvmref, r = r2, r2 = jvmref, sks1 = [], junkref(str, r, st), hasSharing(r2, st), hasSharing(r, st) |
⊦ sks ≠ [] → st[r -- (sk ' + sks)] = st[st[r -- sk] .refval -- sks]
sks1 ≠ [], st[r -- _type] .type = mkarraytype(ty), (st[r -- i ', refval(r2)][(st[r -- i ', refval(r2)][r -- i ']) .refval -- sks1]) = refval(r2), 0 < st[r -- _length] .intval, i < st[r -- _length] .intval, 0 ≤ i, disjoint(str, r ' + r2 ', st), validref(str, r2, ty, st), fits(r2, sks1, st[r -- i ', refval(r2)]) ⊦ r = jvmref, r = r2, r2 = jvmref, sks1 = [], junkref(str, r, st), hasSharing(r2, st), hasSharing(r, st)
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (sks1, i ', r, st[r -- i ', refval(r2)])]]