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
The model for our example
Equations
- Minimalism.RelativeClauses.readModel = { Entity := Minimalism.RelativeClauses.ReadEntity, decEq := inferInstance }
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
- Minimalism.RelativeClauses.read_sem Minimalism.RelativeClauses.ReadEntity.book1 Minimalism.RelativeClauses.ReadEntity.john = true
- Minimalism.RelativeClauses.read_sem Minimalism.RelativeClauses.ReadEntity.book2 Minimalism.RelativeClauses.ReadEntity.mary = true
- Minimalism.RelativeClauses.read_sem Minimalism.RelativeClauses.ReadEntity.newspaper Minimalism.RelativeClauses.ReadEntity.mary = true
- Minimalism.RelativeClauses.read_sem obj subj = false
Instances For
The trace in object position: t₁
This represents the gap in "that John read _". The trace has index 1.
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
- Minimalism.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
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.