| a ∈ butlastn(# x, (a0 ' + x).butlast), ∀ a, n. a ∈ butlastn(n, x) ∧ n ≤ # x → a ∈ x ⊦ a = a0, a ∈ x |
⊦ y ≠ [] → (x + y).butlast = x + y.butlast
a ∈ butlastn(# x, a0 ' + x.butlast), ∀ a, n. a ∈ butlastn(n, x) ∧ n ≤ # x → a ∈ x ⊦ a = a0, x = [], a ∈ x
Used simplifier rules: butlast-one: ⊦ a '.butlast = [];%butlastN-base: ⊦ butlastn(0, x) = x;% ⊦ # [] = 0; (s)% ⊦ x + [] = x; (s)%a: ⊦ (x + y) + z = x + y + z; from specification list% ⊦ ¬ a ∈ []; (s) Used terms: x, a0 '