| a ' + prefixn(n, x) = prefixn(n + 1, x1), a ∈ prefixn(n + 1, x1), ∀ n, x1. prefixn(n + 1, x) = prefixn(n + 1, x1) → prefixn(n, x) = prefixn(n, x1) ⊦ prefixn(n, a ' + x) = prefixn(n, x1) |
a ' + prefixn(n, x) = prefixn(n + 1, x1), x1 = a0 + x0, a ∈ prefixn(n + 1, x1), ∀ n, x1. prefixn(n + 1, x) = prefixn(n + 1, x1) → prefixn(n, x) = prefixn(n, x1) ⊦ prefixn(n, a ' + x) = prefixn(n, x1)
Used simplifier rules: list freely generated by [], +;;% ⊦ prefixn(n, []) = []; (s)% ⊦ x + y = [] ↔ x = [] ∧ y = []; (as)% ⊦ a ' ≠ []; (s)%a: ⊦ (x + y) + z = x + y + z; from specification list