An InfoState is a set of possibilities.
Different theories instantiate P differently:
- PLA: Assignment × WitnessSeq
- DRT: Assignment
- Intensional: World × Assignment
Equations
- Semantics.Dynamic.Core.InfoStateOf P = Set P
Instances For
A Context Change Potential (CCP) is a function from states to states.
This is the semantic type for dynamic meanings.
Equations
Instances For
Identity CCP: leaves state unchanged
Equations
Instances For
Absurd CCP: yields empty state
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
CCPs form a monoid under sequential composition
Equations
- One or more equations did not get rendered due to their size.
Test-based negation: passes (returns input) iff φ yields ∅.
This is the standard dynamic negation of @cite{heim-1982}, @cite{veltman-1996}: ¬φ(s) = s if φ(s) = ∅, else ∅. Does not validate DNE.
Equations
- φ.neg s = if Set.Nonempty (φ s) then ∅ else s
Instances For
Dynamic disjunction via De Morgan: φ ∨ ψ = ¬(¬φ ; ¬ψ).
@cite{heim-1983}: the local context for the second disjunct is the global context updated with ¬φ. This yields the standard Karttunen projection pattern for inclusive disjunction.
Instances For
Dynamic entailment: φ entails ψ iff ψ adds no information after φ.
Equations
- φ.entails ψ = ∀ (s : Semantics.Dynamic.Core.InfoStateOf P), Set.Nonempty (φ s) → ψ (φ s) = φ s
Instances For
An update is eliminative if it never adds possibilities.
This is the fundamental property of dynamic semantics: information only grows (possibilities only decrease).
Equations
- Semantics.Dynamic.Core.IsEliminative u = ∀ (s : Semantics.Dynamic.Core.InfoStateOf P), u s ⊆ s
Instances For
Identity is eliminative
Sequential composition preserves eliminativity
An update is expansive if it never removes possibilities.
Expansive operations include discourse referent introduction (DRT/DPL), modal horizon expansion (@cite{kirkpatrick-2024}), and accommodation. These are the dual of eliminative operations: where eliminative updates can only shrink the state, expansive updates can only grow it.
Equations
- Semantics.Dynamic.Core.IsExpansive u = ∀ (s : Semantics.Dynamic.Core.InfoStateOf P), s ⊆ u s
Instances For
Identity is expansive
Sequential composition preserves expansiveness
A CCP that is both eliminative and expansive is the identity on every input.
Eliminative ↔ antitone on the identity: u s ≤ s for all s.
Expansive ↔ identity below: s ≤ u s for all s.
Eliminative updates are antitone at the identity: u ≤ id in the pointwise order.
Expansive updates satisfy id ≤ u in the pointwise order.
A test is a CCP that either passes (returns input) or fails (returns ∅).
Tests don't change information - they check compatibility. Examples: might, must, presupposition triggers.
Equations
- Semantics.Dynamic.Core.IsTest u = ∀ (s : Semantics.Dynamic.Core.InfoStateOf P), u s = s ∨ u s = ∅
Instances For
Tests are eliminative
Support relation: s supports ψ if all possibilities in s satisfy ψ.
This is the fundamental entailment relation of dynamic semantics.
Equations
- Semantics.Dynamic.Core.supportOf sat s ψ = ∀ (p : P), p ∈ s → sat p ψ
Instances For
Content of a formula: all possibilities satisfying it.
Equations
- Semantics.Dynamic.Core.contentOf sat ψ = {p : P | sat p ψ}
Instances For
Galois connection: s ⊆ content ψ ↔ s supports ψ
This is the fundamental duality of dynamic semantics.
Support is downward closed: smaller states support more.
Filtering a set by a predicate is monotone. This is the shared foundation
for monotonicity of updateFromSat, atom, pred1, pred2, etc.
Filtering a set by a predicate is eliminative.
The standard update construction: filter by satisfaction.
This is how PLA, DRT, DPL all define updates.
Equations
- Semantics.Dynamic.Core.updateFromSat sat ψ s = {p : P | p ∈ s ∧ sat p ψ}
Instances For
Standard updates are eliminative
Standard update membership
Update equals intersection with content
Support-Update equivalence
Dynamic entailment: φ dynamically entails ψ if updating with φ always yields a state that supports ψ.
Equations
- Semantics.Dynamic.Core.dynamicEntailsOf sat ψ₁ ψ₂ = ∀ (s : Semantics.Dynamic.Core.InfoStateOf P), Semantics.Dynamic.Core.supportOf sat (Semantics.Dynamic.Core.updateFromSat sat ψ₁ s) ψ₂
Instances For
Dynamic entailment is reflexive
Dynamic entailment is transitive
updateFromSat is monotone in the state argument: larger input states yield
larger output states. Uses mathlib's Monotone (i.e., s ≤ t → f s ≤ f t
where ≤ on Set is ⊆).
A possibility: world paired with variable assignment.
This is the concrete state type for world-sensitive dynamic semantics
(DPL, DRT, CDRT, PLA). The assignment field uses Assignment E
from the CCP infrastructure.
- world : W
- assignment : Assignment E
Instances For
Two possibilities agree on all variables in a set.
Equations
- p.agreeOn q vars = ∀ (x : ℕ), x ∈ vars → p.assignment x = q.assignment x
Instances For
Same world, possibly different assignment.
Instances For
Extend an assignment at a single variable, using Assignment.update.
Instances For
Information state: set of possibilities.
This is InfoStateOf (Possibility W E) — a specialization of the
generic InfoStateOf to world-assignment possibilities.
Equations
- Semantics.Dynamic.Core.InfoState W E = Set (Semantics.Dynamic.Core.Possibility W E)
Instances For
The trivial state: all possibilities.
Equations
- Semantics.Dynamic.Core.InfoState.univ = Set.univ
Instances For
The absurd state: no possibilities.
Equations
Instances For
State is consistent (non-empty).
Equations
- s.consistent = Set.Nonempty s
Instances For
Variable x is defined in state s iff all possibilities agree on x's value.
Equations
- s.definedAt x = ∀ (p q : Semantics.Dynamic.Core.Possibility W E), p ∈ s → q ∈ s → p.assignment x = q.assignment x
Instances For
The set of defined variables in a state.
Equations
- s.definedVars = {x : ℕ | s.definedAt x}
Instances For
In a consistent state, novel means assignments actually disagree.
Project to the set of worlds in the state.
Equations
- s.worlds = {w : W | ∃ (p : Semantics.Dynamic.Core.Possibility W E), p ∈ s ∧ p.world = w}
Instances For
Filter state by a world predicate.
Equations
- s.filterWorlds pred = {p : Semantics.Dynamic.Core.Possibility W E | p ∈ s ∧ pred p.world = true}
Instances For
Filter state by an assignment predicate.
Equations
- s.filterAssign pred = {p : Semantics.Dynamic.Core.Possibility W E | p ∈ s ∧ pred p.assignment = true}
Instances For
Empty context with all possibilities.
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
State s supports proposition φ iff φ holds at all worlds in s.
Equations
- (s ⊫ φ) = ∀ (p : Semantics.Dynamic.Core.Possibility W E), p ∈ s → φ p.world = true
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
State: set of world-assignment pairs.
Isomorphic to InfoState W E but uses a flat product instead of the
Possibility structure. Prefer InfoState for new code.
Equations
- Semantics.Dynamic.Core.State W E = Set (W × Core.Assignment E)
Instances For
State-level CCP: context change potential over world-assignment states.
Definitionally equal to CCP (W × Assignment E), so all CCP infrastructure
(monoid, neg, might, tests, entailment, Galois connection) applies.
Equations
Instances For
A CCP is distributive when it processes each element of the input independently: φ(s) = ⋃_{i∈s} φ({i}).
Equations
- Semantics.Dynamic.Core.IsDistributive φ = ∀ (s : Semantics.Dynamic.Core.InfoStateOf P), φ s = {p : P | ∃ (i : P), i ∈ s ∧ p ∈ φ {i}}
Instances For
updateFromSat is always distributive: it filters per-element.
CCP.might is not distributive: the whole-context test can pass while
individual-element tests fail.
Witness: P = Bool, φ keeps only true.
might φ {true, false} = {true, false} (whole-context test passes),
but per-singleton: might φ {false} = ∅ (test fails on false-only context).
So false is in the whole-context result but not the distributive union.
The relational type DRS S = S → S → Prop from DynProp is the
primary dynamic semantic type. Every DRS gives rise to a distributive
CCP via the relational image (lift), and every distributive CCP
arises this way (lower). The round-trip is the identity in both
directions (for distributive CCPs).
Non-distributive CCP operations (neg, might, must) test the
whole input state and have no direct DRS counterpart — they are
genuine additions of the set-transformer perspective.
Lift a relational DRS meaning to a CCP (set transformer).
This is the relational image: given input state σ, collect all
outputs reachable from any element of σ. The resulting CCP is
always distributive (lift_isDistributive).
Equations
- Semantics.Dynamic.Core.lift R σ = {j : S | ∃ (i : S), i ∈ σ ∧ R i j}
Instances For
Lower a CCP to a relational DRS meaning.
lower φ i j holds iff j is in the output of the singleton {i}.
This is the inverse of lift for distributive CCPs.
Equations
- Semantics.Dynamic.Core.lower φ i j = (j ∈ φ {i})
Instances For
Lifting a test produces a per-element filter:
lift (test C) σ = { i ∈ σ | C i }.
Lifted CCPs are always distributive.
Round-trip: lower (lift R) = R. The relational type loses no
information when lifted and lowered.
Round-trip: lift (lower φ) = φ for distributive CCPs.
Distributive CCPs are exactly the relational images.
lift (test C) is eliminative: it only removes elements.
updateFromSat is the lifting of test applied to a satisfaction
relation. This connects the CCP-native updateFromSat to the
primary relational algebra.