| okarray(r0, byte_type, st), r0 ∈ st ⊦ r = jvmref, r0 = jvmref, okreftype (refval(r), mkarraytype(byte_type), arraycopy(r0, 0, r, 0, st[r0 -- _length] .intval, addarray(r, byte_type, st[r0 -- _length] .intval, st))) ∧ r ≠ jvmref ∧ r -- _length ∈ arraycopy(r0, 0, r, 0, st[r0 -- _length] .intval, addarray(r, byte_type, st[r0 -- _length] .intval, st)) ∧ is_integervalue(arraycopy(r0, 0, r, 0, st[r0 -- _length] .intval, addarray(r, byte_type, st[r0 -- _length] .intval, st))[r -- _length]) ∧ 0 ≤ (arraycopy(r0, 0, r, 0, st[r0 -- _length] .intval, addarray(r, byte_type, st[r0 -- _length] .intval, st))[r -- _length]) .intval ∧ is_arrayref (r, (arraycopy(r0, 0, r, 0, st[r0 -- _length] .intval, addarray(r, byte_type, st[r0 -- _length] .intval, st))[r -- _length]) .intval, arraycopy(r0, 0, r, 0, st[r0 -- _length] .intval, addarray(r, byte_type, st[r0 -- _length] .intval, st))) ∧ (∀ j. 0 ≤ j ∧ j < (arraycopy(r0, 0, r, 0, st[r0 -- _length] .intval, addarray(r, byte_type, st[r0 -- _length] .intval, st))[r -- _length]) .intval → oktype (arraycopy(r0, 0, r, 0, st[r0 -- _length] .intval, addarray(r, byte_type, st[r0 -- _length] .intval, st))[r -- j '], byte_type, arraycopy(r0, 0, r, 0, st[r0 -- _length] .intval, addarray(r, byte_type, st[r0 -- _length] .intval, st)))) |
⊦ r -- _length ∈ addarray(r, ty, i, st)
⊦ (addarray(r, ty, i, st)[r -- _length]) = intval(i)
okarray(r0, byte_type, st), r0 ∈ st ⊦ r = jvmref, r0 = jvmref, okreftype (refval(r), mkarraytype(byte_type), arraycopy(r0, 0, r, 0, st[r0 -- _length] .intval, addarray(r, byte_type, st[r0 -- _length] .intval, st))) ∧ is_integervalue(st[r0 -- _length]) ∧ is_arrayref(r, st[r0 -- _length] .intval, arraycopy(r0, 0, r, 0, st[r0 -- _length] .intval, addarray(r, byte_type, st[r0 -- _length] .intval, st))) ∧ ( 0 ≤ j ∧ j < st[r0 -- _length] .intval → is_bytevalue(arraycopy(r0, 0, r, 0, st[r0 -- _length] .intval, addarray(r, byte_type, st[r0 -- _length] .intval, st))[r -- j ']))
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ oktype(val, byte_type, st) ↔ is_bytevalue(val)], [CSIMPSEQ : ⊦ okarray(r, ty, st) → ¬ st[r -- _length] .intval < 0], [CSIMPSEQ : ⊦ ¬ i ≤ j ↔ j < i], [CSIMPSEQ : ⊦ okarray(r, ty, st) → intval (st[r -- _length] .intval) = st[r -- _length]], [CSIMPSEQ : ⊦ (arraycopy(r1, i1, r2, i2, j, st) [r -- _length ] ) = st[r -- _length]], [CSIMPSEQ : ⊦ r -- _length ∈ arraycopy (r1, i1, r2, i2, j, st) ↔ r -- _length ∈ st])]]