| 0 ≤ n→i(# vals) + i, 0 ≤ j, 0 ≤ i, i ≤ n→i(# vals0), j ≤ n→i(# vals) + i, ∀ val. val ∈ vals ∨ val ∈ vals0 → is_bytevalue(val) ⊦ r = jvmref, okreftype(refval(r), mkarraytype(byte_type), putArray(vals, r, i, addarray(r, byte_type, vals0, st))[r -- _length, intval(j)]) ∧ (∀ j0. 0 ≤ j0 ∧ j0 < j → r -- j0 ' ∈ putArray(vals, r, i, addarray(r, byte_type, vals0, st))) ∧ (0 ≤ j0 ∧ j0 < j → is_bytevalue(putArray(vals, r, i, addarray(r, byte_type, vals0, st))[r -- j0 '])) |
⊦ r -- j ' ∈ addarray(r, ty, vals, st) ↔ r -- j ' ∈ st ∨ 0 ≤ j ∧ j < n→i(# vals)
0 ≤ n→i(# vals) + i, 0 ≤ j, 0 ≤ i, i ≤ n→i(# vals0), j ≤ n→i(# vals) + i, ∀ val. val ∈ vals ∨ val ∈ vals0 → is_bytevalue(val) ⊦ r = jvmref, okreftype(refval(r), mkarraytype(byte_type), putArray(vals, r, i, addarray(r, byte_type, vals0, st))[r -- _length, intval(j)]) ∧ (0 ≤ j1 ∧ j1 < j → r -- j1 ' ∈ st ∨ ¬ n→i(# vals0) ≤ j1 ∨ ¬ j1 < i ∧ ¬ i + n→i(# vals) ≤ j1) ∧ (0 ≤ j0 ∧ j0 < j → is_bytevalue(putArray(vals, r, i, addarray(r, byte_type, vals0, st))[r -- j0 ']))
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ i ' .index = i], [CSIMPSEQ : ⊦ is_indexkey(i ')], [CSIMPSEQ : ⊦ (r -- sk) .key = sk], [CSIMPSEQ : ⊦ (r -- sk) .ref = r], [CSIMPSEQ : ⊦ ¬ i < j ↔ j ≤ i], [CSIMPSEQ : ⊦ i ≤ j → (¬ ¬ j < i ↔ false)], [CSIMPSEQ : ⊦ ¬ i ≤ j ↔ j < i], [CSIMPSEQ : ⊦ rk ∈ putArray(vals, r, i, st) ↔ rk ∈ st ∨ rk .ref = r ∧ is_indexkey(rk .key) ∧ i ≤ rk .key .index ∧ rk .key .index < i + n→i(# vals)])]]