Discourse Commitments #
[Ham70] [Kri15a] [Bra94] [Gun01]
Commitment slates, source × force tagging, and the speaker-indexed
S⊢φ constructor. The per-agent commitment store originates with
[Ham70]'s formal dialectic.
Commitment Slates #
The empty commitment slate.
Equations
- Discourse.Commitment.CommitmentSlate.empty = { commitments := [] }
Instances For
Add a commitment to the slate.
Equations
- s.add p = { commitments := p :: s.commitments }
Instances For
Worlds compatible with every committed proposition.
Equations
- s.toContextSet w = ∀ p ∈ s.commitments, p w
Instances For
The slate entails p iff every compatible world satisfies p.
Equations
- s.entails p = ∀ (w : W), (∀ q ∈ s.commitments, q w) → p w
Instances For
Source-Marked Commitments #
The source of a discourse commitment: self-generated commitments can be challenged by the addressee; other-generated commitments can be challenged by the speaker.
- selfGenerated : CommitmentSource
- otherGenerated : CommitmentSource
Instances For
Equations
- Discourse.Commitment.instDecidableEqCommitmentSource x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
The modal force of a commitment: doxastic (act-as-if-believe) or preferential (act-as-if-effectively-prefer, [CL12], [Lau13]).
- doxastic : CommitmentForce
- preferential : CommitmentForce
Instances For
Equations
- Discourse.Commitment.instDecidableEqCommitmentForce x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
A commitment tagged with epistemic source and modal force.
source × force is [Deo25]'s 2×2 cross.
- content : W → Prop
- source : CommitmentSource
- commitmentForce : CommitmentForce
Instances For
The empty tagged slate.
Equations
- Discourse.Commitment.TaggedSlate.empty = { commitments := [] }
Instances For
Add a tagged commitment.
Equations
Instances For
Self-generated commitments (any force).
Equations
- One or more equations did not get rendered due to their size.
Instances For
Other-generated commitments (any force).
Equations
- One or more equations did not get rendered due to their size.
Instances For
Doxastic commitments (any source).
Equations
- One or more equations did not get rendered due to their size.
Instances For
Preferential commitments (any source). The input to a joint-preferences set when intersected across agents ([Deo25]).
Equations
- One or more equations did not get rendered due to their size.
Instances For
Convert to a plain (untagged) commitment slate.
Equations
- s.toSlate = { commitments := List.map (fun (x : Discourse.Commitment.TaggedCommitment W) => x.content) s.commitments }
Instances For
Convert to context set (ignoring source tags).
Equations
- s.toContextSet = s.toSlate.toContextSet
Instances For
Projection reductions #
Simp-normal forms so a consumer reading an agent's plain commitments
(doxasticContents, selfGenerated, …) gets rfl-grade reductions under
add, instead of unfolding the filter ∘ map.
Grade typeclasses #
The support predicate of a commitment grade G: which grades count
as "actively committing". For Prop: identity. For Bool:
· = true. For ℝ_≥0: · > 0.
- support : G → Prop
Instances
A commitment grade with a complement operation. Used to construct the "no" branch of bipolar questions.
- complement : G → G
Instances
Equations
- Discourse.Commitment.instHasSupportProp = { support := id }
Equations
- Discourse.Commitment.instCommitmentGradeProp = { toHasSupport := Discourse.Commitment.instHasSupportProp, complement := Not }
Speaker-Indexed Commitments #
IndexedWeightedCommitment W G is the polymorphic
commitment type. Three axes:
committer : DiscourseRole— who is committing.force : CommitmentForce— doxastic vs preferential.weight : W → G(commit) orcontent : W → Prop(refuse).
The G = Prop specialisation is IndexedCommitment W.
A polymorphic indexed commitment.
- commit
{W : Type u_1}
{G : Type u_2}
(committer : DiscourseRole)
(force : CommitmentForce)
(weight : W → G)
: IndexedWeightedCommitment W G
S⊢φwith per-world grade in G. - refuse
{W : Type u_1}
{G : Type u_2}
(committer : DiscourseRole)
(force : CommitmentForce)
(content : W → Prop)
: IndexedWeightedCommitment W G
¬S⊢φ: agent explicitly NOT committed toφ.
Instances For
The committing agent.
Equations
- (Discourse.Commitment.IndexedWeightedCommitment.commit c force weight).committer = c
- (Discourse.Commitment.IndexedWeightedCommitment.refuse c force content).committer = c
Instances For
The commitment force.
Equations
- (Discourse.Commitment.IndexedWeightedCommitment.commit c force weight).force = force
- (Discourse.Commitment.IndexedWeightedCommitment.refuse c force content).force = force
Instances For
True for commit, false for refuse.
Equations
- (Discourse.Commitment.IndexedWeightedCommitment.commit c force weight).IsCommit = True
- (Discourse.Commitment.IndexedWeightedCommitment.refuse c force content).IsCommit = False
Instances For
Equations
- One or more equations did not get rendered due to their size.
Project to the context-set constraint: a commit excludes
worlds where support (weight w) fails; a refuse imposes no
exclusion.
Equations
- (Discourse.Commitment.IndexedWeightedCommitment.commit c force weight).toCommitment = fun (w : W) => Discourse.Commitment.HasSupport.support (weight w)
- (Discourse.Commitment.IndexedWeightedCommitment.refuse c force content).toCommitment = fun (x : W) => True
Instances For
Binary speaker-indexed commitment (Krifka 2015 default).
Equations
Instances For
Smart constructor for the doxastic binary commit case.
Equations
- Discourse.Commitment.IndexedCommitment.commit committer content = Discourse.Commitment.IndexedWeightedCommitment.commit committer Discourse.Commitment.CommitmentForce.doxastic content
Instances For
Smart constructor for the doxastic binary refuse case.
Equations
- Discourse.Commitment.IndexedCommitment.refuse committer content = Discourse.Commitment.IndexedWeightedCommitment.refuse committer Discourse.Commitment.CommitmentForce.doxastic content
Instances For
Propositional content of the commitment.
Equations
- Discourse.Commitment.IndexedCommitment.content (Discourse.Commitment.IndexedWeightedCommitment.commit committer force φ) = φ
- Discourse.Commitment.IndexedCommitment.content (Discourse.Commitment.IndexedWeightedCommitment.refuse committer force φ) = φ
Instances For
Project to the world-level context-set constraint. commit projects to
its content; refuse projects to True — because ¬S⊢φ imposes no
constraint on the facts of the world. The constraint refuse does impose
is second-order (on the committer's commitment state); see holdsIn.
Equations
- Discourse.Commitment.IndexedCommitment.toCommitment (Discourse.Commitment.IndexedWeightedCommitment.commit committer force φ) = φ
- Discourse.Commitment.IndexedCommitment.toCommitment (Discourse.Commitment.IndexedWeightedCommitment.refuse committer force φ) = fun (x : W) => True
Instances For
Commitment-level meaning of an entry as a constraint on the committer's
resulting commitment state t (Krifka's S⊢_, [Kri15a] §4):
commit r φ requires t to entail φ (r⊢φ); refuse r φ requires t
NOT to entail φ (¬ r⊢φ). The refuse case is the second-order
constraint that the world-level toCommitment (sending refuse to True)
deliberately cannot express.
Equations
- Discourse.Commitment.IndexedCommitment.holdsIn (Discourse.Commitment.IndexedWeightedCommitment.commit committer force φ) x✝ = x✝.entails φ
- Discourse.Commitment.IndexedCommitment.holdsIn (Discourse.Commitment.IndexedWeightedCommitment.refuse committer force φ) x✝ = ¬x✝.entails φ
Instances For
HasContextSet Instance #
A commitment slate projects to a context set.
Equations
- Discourse.instHasContextSetCommitmentSlate = { toContextSet := fun (s : Discourse.Commitment.CommitmentSlate W) (w : W) => s.toContextSet w }