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