| 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
x ≠ [], a ∈ butlastn(# x, a0 ' + x.butlast), ∀ a, n. a ∈ butlastn(n, x) ∧ n ≤ # x → a ∈ x ⊦ a = a0, a ∈ x
Used simplifier rules: b: ⊦ a '.butlast = [];%butlastN-base: ⊦ butlastn(0, x) = x;%size-01: ⊦ # [] = 0; from specification list-data%app: ⊦ x + [] = x; from specification list%a: ⊦ (x + y) + z = x + y + z; from specification list%in-empty: ⊦ ¬ a ∈ []; from specification list Used terms: x, a0 '