| ¬ hasSharing(r, st) ∧ is_arraytype(st[r -- _type] .type) ∧ r ≠ jvmref ⊦ ∀ i, j. i ≠ j ∧ 0 ≤ i ∧ i < st[r -- _length] .intval ∧ 0 ≤ j ∧ j < st[r -- _length] .intval ∧ is_referencevalue(st[r -- i ']) ∧ st[r -- i '] .refval ≠ jvmref → st[r -- i '] ≠ st[r -- j '] |
st[r -- i '] = st[r -- j '], i < st[r -- _length] .intval, j < st[r -- _length] .intval, is_referencevalue(st[r -- j ']), is_arraytype(st[r -- _type] .type), 0 ≤ i, 0 ≤ j, 0 < st[r -- _length] .intval ⊦ st[r -- j '] .refval = jvmref, i = j, r = jvmref, hasSharing(r, st)
[[CONCRETESIMPRULES : ([CSIMPFORWARD : ⊦ i ≤ j ∧ 0 ≤ i → 0 ≤ j], [CSIMPFORWARD : ⊦ i < j ∧ 0 ≤ i → 0 < j])]]