| st[r -- _type] = typeval(mkarraytype(ty)), r ∈ st, is_arrayref(r, st[r -- _length] .intval, st), r -- _length ∈ st, r -- _type ∈ st, j < st[r -- _length] .intval, okprimtype(val, ty), 0 < st[r -- _length] .intval, 0 ≤ j ⊦ r = jvmref, exactarray(refval(r), ty, st[r -- _length] .intval, st[r -- j ', val]) |
⊦ exactarray(val, ty, i, st) ↔ exactreftype(val, mkarraytype(ty), st) ∧ val .refval ≠ jvmref ∧ (val .refval -- _length) × intval(i) ∈ st ∧ is_arrayref(val .refval, i, st)
st[r -- _type] = typeval(mkarraytype(ty)), r ∈ st, is_arrayref(r, st[r -- _length] .intval, st), r -- _length ∈ st, r -- _type ∈ st, j < st[r -- _length] .intval, okprimtype(val, ty), 0 < st[r -- _length] .intval, 0 ≤ j ⊦ r = jvmref, exactreftype(refval(r), mkarraytype(ty), st[r -- j ', val]) ∧ refval(r) .refval ≠ jvmref ∧ (refval(r) .refval -- _length) × intval(st[r -- _length] .intval) ∈ st[r -- j ', val] ∧ is_arrayref(refval(r) .refval, st[r -- _length] .intval, st[r -- j ', val])
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (st[r -- j ', val], st[r -- _length] .intval, ty, refval(r))]]