--- layout: linguistics title: linguistics/semantics --- # notes on semantics Semantics is the study of **meaning**. How do we know what sentences are true and which are false?
What does it *mean* for a sentence to be true?
What conditions must hold for a sentence to be true? Formal semantics attempts to answer those questions by providing a *framework* for determining what *conditions* must hold for a sentence to be true. This framework is [first-order/predicate logic](../mathematics/logic) and the [simply-typed lambda calculus](../plt/lambda-calculus). On top of this, we often build set theory, relying on *characteristic functions* of the lambda calculus as denotations of *set membership*. ## Basic Principles ### Compositionality The *Principle of Compositionality* states that the meaning of a *constituent* is determined entirely by its *components*. This is *the* fundamental underlying principle behind formal logic and subsequently semantics. It holds for not just sentence composition (syntax), but also *word formation* (morphology), and what's of interest to us here - meaning (semantics). ### Substitution The *Principle of Substitution* states that substituting one part of an expression with something else of the same meaning *preserves* the meaning of the expression as a whole. This might be thought of as a given, but semantics has its roots in philosophy, and philosophers care very much about enumerating their givens. ### Predicate Logic & The Lambda Calculus Formal semantics begets a formal system for such semantics, and *first-order logic* and *the lambda calculus* are a natural fit. Semantics is the study of meaning - and what is logic but a system for expressing meaning? As discussed above, language functions by composition - and what are functions but their property of composition? [*An Invitation to Formal Semantics*](https://eecoppock.info/bootcamp/semantics-boot-camp.pdf) covers basic logic and the lambda calculus well in its first six chapters. Otherwise, for a worse introduction, see [logic](../mathematics/logic), and [the lambda calculus](../plt/lambda-calculus). ## Denotational Semantics With basic logic and the lambda calculus under our belt, we may simply get straight to assigning *meaning* to language. We consider two *basic types* to start: the type of entities, $e$, and the type of truth values, $t$. Our function types we denote by ordered pairs: that is, a function from $e$ to $t$ is of type $⟨e,t⟩$. This is perhaps clunkier notation than the type-theoretic $e→t$, but it is what it is. (And does avoid issues of precedence.) ### Entities and Functions > *I am Alice.*
> *Alice is bad.*
> *The blue pigeon flew away.* - Noun: $⟨e,t⟩ ↝ λx.Noun(x)$ - Verb (intransitive): $⟨e,t⟩ ↝ λx.Verb(x)$ - Verb (transitive): $⟨e,⟨e,t⟩⟩ ↝ λy.λx.Verb(x, y)$ - Verb (meaningless): $⟨⟨e,t⟩,⟨e,t⟩⟩ ↝ λP.λx.P(x)$ - Adj: $⟨⟨e,t⟩,⟨e,t⟩⟩ ↝ λNoun.λx.[Adj(x) ∧ Noun(x)]$ - or (clausal): $⟨t,⟨t,t⟩⟩ ↝ λq.λp.[p ∨ q]$ - and (clausal): $⟨t,⟨t,t⟩⟩ ↝ λq.λp.[p ∧ q]$ - or (verbal): $⟨⟨e,t⟩,⟨⟨e,t⟩,⟨e,t⟩⟩⟩ ↝ λQ.λP.λx.[P(x) ∨ Q(x)]$ - and (verbal): $⟨⟨e,t⟩,⟨⟨e,t⟩,⟨e,t⟩⟩⟩ ↝ λQ.λP.λx.[P(x) ∧ Q(x)]$ - or (quantifiers): $⟨⟨e,⟨e,t⟩⟩,⟨⟨e,⟨e,t⟩⟩,⟨e,⟨e,t⟩⟩⟩⟩ ↝ λQ.λP.λy.λx.[P(x,y) ∨ Q(x,y)]$ - and (quantifiers): $⟨⟨e,⟨e,t⟩⟩,⟨⟨e,⟨e,t⟩⟩,⟨e,⟨e,t⟩⟩⟩⟩ ↝ λQ.λP.λy.λx.[P(x,y) ∧ Q(x,y)]$ - not: $⟨⟨e,t⟩,⟨e,t⟩⟩ ↝ λP.λx.¬P(x)$ ### Quantification - every: $⟨⟨e,t⟩,⟨⟨e,t⟩,t⟩⟩ ↝ λQ.λP.∀x.[P(x) → Q(x)]$ - everything: $⟨⟨e,t⟩,t⟩ ↝ λP.∀x.P(x)$ - some: $⟨⟨e,t⟩,⟨⟨e,t⟩,t⟩⟩ ↝ λQ.λP.∃x.[P(x) ∧ Q(x)]$ - something: $⟨⟨e,t⟩,t⟩ ↝ λP.∃x.P(x)$ - no: $⟨⟨e,t⟩,⟨⟨e,t⟩,t⟩⟩ ↝ λQ.λP.∀x.[P(x) → ¬Q(x)] (or λQ.λP.¬∃x.[P(x) ∧ Q(x)])$ - nothing: $⟨⟨e,t⟩,t⟩ ↝ λP.¬∃x.P(x)$ (or $λP.∀x.¬P(x)$) ### Reference ### Numbers and Plurality ### Event Semantics ### Tense and Aspect ## Beyond Truth ### Necessity and Possibility ### Command, Request, Obligation > *Alice, run!*
> *Alice, please run.*
> *Alice should run.* ### Questions ## Resources - ✨ [Invitation to Formal Semantics](https://eecoppock.info/bootcamp/semantics-boot-camp.pdf)