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