Assignment function: maps variable indices to entities.
Unified with Core.Assignment — this is Nat → m.Entity. All variable-binding
frameworks in the library (Montague, DRT, DPL, CDRT, cylindric algebra) share
this canonical type, differing only in the entity parameter.
Equations
Instances For
Modified assignment g[n↦x]. Delegates to Core.Assignment.update.
Equations
- g.update n x = Core.Assignment.update g n x
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Denotation depending on assignment function.
Equations
Instances For
Pronoun/variable denotation: ⟦xₙ⟧^g = g(n).
Equations
Instances For
Lift constant denotation to assignment-relative form.
Equations
Instances For
Function application with assignments.
Equations
- Semantics.Montague.Variables.applyG f x g = f g (x g)
Instances For
Instances For
Assignment-sensitive composition as an applicative functor #
@cite{charlow-2018} observes that constDenot (ρ) and applyG (⊛)
form an applicative functor for the Reader type constructor G a := g → a
(@cite{mcbride-paterson-2008}). These are not new operations — they are
factored out of the standard @cite{heim-kratzer-1998} account. The four
applicative functor laws hold definitionally.
Adding the join operation denotGJoin (μ) — which flattens doubly
assignment-dependent meanings by feeding the same assignment twice —
upgrades the structure to a monad (the Reader/Environment monad),
enabling analyses of paycheck pronouns and binding reconstruction.
Identity: ρ id ⊛ v = v.
Join (μ): flatten a doubly assignment-dependent meaning.
@cite{charlow-2018} §4.2: μ m := λg. m g g.
Enables higher-order variables: a pronoun anaphoric to an intension
(type g → g → a) is flattened to a standard denotation (type g → a)
by evaluating the retrieved intension at the current assignment.
Equations
- Semantics.Montague.Variables.denotGJoin ho g = ho g g
Instances For
Left identity: μ (ρ d) = d.
Right identity: μ (λg. ρ(d g)) = d.
Associativity: μ ∘ μ = μ ∘ fmap μ.
Assignments as a cylindric set algebra #
Heim & Kratzer's assignment functions satisfy the same algebraic axioms as DRT's dynamic assignments: predicates on assignments form a cylindric set algebra (@cite{henkin-monk-tarski-1971}). The operations:
- Existential closure
∃n.φ(g) = ∃x.φ(g[n↦x])= cylindrification - Identity
g(n) = g(m)= diagonal element - Lambda abstraction
λn.φ = fun x => φ(g[n↦x])= the integrand of cylindrification - Pronoun resolution (binding n to m) = cylindric substitution
This section develops these correspondences purely within the Montague
Assignment type, without importing the dynamic semantics stack.
Existential closure at variable n:
(∃n.φ)(g) = ∃x. φ(g[n↦x]).
This is cylindrification on Montague assignments (@cite{henkin-monk-tarski-1971}, @cite{heim-kratzer-1998} Ch. 5).
Equations
- Semantics.Montague.Variables.existsClosure n φ g = ∃ (x : m.Entity), φ (g.update n x)
Instances For
Diagonal element: assignments where variables n and k agree.
Dnk = {g : g(n) = g(k)}.
Equations
- Semantics.Montague.Variables.diag n k g = (g n = g k)
Instances For
C₁: Existential closure of False is False.
C₂: φ implies its existential closure.
C₅: Dnn = ⊤ (reflexivity of equality).
Pronoun resolution: setting variable κ to read from variable l.
When pronoun κ is bound by a binder at index l, the semantic effect
is φ(g[κ↦g(l)]). This is the cylindric algebra's direct
substitution σ^κ_l.
Equations
- Semantics.Montague.Variables.resolve κ l φ g = φ (g.update κ (g l))
Instances For
Substitution = resolution.
Algebraic substitution cκ(Dκl · φ) — cylindrification after
constraining κ to equal l via the diagonal — computes the same
predicate as direct pronoun resolution φ(g[κ↦g(l)]).
Lambda abstraction at n is the "integrand" of existential closure:
∃n.φ = ∃x. (λn.φ)(g)(x).
Montague ≡ Core.CylindricAlgebra #
The operations in this section — existsClosure, diag, resolve —
are the same functions as cylindrify, diagonal, directSubst from
Core.CylindricAlgebra. Both are defined via Core.Assignment.update.
The identities are definitional (rfl).
Together with the DPL ↔ Cylindric Algebra bridge in DPL/Bridge.lean
(which proves closure(∃x.φ) = cylindrify x (closure φ)), this
establishes a three-way connection:
Montague (static) DPL (dynamic)
existsClosure n φ DPLRel.exists_ x φ
│ │
│ rfl │ closure
▼ ▼
Core.CylindricAlgebra.cylindrify n
H&K's static binding and DPL's dynamic binding are both instances of
cylindrification — they differ only in whether the output assignment
is visible (DPL: relation g → h → Prop) or projected away
(Montague: predicate g → Prop).
existsClosure IS cylindrify: H&K's existential closure is
literally cylindrification on the assignment algebra.
diag IS diagonal: H&K's variable identity test is literally
the cylindric algebra's diagonal element.
resolve IS directSubst: H&K's pronoun resolution is literally
cylindric substitution.