6.1.7. Functors
Truth-functional connectives express truth-valued functions of truth values, and predicates express truth-valued functions of reference values. A third sort of function not only takes reference values as input but also issues them as output. We will refer to this sort of function as a reference function or, in contexts where we do not need a more general concept, simply as a function. We will refer to expressions that are signs for these functions as functors and refer to the operation of applying a functor as function application. We can speak of the result of a function application as a compound term.
Functors are incomplete expressions that stand to individual terms as connectives stand to sentences, so we can extend the table of operations in 6.1.1 as follows:
operation | input | output |
connective | sentence(s) | sentence |
predicate | individual term(s) | sentence |
functor | individual term(s) | individual term |
We will add further incomplete expressions to this list in later chapters when we consider operations that take predicates as input.
Signs for mathematical functions provide examples of functors. The expression 7 + 5 can be analyzed as
Individual terms: | 7 + 5 |
Functor: | 2 + 6 |
But functors are not limited to mathematical vocabulary. Any individual term that contains one or more individual terms can be seen as the result of applying a functor to those component terms. Thus the oldest child of Ann and Bill can be analyzed as
Individual terms: | the oldest child of Ann and Bill |
Functor: | the oldest child of Ann and Bill |
And the more complex individual term the book that Ann’s father mentioned has the following analysis:
Individual term: | the book that Ann’s father mentioned |
Functors: | the book that Ann’s father mentioned |
the book that Ann’s father mentioned |
Possessives and prepositional phrases often give rise to functors but all that is needed to have a functor is an individual term that contains an individual term.
Our notation for functors will be analogous to that for predicates. Functors can be represented in semi-symbolic notation by individual-terms-with-blanks surrounded by brackets. Using this notation, the first two examples above could be given the analyses:
In the case of the third example, we will use parentheses to show grouping
In fact, there is no danger of ambiguity here; but the structure is clearer with parentheses, and, in the full symbolic notation, compound terms should be enclosed in parentheses when they fill a place of a functor or predicate.
In that notation, unanalyzed functors will be represented by lower case letters and will be written before the individual terms filling their places. The general form of a compound term is this
and our English notation will be
of
(series
) τ1, …, an’
τn
or
applied to
(series
) τ1, …, an’
τn
both of which are in keeping with the usual way of reading a function application, but one or the other will work better in certain contexts. When we need a general variable for functors we will use ζ or ξ.
Using this symbolic and English notation, we can express the final analyses of the examples above as follows:
symbolic notation | English notation | key |
psf | p of s an’ f |
p: [ _ + _ ]; f: 5; s: 7 |
oab | o of a an’ b |
o: [the oldest child of _ and _ ]; a: Ann; b: Bill |
b(fa) | b of f of a |
b: [ the book that _ mentioned]; f: [ _’s father]; a: Ann |
The symbolic notation for functors that is used here is fairly common in work on logic but is different from the most common mathematical notation for function applications. The notation we will use is designed to minimize parentheses and commas. The general rule for interpreting it is this: (i) after a predicate—i.e., after a capital letter—each unparenthesized letter and each parenthetical unit occupies one place of the predicate and (ii) within a parenthetical unit the first letter is a functor and each following unparenthesized letter and each parenthetical unit occupies one place of this functor.
Here are some examples for comparison
common mathematical notation | symbolic notation used here | English notation |
f(a) | fa | f of a |
f(a, b) | fab | f of a an’ b |
f(g(a)) | f(ga) | f of g of a |
f(a, g(b)) | fa(gb) | f of a an’ g of b |
f(g(a), b) | f(ga)b | f of series g of a an’ b |
f(g(a, b)) | f(gab) | f of g of series a an’ b |
The last two examples above show the role of the optional term series
in avoiding ambiguity. Because the letters used to represent functors and non-logical predicates do not have a fixed number of places associated with them, when a single an’
follows two occurrences of of
, it can be unclear where the series of terms marked by an’
actually began. There are other ways of handling this ambiguity. Parentheses suffice in written notation and parentheses, like other punctuation, can be reflected in speech. For example, it is natural to mark the difference between f of
(g of
a) an’
b and f of
(g of
a an’
b), respectively, by varying the speed with which they are spoken in ways that might be indicated by f
and of
g-of
-a an’
bf
.
of
g of
a-an’
-b
In the presence of functors, the potential for undefined terms increases considerably. Even if the cat on the mat has a non-nil reference value, the cat on the refrigerator may not—to say nothing of the cat on the house of Ann’s father’s best friend or the cat on 6. That is, functors accept a large variety of inputs and can be expected to issue output with undefined reference for some of them. This problem can be reduced (though not eliminated) by limiting functors to input of certain sorts. That is usually done by assigning individual terms to various types and allowing only individual terms of certain types to serve as inputs to a given functor. For example, the functor [ _ + _ ] might be restricted to numerical input. We will not follow this approach (which complicates the description of logical forms considerably), but it can serve to capture a number of features, both syntactic and semantic, of a natural language like English.