| m ≤ # vals0, ∀ m0. ¬ # vals0 ≤ m0 → (intvalues(vals0)[m0]) = vals0[m0] .intval ⊦ (val .intval ' + intvalues(vals0))[m] = (val ' + vals0)[m] .intval |
⊦ ints ≠ [] ∧ n ≠ 0 → ints[n] = (ints .rest)[n - 1]
val .intval ' + intvalues(vals0) ≠ [] ∧ m ≠ 0, m ≤ # vals0, ∀ m0. ¬ # vals0 ≤ m0 → (intvalues(vals0)[m0]) = vals0[m0] .intval ⊦ ((val .intval ' + intvalues(vals0)) .rest)[m - 1] = (val ' + vals0)[m] .intval
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ ¬ ints + ints0 ≠ [] ↔ ints = [] ∧ ints0 = []], [CSIMPSEQ : ⊦ i ' ≠ []], [CSIMPSEQ : ⊦ (ints + ints0) + ints1 = ints + ints0 + ints1], [CSIMPSEQ : ⊦ (i ' + ints)[0] = i], [CSIMPSEQ : ⊦ (val ' + vals)[0] = val], [CSIMPSEQ : ⊦ (vals + vals0) + vals1 = vals + vals0 + vals1])], [EXTRATERMS : (m, val .intval ' + intvalues(vals0))]]