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