| is_integervalue(val), okarray(r0, int_type, st), r0 ∈ st ⊦ r0 = jvmref, okreftype(refval(r0), mkarraytype(int_type), st[r0 -- j ', val]) ∧ r0 ≠ jvmref ∧ r0 -- _length ∈ st[r0 -- j ', val] ∧ is_integervalue(st[r0 -- j ', val][r0 -- _length]) ∧ 0 ≤ (st[r0 -- j ', val][r0 -- _length]) .intval ∧ is_arrayref(r0, (st[r0 -- j ', val][r0 -- _length]) .intval, st[r0 -- j ', val]) ∧ (∀ j0. 0 ≤ j0 ∧ j0 < (st[r0 -- j ', val][r0 -- _length]) .intval → oktype(st[r0 -- j ', val][r0 -- j0 '], int_type, st[r0 -- j ', val])) |
⊦ okarray(r, ty, st) → ¬ st[r -- _length] .intval < 0
⊦ oktype(val, int_type, st) ↔ is_integervalue(val)
is_integervalue(val), okarray(r0, int_type, st), r0 ∈ st ⊦ r0 = jvmref, okreftype(refval(r0), mkarraytype(int_type), st[r0 -- j ', val]) ∧ r0 -- _length ∈ st ∧ is_integervalue(st[r0 -- _length]) ∧ is_arrayref(r0, st[r0 -- _length] .intval, st[r0 -- j ', val]) ∧ (0 ≤ j0 ∧ j0 < st[r0 -- _length] .intval → is_integervalue(st[r0 -- j ', val][r0 -- j0 ']))
[[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 '])]]