| ¬ r -- i0 ' ≠ r1 -- i ', st[r -- i0 '] = refval(r0), is_array(str, r, st), okarray(r1, byte_type, st), r1 ∈ st, fits(r0, sks0, st), is_arraytype(st[r -- _type] .type), i0 < st[r -- _length] .intval, 0 < st[r -- _length] .intval, 0 ≤ i0, ∀ r, st, r1, i, by, str. fits(r, sks0, st) ∧ okarray(r1, byte_type, st) ∧ r1 ∈ st → (st[r1 -- i ', byteval(by)][r -- sks0]) = st[r -- sks0] ∨ r1 = jvmref ∨ junkref(str, r, st) ⊦ sks0 = [], (st[r1 -- i ', byteval(by)][(st[r1 -- i ', byteval(by)][r -- i0 ']) .refval -- sks0]) = st[r0 -- sks0], r = jvmref, r1 = jvmref, junkref(str, r, st) |
st[r1 -- i '] = refval(r0), i < st[r1 -- _length] .intval, fits(r0, sks0, st), r1 ∈ st, okarray(r1, byte_type, st), 0 ≤ i, 0 < st[r1 -- _length] .intval, ∀ r, st, r1, i, by, str. fits(r, sks0, st) ∧ okarray(r1, byte_type, st) ∧ r1 ∈ st → (st[r1 -- i ', byteval(by)][r -- sks0]) = st[r -- sks0] ∨ r1 = jvmref ∨ junkref(str, r, st) ⊦ sks0 = [], r1 = jvmref, (st[r1 -- i ', byteval(by)][byteval(by) .refval -- sks0]) = st[r0 -- sks0], junkref(str, r1, st)
[[CONCRETESIMPRULES : ([CSIMPFORWARD : ⊦ i ≤ j ∧ 0 ≤ i → 0 ≤ j], [CSIMPFORWARD : ⊦ i < j ∧ 0 ≤ i → 0 < j], [CSIMPSEQ : ⊦ okarray(r, byte_type, st) → is_array(str, r, st)], [CSIMPSEQ : ⊦ is_arraytype(mkarraytype(ty))], [CSIMPSEQ : ⊦ okarray(r, byte_type, st) → st[r -- _type] .type = mkarraytype(byte_type)], [CSIMPSEQ : ⊦ (st[rk, val][rk]) = val], [CSIMPFORWARD : ⊦ i < i0 ∧ i = i1 → i1 < i0], [CSIMPSEQ : ⊦ i ' = i0 ' ↔ i = i0], [CSIMPSEQ : ⊦ r -- sk = r0 -- sk0 ↔ r = r0 ∧ sk = sk0])]]