| ∀ x, a. butlastn(n0, x + mklist(a, n0)) = x ⊦ butlastn(n0, x + (a ' + mklist(a, n0)).butlast) = x |
⊦ m ≠ 0 → (x + mklist(a, m)).butlast = x + mklist(a, m - 1)
n0 ≠ 0, ∀ x, a. butlastn(n0, x + mklist(a, n0)) = x ⊦ butlastn(n0, x + a ' + mklist(a, n0 - 1)) = x
Used simplifier rules: mk-zero: ⊦ mklist(a, 0) = [];%b: ⊦ a '.butlast = [];%butlastN-base: ⊦ butlastn(0, x) = x;%app: ⊦ x + [] = x; from specification list%a: ⊦ (x + y) + z = x + y + z; from specification list Used terms: n0, a, a '