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