Relative Clause Semantics: A Worked Example #
Demonstrates the full machinery from Syntax/Minimalist/TraceInterpretation.lean with a concrete linguistic example: "the book that John read _"
The Derivation #
DP
/ \
the NP
/ \
book CP
/ \
Op₁ IP
/ \
John VP
/ \
read t₁
Semantic Composition #
- Trace interpretation: ⟦t₁⟧^g = g(1)
- VP composition: ⟦read t₁⟧^g = read(g(1)) (applied to subject later)
- IP composition: ⟦John read t₁⟧^g = read(j, g(1))
- Predicate Abstraction at CP: ⟦Op₁ [John read t₁]⟧^g = λx. read(j, x)
- Predicate Modification with head noun: λx. book(x) ∧ read(j, x)
- Definite description: ιx[book(x) ∧ read(j,x)]
A model for the "book that John read" example.
Domain: john, mary, book1, book2, newspaper
- john : ReadEntity
- mary : ReadEntity
- book1 : ReadEntity
- book2 : ReadEntity
- newspaper : ReadEntity
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
- Minimalist.RelativeClauses.instDecidableEqReadEntity x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
The model for our example
Equations
- Minimalist.RelativeClauses.readModel = { Entity := Minimalist.RelativeClauses.ReadEntity, Index := Unit }
Instances For
"John" denotes the entity john
Instances For
"Mary" denotes the entity mary
Instances For
"read" as a relation: John read book1, Mary read book2
Equations
- Minimalist.RelativeClauses.read_sem Minimalist.RelativeClauses.ReadEntity.book1 Minimalist.RelativeClauses.ReadEntity.john = True
- Minimalist.RelativeClauses.read_sem Minimalist.RelativeClauses.ReadEntity.book2 Minimalist.RelativeClauses.ReadEntity.mary = True
- Minimalist.RelativeClauses.read_sem Minimalist.RelativeClauses.ReadEntity.newspaper Minimalist.RelativeClauses.ReadEntity.mary = True
- Minimalist.RelativeClauses.read_sem obj subj = False
Instances For
Equations
- Minimalist.RelativeClauses.instDecidablePredDenotReadModelEBook_sem Minimalist.RelativeClauses.ReadEntity.book1 = isTrue trivial
- Minimalist.RelativeClauses.instDecidablePredDenotReadModelEBook_sem Minimalist.RelativeClauses.ReadEntity.book2 = isTrue trivial
- Minimalist.RelativeClauses.instDecidablePredDenotReadModelEBook_sem Minimalist.RelativeClauses.ReadEntity.john = isFalse not_false
- Minimalist.RelativeClauses.instDecidablePredDenotReadModelEBook_sem Minimalist.RelativeClauses.ReadEntity.mary = isFalse not_false
- Minimalist.RelativeClauses.instDecidablePredDenotReadModelEBook_sem Minimalist.RelativeClauses.ReadEntity.newspaper = isFalse not_false
Equations
- One or more equations did not get rendered due to their size.
The trace in object position: t₁
This represents the gap in "that John read _". The trace has index 1.
Equations
Instances For
VP meaning: "read t₁"
⟦read t₁⟧^g = λy. read(g(1))(y) = λy. read(y, g(1))
Note: Our read_sem takes object first, then subject. So "read t₁" is the function waiting for a subject.
Equations
Instances For
IP meaning: "John read t₁"
⟦John read t₁⟧^g = read(j, g(1))
Equations
- One or more equations did not get rendered due to their size.
Instances For
Verify IP meaning: it's true iff the trace's value was read by John
CP meaning via Predicate Abstraction: "Op₁ [John read t₁]"
⟦Op₁ [John read t₁]⟧^g = λx. ⟦John read t₁⟧^{g[1↦x]} = λx. read(j, x)
This creates a predicate "things that John read".
Equations
Instances For
Verify CP meaning: λx. read(j, x)
Head noun "book" as assignment-relative (trivially constant)
Equations
Instances For
NP meaning: "book that John read _"
Via Predicate Modification: ⟦book [that John read _]⟧ = λx. book(x) ∧ read(j, x)
Equations
Instances For
The NP meaning is the intersection of "book" and "things John read"
The iota operator: ιx.P(x)
Returns the unique x satisfying P, if one exists. For computational simplicity, we search through a list of candidates.
Equations
- Minimalist.RelativeClauses.iota candidates p = match List.filter p candidates with | [x] => some x | x => none
Instances For
All entities in our domain
Equations
- One or more equations did not get rendered due to their size.
Instances For
"the book that John read" denotes book1
This is the unique entity satisfying: book(x) ∧ read(j, x)
Equations
- One or more equations did not get rendered due to their size.
Instances For
Main theorem: "the book that John read" denotes book1
This shows the compositional derivation yields the correct result:
- book1 is a book
- John read book1
- No other book was read by John
- Therefore ιx[book(x) ∧ read(j,x)] = book1
The relative clause creates the right predicate: it's true of exactly the things John read.
The modified NP is true of exactly book1.
Assignment independence: the final NP meaning doesn't depend on the assignment (all variables are bound).
An equivalent formulation using the relativePM combinator directly. This shows the interface abstracts over the composition steps.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The two formulations are equivalent
The syntactic structure with a trace.
This shows how the semantic derivation corresponds to the syntax:
the trace created via mkTrace 1 is interpreted via interpTrace 1.
Instances For
Extracting the trace index from a syntactic object.