| ∀ r, ty, st. addarray(r, ty, mklist(initial_value(ty), m), st) = (addarray(r, initial_value(ty), n→i(m), st)[r -- _type, typeval(mkarraytype(ty))][r -- _length, intval(n→i(m))]) ⊦ addarray(r, ty, mklist(initial_value(ty), m +1), st) = (addarray(r, initial_value(ty), n→i(m +1), st)[r -- _type, typeval(mkarraytype(ty))][r -- _length, intval(n→i(m +1))]) |
∀ r, ty, st. addarray(r, ty, mklist(initial_value(ty), m), st) = (addarray(r, initial_value(ty), n→i(m), st)[r -- _type, typeval(mkarraytype(ty))][r -- _length, intval(n→i(m))]) ⊦ addarray(r, ty, mklist(initial_value(ty), m + 1), st) = (addarray(r, initial_value(ty), n→i(m) + 1, st)[r -- _type, typeval(mkarraytype(ty))][r -- _length, intval(n→i(m) + 1)])
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ m + n = n + m], [CSIMPSEQ : ⊦ (m + n0) + n1 = m + n0 + n1], [CSIMPSEQ : ⊦ n→i(m + n) = n→i(m) + n→i(n)], [CSIMPSEQ : ⊦ m +1 = m + 1])]]