logicprooftheorem-provingtype-theory

Why can't all existential binders be replaced by unique constants during skolemization?


When using skolemization to replace existentially quantified variables in an expression, any existential bound at the top level can be replaced by a new globally unique constant, however if the existential is under a universal quantification it cannot be replaced by a constant. It must be replaced instead by a new globally unique predicate symbol which is applied to all the universally quantified variables in scope.

I don't understand why this must be so, since the uniqueness of the new predicate symbol must surely prevent it from unifying with any other object but itself.


Solution

  • Each step in Skolemization preserves the satisfiability of the formula. If all existentially-bound variables are replaced by constants instead of functions, the modified formula may be unsatisfiable even if the original formula was satisfiable.

    Consider the formula \forall x \exists y. P(x,y), where P is a first-order formula with free variables x and y. If you simply replace y with a new constant c, the resulting formula \forall x. P(x,c) is logically stronger, as y is allowed to depend on x, but c is not.

    In other words, Skolemization relies on the (second-order) logical equivalence \forall x \exists y P(x,y) \iff \exists f \forall x P(x,f(x)), and that \forall x. P(x,f(x)) is satisfiable iff \exists f \forall x.P(x,f(x)) is. Your suggestion breaks down because \exists c \forall x.P(x,c) is not equivalent to \forall x \exists y. P(x,y).

    For a specific counter-example, suppose that P encodes the following:

    Then \forall x \exists y. P(x,y) is satisfiable, since it says "every element of the group has an inverse." But \forall x. P(x,c) is not satisfiable, since it says "the element c is the inverse to every group element."