Docs / Semantics / Composition / Assignment

Assignment-relative denotations

import Linglib.Semantics.Composition.Assignment · namespace Montague

A variable assignment gives each index a value. A pronoun or trace with index $n$ denotes the value it gives $n$, by Heim and Kratzer's Traces and Pronouns Rule, and a binder with index $n$ abstracts over that value, by Predicate Abstraction; Charlow factors both through the reader monad. An abstraction over $n$ reads the indices its body reads other than $n$, and abstracting over an index the body does not read gives a constant function.

Main definitions

Implementation notes

An assignment is a function g : ℕ → E, and a pronoun with index n denotes g n, the evaluation Function.eval n of the assignment. An assignment-relative denotation in α is a function Assignment E → α, a computation of Lean's ReaderM (Assignment E), whose pure, <*> and joinM are Charlow's lift ρ, application ⊛ and flattener μ, and lambdaAbsG is his Λᵢ. The indices a denotation reads are those it depends on in the sense of mathlib's DependsOn. Assignments are total, where Heim and Kratzer's are partial, so a pronoun denotes at every assignment. Nothing fixes E to entities: at an assignment of situations, a pronoun is a situation pronoun.

References

Declarations

Abstraction over n binds n, so the abstract depends only on the indices other than n that its body depends on.

theorem dependsOn_lambdaAbsGL55–62
{E : Type u_1} {α : Type u_2} {s : Set ℕ} {body : Assignment E → α} (h : DependsOn body s) (n : ℕ) :
DependsOn (lambdaAbsG n body) (s \ {n})

Built from

Abstraction over n is vacuous, the constant function at the body's value at every assignment, exactly when the body does not depend on n.

theorem lambdaAbsG_eq_const_iffL64–70
{E : Type u_1} {α : Type u_2} {n : ℕ} {body : Assignment E → α} :
(∀ (g : Assignment E), lambdaAbsG n body g = Function.const E (body g)) ↔ DependsOn body {n}ᶜ

Built from