| ¬ i1 > 0, ∀ i, st, fis, class, ty, r0, r, i0. i→n(i0) < i→n(i1) → ( true → r = r0 ∨ addarray(r, initial_value(ty), i0, addobj(r0, class, fis, st)[r -- _type, typeval(mkarraytype(ty))][r -- _length, intval(i)]) = addobj(r0, class, fis, addarray(r, initial_value(ty), i0, st[r -- _type, typeval(mkarraytype(ty))][r -- _length, intval(i)]))) ⊦ addarray(r, initial_value(ty), i1, addobj(r0, class, fis, st)[r -- _type, typeval(mkarraytype(ty))][r -- _length, intval(i)]) = addobj(r0, class, fis, addarray(r, initial_value(ty), i1, st[r -- _type, typeval(mkarraytype(ty))][r -- _length, intval(i)])), r = r0 |
⊦ i ≤ 0 → addarray(r, val, i, st) = st
i1 ≤ 0, ∀ i, st, fis, class, ty, r0, r, i0. i→n(i0) < i→n(i1) → ( true → r = r0 ∨ addarray(r, initial_value(ty), i0, addobj(r0, class, fis, st)[r -- _type, typeval(mkarraytype(ty))][r -- _length, intval(i)]) = addobj(r0, class, fis, addarray(r, initial_value(ty), i0, st[r -- _type, typeval(mkarraytype(ty))][r -- _length, intval(i)]))) ⊦ r = r0, (addobj(r0, class, fis, st)[r -- _type, typeval(mkarraytype(ty))][r -- _length, intval(i)]) = addobj(r0, class, fis, st[r -- _type, typeval(mkarraytype(ty))][r -- _length, intval(i)])
[[CONCRETESIMPRULES : ([CSIMPFORWARD : ⊦ j ≤ i ∧ i ≤ 0 → j ≤ 0], [CSIMPSEQ : ⊦ ¬ i < j ↔ j ≤ i], [CSIMPSEQ : ⊦ i > j ↔ j < i])]]