| n0 < # x, ∀ x. dups(firstn(n0, x)) ∧ n0 ≤ # x → dups(x), x.head ∈ firstn(n0, x.tail) ∨ dups(firstn(n0, x.tail)) ⊦ x = [], dups(x) |
x = a + y, n0 < # x, ∀ x. dups(firstn(n0, x)) ∧ n0 ≤ # x → dups(x), a ∈ firstn(n0, y) ∨ dups(firstn(n0, y)) ⊦ x = [], dups(x)
Used simplifier rules: x ≠ [] ⊦ a = x.head ∧ y = x.tail ↔ x = a + y; (elim) Used terms: x, a, y