| 0 < n, n ≤ # y + 1, ∀ x0, n. # x0 < #(y + a ') → n ≤ # x0 → butlastn(n, x0) + lastn(n, x0) = x0 ⊦ butlastn(n, y + a ') + lastn(n -1, y) + a ' = y + a ' |
n ≤ # y + 1, ∀ x0, n. # x0 < #(y + a ') → n ≤ # x0 → butlastn(n, x0) + lastn(n, x0) = x0 ⊦ butlastn(n, y + a ') + lastn(n - 1, y) = y, n = 0
Used simplifier rules: zero: ⊦ 0 < m ↔ m ≠ 0; from specification nat-basic1%app-03: ⊦ x + y = z + y ↔ x = z; from specification list%a: ⊦ (x + y) + z = x + y + z; from specification list%pred-03: ⊦ n -1 = n - 1; from specification nat