| a ∈ x ∨ a ∈ y ∨ dups(x + y) ⊦ dups(x + a ' + y), ¬ a ∈ x ∧ ¬ a ∈ y |
∀ a, y. a ∈ x0 ∨ a ∈ y ∨ dups(x0 + y) → dups(x0 + a ' + y) ∨ ¬ a ∈ x0 ∧ ¬ a ∈ y, a ∈ a0 + x0 ∨ a ∈ y ∨ dups((a0 + x0) + y) ⊦ dups((a0 + x0) + a ' + y), ¬ a ∈ a0 + x0 ∧ ¬ a ∈ y
Used simplifier rules: rec: ⊦ dups(a ' + x) ↔ ¬ ¬(a ∈ x ∨ dups(x));%list freely generated by [], +;;%Nil: ⊦ [] + x = x; from specification list%a: ⊦ (x + y) + z = x + y + z; from specification list%in-empty: ⊦ ¬ a ∈ []; from specification list