Functional predicate
In
Specifically, the symbol F in a
Now consider a model of the formal language, with the types T and U modelled by sets [T] and [U] and each symbol X of type T modelled by an element [X] in [T]. Then F can be modelled by the set
which is simply a function with domain [T] and codomain [U]. It is a requirement of a consistent model that [F(X)] = [F(Y)] whenever [X] = [Y].
Introducing new function symbols
In a treatment of
One also gets certain function symbols automatically. In untyped logic, there is an identity predicate id that satisfies id(X) = X for all X. In typed logic, given any type T, there is an identity predicate idT with domain and codomain type T; it satisfies idT(X) = X for all X of type T. Similarly, if T is a subtype of U, then there is an inclusion predicate of domain type T and codomain type U that satisfies the same equation; there are additional function symbols associated with other ways of constructing new types out of old ones.
Additionally, one can define functional predicates after proving an appropriate theorem. (If you're working in a formal system that doesn't allow you to introduce new symbols after proving theorems, then you will have to use relation symbols to get around this, as in the next section.) Specifically, if you can prove that for every X (or every X of a certain type),
- For all X of type T, for some unique Y of type U, P(X,Y),
then you can introduce a function symbol F of domain type T and codomain type U that satisfies:
- For all X of type T, for all Y of type U, P(X,Y) if and only if Y = F(X).
Doing without functional predicates
Many treatments of predicate logic don't allow functional predicates, only relational
Specifically, if F has domain type T and codomain type U, then it can be replaced with a predicate P of type (T,U). Intuitively, P(X,Y) means F(X) = Y. Then whenever F(X) would appear in a statement, you can replace it with a new symbol Y of type U and include another statement P(X,Y). To be able to make the same deductions, you need an additional proposition:
- uniqueY of type U, P(X,Y).
(Of course, this is the same proposition that had to be proven as a theorem before introducing a new function symbol in the previous section.)
Because the elimination of functional predicates is both convenient for some purposes and possible, many treatments of formal logic do not deal explicitly with function symbols but instead use only relation symbols; another way to think of this is that a functional predicate is a special kind of predicate, specifically one that satisfies the proposition above. This may seem to be a problem if you wish to specify a proposition
Let us take as an example the axiom schema of replacement in Zermelo–Fraenkel set theory. (This example uses
First, we must replace F(C) with some other variable D:
Of course, this statement isn't correct; D must be quantified over just after C:
We still must introduce P to guard this quantification:
This is almost correct, but it applies to too many predicates; what we actually want is:
This version of the axiom schema of replacement is now suitable for use in a formal language that doesn't allow the introduction of new function symbols. Alternatively, one may interpret the original statement as a statement in such a formal language; it was merely an abbreviation for the statement produced at the end.
See also
- Function symbol (logic)
- Logical connective
- Logical constant