Herbrand's Expansion Theorem
Expansion of a Clause
Recall that we do not write quantifiers in the clause, but when we say that a clause is true in a model we mean that its universal closure is true.
We obtain an instance of a clause by replacing all variables with some ground terms from .
Define
Note that if is true in , then is also true in ( is a consequence of ).
We expand entire set:
Clauses in the expansion have no variables, they are ground clauses.
Constructing a Propositional Model
We can view the set as a set of propositional formulas whose propositional variables have “long names”.
For an expansion of clause we can construct the corresponding propositional formula .
Example Let's consider the expanded formula , then
Define propositional model by
Let
Lemma: If is a model of , then is a model of .
Instead of searching for a model, we can search for a propositional model.
If we prove there is no propositional model for , then there is no model for .
What if there is a model ? Could it still be the case that is unsatisfiable?
Constructing Herbrand Model
For we define so that evaluates ground formulas same as in (and thus same as in ).
We ensure that atomic formulas evaluate the same:
How does it evaluate non-ground formulas?
Lemma: If is a model for , then is a model for .
Herbrand's Theorem
Theorem: The following statements are equivalent:
- set has a model
- set has a propositional model
- set has a model with domain
Example: Take the first three clauses our example (from Normal Forms for First-Order Logic):
Taking as domain the set of natural numbers, the structure is a model of the conjunction of these three clauses, where is given by:
This model induces an Herbrand model , in which is a set of ground terms and is a relation on ground terms, .
To determine, for example, whether we check the truth value of the formula
in the original interpretation . The truth value of the above formula in reduces to , which is true. Therefore, we define to contain the pair of ground terms . On the other hand, evaluates to false in , so we define so that it does not contain the pair .