| ⊦ r = jvmref, okreftype(refval(r), mkarraytype(abstract_type), addarray(r, abstract_type, i, st)) ∧ r ≠ jvmref ∧ r -- _length ∈ addarray(r, abstract_type, i, st) ∧ is_integervalue(addarray(r, abstract_type, i, st)[r -- _length]) ∧ 0 ≤ (addarray(r, abstract_type, i, st)[r -- _length]) .intval ∧ is_arrayref(r, (addarray(r, abstract_type, i, st)[r -- _length]) .intval, addarray(r, abstract_type, i, st)) ∧ (∀ j. 0 ≤ j ∧ j < (addarray(r, abstract_type, i, st)[r -- _length]) .intval → oktype(addarray(r, abstract_type, i, st)[r -- j '], abstract_type, addarray(r, abstract_type, i, st))) ↔ i = 0 |
⊦ okreftype(refval(r), mkarraytype(ty), addarray(r, ty, i, st))
⊦ r -- _length ∈ addarray(r, ty, i, st)
⊦ (addarray(r, ty, i, st)[r -- _length]) = intval(i)
⊦ is_arrayref(r, i, addarray(r, ty, i, st))
0 < i, ∀ j. j < 0 ∨ i ≤ j ⊦ r = jvmref, i = 0
[[CONCRETESIMPRULES : ([CSIMPFORWARD : ⊦ i < j ∧ 0 ≤ i → 0 < j], [CSIMPSEQ : ⊦ i ≤ j → (¬ ¬ j < i ↔ false)], [CSIMPSEQ : ⊦ ¬ oktype(val, abstract_type, st)], [CSIMPSEQ : ⊦ ¬ i < j ↔ j ≤ i], [CSIMPSEQ : ⊦ ¬ i ≤ j ↔ j < i], [CSIMPSEQ : ⊦ i ≠ j → (i ≤ j ↔ i < j)], [CSIMPSEQ : ⊦ intval(i) .intval = i], [CSIMPSEQ : ⊦ is_integervalue(intval(i))])]]