# How to express semantics in functions

As I understand it, the function is assigned the predicate ( e.g. let f(x) denote [[ _ is red]] ), the domain is the set of all possible referents and the range is the set of all possible propositions. (I.e. if there are two possible referents, [[John]] and [[Mary]] then set of all possible propositions is [[John is red]] and [[Mary is red]].)

1. Is that correct?
2. How is that different from expressing them in predicate logic? (e.g. Rx)

## 1 Answer

Within an extensional semantic framework, the range of the function should in fact be the set of truth values, i.e. {1, 0}, in a standard bivalent logical framework. The domain is the set of individuals. A predicate, such as is red is analysed as a function from individuals to truth values -- namely, that function which maps an individual to 1 if that individual is red, and to 0 otherwise. The denotation of is red, as a function from individuals to truth values, can be written in the lambda calculus as follows (following Heim & Kratzer, 1998):

[[is red]] = λx. x is red

This is to be read as: 'the function from an individual x to true, iff x is red.

I'm not really sure how to answer the question of how this is different to predicate logic. Using function-talk allows us to derive the truth-conditions of sentences of natural language compositionally, by using a general rule of composition such as function application (see again Heim & Kratzer, 1998). Predicate logic is useful for giving the truth conditions of an NL sentence, but it's not much use for giving an account of how these truth conditions are computed compositionally.

• Thank you. Glad to know you're here. It's tough to find people who know about this. I've been trying to figure out how it is that a function conditionally maps to an output when there is nothing to mark its conditionality. Moreover, the mapping notation |--> {1,0} seems to denote the sentence maps to the set containing true and false - not that it contingently maps to either value. So, where do they get off notating it like this? – Hal Mar 23 '14 at 17:02
• In the lambda notation, the conditions under which the predicate maps an individual to true are given in our metalanguage (in this case, English) after the dot. We could also use predicate logic as our metalanguage, in which case [[is red]] in the lambda notation would be: λx. red(x). How we evaluate whether or not a given entity counts as red is an interesting question in the philosophy of concepts, but one we can abstract away from it in doing semantics. – P Elliott Mar 23 '14 at 17:37
• It's worth mentioning that talking about predicates in terms of functions is pretty much equivalent to talking about predicates in terms of sets of individuals. The function is a characteristic function, which maps each member of the set of red things to 1. – P Elliott Mar 23 '14 at 17:42
• You don't need lambdafication for most purposes, though; it limits things to first-order quantified predicate calculus, which is good for proving theorems. But nobody proves theorems in linguistics, and natural language is not limited to FOQPC. – jlawler Mar 23 '14 at 22:01
• @jlawler I need it for the purpose of getting my credit for the class. – Hal Mar 24 '14 at 0:10