| ∀ m, val. m < # vals0 → intvalues(vals0[m, val]) = (intvalues(vals0)[m, val .intval]) ⊦ m < # (val0 + vals0) → intvalues((val0 + vals0)[m, val]) = (intvalues(val0 + vals0)[m, val .intval]) |
⊦ intvalues(val ' + vals) = val .intval + intvalues(vals)
m ≤ # vals0, ∀ m0, val1. ¬ # vals0 ≤ m0 → intvalues(vals0[m0, val1]) = (intvalues(vals0)[m0, val1 .intval]) ⊦ intvalues((val0 ' + vals0)[m, val]) = (val0 .intval ' + intvalues(vals0))[m, val .intval]
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ m + n = n + m], [CSIMPSEQ : ⊦ (m + n0) + n1 = m + n0 + n1], [CSIMPSEQ : ⊦ ¬ m < n ↔ n ≤ m], [CSIMPSEQ : ⊦ m < n + 1 ↔ ¬ n < m], [CSIMPSEQ : ⊦ # val ' = 0 +1], [CSIMPSEQ : ⊦ # (vals + vals0) = # vals + # vals0], [CSIMPSEQ : ⊦ (vals + vals0) + vals1 = vals + vals0 + vals1], [CSIMPSEQ : ⊦ i + ints = i ' + ints], [CSIMPSEQ : ⊦ val + vals = val ' + vals])]]