| 0 < i1, ∀ 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 - 1, addobj(r0, class, fis, st)[r -- _type, typeval(mkarraytype(ty))][r -- _length, intval(i)]) [r -- (i1 - 1) ', initial_value(ty) ] ) = addobj (r0, class, fis, addarray(r, initial_value(ty), i1 - 1, st[r -- _type, typeval(mkarraytype(ty))][r -- _length, intval(i)])[r -- (i1 - 1) ', initial_value(ty)]), r = r0 |
i1 = i2 + 1, 0 < i1, ∀ 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), i2, addobj(r0, class, fis, st)[r -- _type, typeval(mkarraytype(ty))][r -- _length, intval(i)]) [r -- i2 ', initial_value(ty) ] ) = addobj (r0, class, fis, addarray(r, initial_value(ty), i2, st[r -- _type, typeval(mkarraytype(ty))][r -- _length, intval(i)])[r -- i2 ', initial_value(ty)]), r = r0
[[CONCRETESIMPRULES : ([CSIMPELIM : ⊦ i0 = i - j ↔ i = i0 + j])], [EXTRATERMS : (i1, 1, i2)]]