| firstn(n, a ' + y) = a0 ' + y0, m0 < n, m0 ≤ # y, n ≤ 1 + # y, ∀ n, x. n ≤ # x ∧ m0 ≤ n ∧ m0 ≤ # x → firstn(m0, firstn(n, x)) = firstn(m0, x) ⊦ a0 ' + firstn(m0, y0) = a ' + firstn(m0, y) |
⊦ n ≠ 0 → firstn(n, a ' + x) = a ' + firstn(n -1, x)
a ' + firstn(n -1, y) = a0 ' + y0, m0 < n, n ≤ 1 + # y, m0 ≤ # y, ∀ n, x. n ≤ # x ∧ m0 ≤ n ∧ m0 ≤ # x → firstn(m0, firstn(n, x)) = firstn(m0, x) ⊦ a0 ' + firstn(m0, y0) = a ' + firstn(m0, y), n = 0
Used simplifier rules: firstN-zero: ⊦ firstn(0, x) = [];% ⊦ x + y = [] ↔ x = [] ∧ y = []; (as)% ⊦ a ' ≠ []; (s)%a: ⊦ (x + y) + z = x + y + z; from specification list Used terms: y, a, n