An interpretation of a formula *F* in first-order logic is a nonempty
domain D and an assignment of values to each constant, function, and
predicate as follows:

- To each constant, assign an element of
*D*. - To each
*n*-place function, assign a mapping:

*D*.^{n}&rarr D - To each
*n*-place predicate, assign a mapping:

*D*.^{n}&rarr {true, false}

A formula *&forall x G* evaluates to true iff *G* is true for every *x* in *D*.
A formula *&exist x G* evaluates to true iff *G* is true for some *x* in *D*.
However, since most domains *D* are potentially infinite, evaluation by
checking all values in *D* is generally not possible.