You’ve already seen how to express ideas that involve just one quantifier (for instance, every student is ambitious or some students work hard). So far we have been able to dispense with the variables that appear in conventional notation by relying on the “new name rule” to instantiate expressions with the signals E and W.
It is far more of a problem to express ideas that involve multiple quantifiers (for instance, every student takes some classes or some students take every class). In conventional notation we find the variables x,y, and z used in such a way that we can talk about the scope of a quantifier, as in these examples:
(x)[Fx -> (Ey)(Gy & Hxy)] or (Ex)[Fx & (y)(Gy -> Hxy)]
The scope of the x in front of the bracketed expression is everything within the brackets, so that each expression could be instantiated by using a name for the variable, as in
Fa -> (Ey)(Gy & Hay) and Fa & (y)(Gy -> Hay)
With PLN we need to rethink carefully just what relationships we are attempting to express. As long as there are no two-place predicates that need to be connected with other expressions potentially involving the same individuals, we can still avoid using variables as in the following examples:
Everyone is F and everyone is G becomes FVGVA
Everyone is F and some are G becomes FVGWA
Some are F and some are G becomes FWGWA
Everyone likes something (with Fxy used for x likes y) becomes FVW.
Someone likes everything becomes FWV.
When we have two-place predicates used together with quantifiers, we will employ the last three letters of the alphabet as a special type of variable we call a binder.
The following templates demonstrate how binders are used.
Every x has every y becomes FxGyHxyCC
No x has any y becomes FxGyHNxyCC
Every x has some y becomes FxGyHxyAC
Some x has every y becomes FxGyHxyCA
Some x has no y becomes FxGyHNxyCA
Some x has some y becomes FxGyHNxyAA
Knowing whether the controlling signal is C or A allows us to see where the new name rule will apply. A conditional expression is linked with a statement that is potentially about anyone. A conjunction is linked with a statement that has to be about some specific individual, even though that individual cannot be identified otherwise.
For instance,
FxGyHxyCC can legally be instantiated as FaGaHaaCC or as FaGbHabCC
FxGyHNxyCC can legally be instantiated as FaGaHNaaCC or as FaGbHNabCC
FxGyHxyAC can be instantiated only as FaGbHabAC
FxGyHxyCA can legally be instantiated as FaGaHaaCA or as FaGbHabCA
FxGyHNxyCA can legally be instantiated as FaGaHNaaCA or as FaGbHNabCA
FxGyHNxyAA can be instantiated only as FaGbHNabAA
What we see is that universal quantifiers allow for possible reflexivity but existential quantifiers do not.
Instantiation in PLN works on a different principle than instantiation in conventional notation. Since binders appear only when we are working with two-place predicates, instantiation is legitimate before the elimination of other controlling signals. In conventional notation, (x)[Fx -> (y)(Gy -> Hxy)] could be instantiated as Fa -> (y)(Gy -> Hay), but then (in some systems) the implication would have to be eliminated before the rest of the expression could be instantiated.
New rules for working with binders will let us talk about instantiating the variable or generalizing on the name. Typically we will work with only one variable at a time, and we will first work with those that involve the new name rule (those that appear in a module ending in A).
The following are instances of these rules:
FxGyHxyAC |- FxGaHxaAC x inst
FxGaHxaAC |- FbGaHbaAC y inst
FbGaHbaAC |- FyGaHyaAC y gen
FyGaHyaAC |- FyGzHyzAC z gen
Note that we will not otherwise work with the final signals in the strings until we do have all the names in place.
Also see working with conventional notation
Go back to the starting page.