| ¬ r -- _length ≠ r1 -- fs ', st[r -- i '] = refval(r0), 0 ≤ i, 0 < st[r -- _length] .intval, i < st[r -- _length] .intval, is_arraytype(st[r -- _type] .type), fits(r0, sks0, st), is_shortvalue(st[r1 -- fs ']), is_array(str, r, st), junkref(str, r0, st) ∨ fits(r0, sks0, st[r1 -- fs ', shortval(sho)]), r ≠ r1 ∨ _type ≠ fs ' ⊦ r = jvmref, junkref(str, r, st), fits(r0, sks0, st[r1 -- fs ', shortval(sho)]) ∧ ¬ (st[r1 -- fs ', shortval(sho)][r -- _length]) .intval ≤ i |
_length = fs ', st[r1 -- i '] = refval(r0), is_array(str, r1, st), is_shortvalue(st[r1 -- _length]), fits(r0, sks0, st), is_arraytype(st[r1 -- _type] .type), i < st[r1 -- _length] .intval, 0 ≤ i, 0 < st[r1 -- _length] .intval, junkref(str, r0, st) ∨ fits(r0, sks0, st[r1 -- _length, shortval(sho)]) ⊦ r1 = jvmref, junkref(str, r1, st), fits(r0, sks0, st[r1 -- _length, shortval(sho)]) ∧ ¬ shortval(sho) .intval ≤ i
[[CONCRETESIMPRULES : ([CSIMPFORWARD : ⊦ i ≤ j ∧ j < j0 → i < j0], [CSIMPSEQ : ⊦ (st[rk, val][rk]) = val], [CSIMPSEQ : ⊦ _type ≠ _length], [CSIMPSEQ : ⊦ r -- sk = r0 -- sk0 ↔ r = r0 ∧ sk = sk0])]]