| st[r -- _length] = intval(i), okreftype(refval(r), mkarraytype(ty), st), is_arrayref(r, i, st), r -- _length ∈ st, 0 ≤ i, r ∈ st ⊦ r = jvmref, r = r0, (∀ j0. ¬ j0 < 0 ∧ ¬ i ≤ j0 → oktype(st[r -- j0 '], ty, st)) ↔ (∀ j. 0 ≤ j ∧ j < i → oktype(st[r -- j '], ty, st)), is_classtype(ty), is_arraytype(ty) |
∀ j0. ¬ j0 < 0 ∧ ¬ i ≤ j0 → oktype(st[r -- j0 '], ty, st), st[r -- _length] = intval(i), okreftype(refval(r), mkarraytype(ty), st), is_arrayref(r, i, st), r -- _length ∈ st, 0 ≤ i, r ∈ st ⊦ ∀ j. 0 ≤ j ∧ j < i → oktype(st[r -- j '], ty, st), r = jvmref, r = r0, is_classtype(ty), is_arraytype(ty)
∀ j. 0 ≤ j ∧ j < i → oktype(st[r -- j '], ty, st), st[r -- _length] = intval(i), okreftype(refval(r), mkarraytype(ty), st), is_arrayref(r, i, st), r -- _length ∈ st, 0 ≤ i, r ∈ st ⊦ ∀ j0. ¬ j0 < 0 ∧ ¬ i ≤ j0 → oktype(st[r -- j0 '], ty, st), r = jvmref, r = r0, is_classtype(ty), is_arraytype(ty)
[[CONCRETESIMPRULES : ()]]