6.2.1. Abstracts
In our analyses so far, we have identified the places of a predicate with the blanks remaining when all largest individual terms have been removed. But, while this way of identifying the places of a predicate is best for a full analysis, it is not required by the concept of a predicate. For the greatest flexibility in identifying predicates, we need a notation that will allow us to specify an order for the places of a predicate that is different from the order of blanks in the English and that will allow us to associate a given place with more than one blank. What we will use is an extension of the ordinary algebraic use of variables. It is a simple idea that was used by Frege but it was first studied extensively by the American logician Alonzo Church (1903-1995) in the 1930s.
The usual form of definition for a function—of a polynomial, for example,
gives a name to the function and uses a variable or variables to indicate the input values, with the output specified by some sort of formula. An alternative notation represents the input and output more graphically
The latter definition might be read
Church’s notation, the notation of lambda abstraction, provides a symbolic version of the sort of definite description that appears in the English version of the definition. Using this notation, the symbolic definition could be written as
That is, the expression λxy (x2 + 3xy + 1)
can be read as the function which, when given input x and y, yields the output x2 + 3xy + 1.
When we define a function by a formula, whether we use the traditional notation or Church’s, we are interested in the way the meaning of the formula varies with changes in the reference of certain individual terms. This way
is more abstract than any particular value the formula has when the reference of these terms is fixed, so the move from the formula to the function is reasonably described as abstraction.
The notation of lambda abstraction identifies a function without immediately introducing a name for it. This idea has been important in the development of computer programming languages and, in that context, the right-hand side of the second equation above would now often be described as an anonymous function.
So, when a defining equation is expressed in the notation of lambda abstraction, it abstracts a function anonymously by using the expression λxy (x2 + 3xy + 1)
and then assigns it the name f.
Since predicates express functions, the same idea can be applied to them, and it will provide the sort of flexibility we need in identifying predicates. However, our notation for abstraction will be a little different from Church’s. We will write the variables that follow the lambda in Church’s notation as subscripts on brackets. For example, for the function defined above, we can write
something that might be read as x2 + 3xy + 1 as a function of x and y.
As an example of a predicate in this notation, consider the following:
If we give this the input Bill and Ann, it will generate an output sentence by putting Bill in place of x and Ann in place of y. The output will then have Bill in the first and second blanks of the sentence-with-blanks _ introduced _ to _, and it will have Ann in the third blank. So we will get as output the sentence Bill introduced Bill to Ann—or, more idiomatically, Bill introduced himself to Ann.
That is, the expression,
provides an alternative analysis of the first example of 6.1.5 in which use a two-place predicate instead the three-place predice [ _ introduced _ to _ ]. The chief application of this sort of flexibility in analysis will be in later chapters; but this example shows that it captures some aspects of English predications better than the analysis we will most often use. In particular, like the English sentence, this analysis indicates a double reference to Bill without repeating his name. We will look at this aspect of abstraction further in 6.2.3.
We will call an expression formed with these subscripted brackets an abstract. We will speak of a predicate abstract when the brackets enclose a sentence-with-variables and of a functor abstract when they enclose an individual-term-with-blanks. The general form of an abstract with n places is
[ | --- | ]x1 … xn |
body | abstractor |
It has two parts, a body, which specifies the output of the expression, and an abstractor, consisting of the brackets and subcripted list of variables. The variables listed in the abstractor may appear in the body in any order and may occur several times.
And they need not occur in the body at all. To get the effect of a definition like f(x) = 2, we use an abtract like [2]x to indicate a function whose output is 2 for any input. Abraction like this is said to be vacuous.
The predicate abstract [x introduced x to y]xy might be read as
x introduced x to ysays about x and y
and we will take as our English notation for predicate abstracts an abbreviated form of this reading:
what
--- says
of
x1 … xn
so the English notation for this predicate would be
what
x introduced x to y says
of
x ən
y
(again using the contraction ən
to distinguish this use of and from its use in conjunction). The predication that applies this predicate to Ann and Bill then takes the form
what
x introduced x to y says of
x ən
y fits
Bill ən
Ann
Our English notation for functor abstracts is simply
for
x1 … xn
which is a compact version of a reading suggested earlier. The application of [x2 + 3xy + 1]xy 2 3 could be written in this notation as
for
x ən
y applied to
2 ən
3
This is a case where the alternative English notation applied to
for compound functors reads better than the simpler of
.