Conversational participants.
Following Farkas & Bruce, we model two discourse roles: speaker and listener. These roles are relative to a given utterance (they can swap between turns).
- speaker : Participant
- listener : Participant
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Semantics.Dynamic.State.instBEqParticipant.beq x✝ y✝ = (x✝.ctorIdx == y✝.ctorIdx)
Instances For
Sentence forms (clause types) that determine discourse effects.
Following Farkas & Bruce:
- Declaratives default-commit the speaker to the content
- Interrogatives raise an issue without commitment
- declarative : SentenceForm
- interrogative : SentenceForm
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Semantics.Dynamic.State.instBEqSentenceForm.beq x✝ y✝ = (x✝.ctorIdx == y✝.ctorIdx)
Instances For
An issue on the conversational table.
In Farkas & Bruce's model, the table is a stack of issues that need to be resolved before the conversation can return to a stable state.
For polar questions, alternatives is [p, ¬p].
For wh-questions, alternatives is the set of possible answers.
- form : SentenceForm
The form of the sentence that raised this issue
The proposition(s) at issue
- source : Participant
Who raised this issue
Instances For
Discourse State following @cite{farkas-bruce-2010}.
This structure captures the conversational state at a given point in time. It's parameterized by the World type for type-safe propositions.
Note: We omit ps (projected set) because it's derivable from cg and table.
The projected set contains worlds compatible with cg and at least one complete
answer to each issue on the table.
Speaker's discourse commitments (what speaker takes for granted)
Listener's discourse commitments
Common ground (joint commitments)
The table: stack of issues under discussion
Instances For
Empty/initial discourse state.
At the start of a conversation, there are no commitments and no issues on the table. This is a "stable" state in F&B's terminology.
Equations
Instances For
Convert common ground to a ContextSet (worlds where all cg props hold).
This bridges to the existing Core.CommonGround infrastructure.
Instances For
World compatibility: w is compatible with the discourse state if w satisfies all common ground propositions.
Equations
- ds.compatible w = ds.cg.all fun (p : BProp W) => p w
Instances For
Check if the table is empty (stable state).
A discourse state is stable when the table is empty, meaning all issues have been resolved and there's nothing pending.
Instances For
Check if a world is compatible with speaker's commitments.
This is what @cite{scontras-tonhauser-2025} call "speakerCredence": the speaker only considers worlds compatible with their private assumptions.
Equations
- ds.speakerCompatible w = ds.dcS.all fun (p : BProp W) => p w
Instances For
Check if a world is compatible with listener's commitments.
Equations
- ds.listenerCompatible w = ds.dcL.all fun (p : BProp W) => p w
Instances For
Add a proposition to the common ground.
This models acceptance of an assertion: the proposition moves from a participant's discourse commitments to the joint common ground.
Instances For
Add a proposition to speaker's discourse commitments.
This models the speaker asserting a proposition, which commits the speaker but doesn't yet affect the common ground.
Instances For
Add a proposition to listener's discourse commitments.
Instances For
Push an issue onto the table.
This models raising a question or making an assertion (which implicitly raises the issue of whether the content should be accepted).
Equations
Instances For
Pop an issue from the table (when resolved).
Instances For
Effect of a declarative assertion.
Following F&B: an assertion of p by the speaker:
- Adds p to dcS (speaker's commitments)
- Pushes the issue {p} onto the table
The listener can then respond by:
- Accepting (adds p to dcL and cg, pops table)
- Rejecting (adds ¬p to dcL, creating a conflict)
- Neither (leaving p "on the table")
Equations
- ds.assertDeclarative p = (ds.addToDcS p).pushIssue { form := Semantics.Dynamic.State.SentenceForm.declarative, alternatives := [p] }
Instances For
Effect of a polar question.
Following F&B: a polar question about p:
- Pushes the issue {p, ¬p} onto the table
- Does not add commitments (questions don't commit)
Equations
- ds.askPolarQuestion p = ds.pushIssue { form := Semantics.Dynamic.State.SentenceForm.interrogative, alternatives := [p, Core.Proposition.Decidable.pnot W p] }
Instances For
Accept the top issue on the table.
This models the listener accepting an assertion (adding to dcL and cg) or answering a question (adding the chosen alternative to cg).
Equations
- One or more equations did not get rendered due to their size.
Instances For
Convert the common ground component to a CG structure.
Instances For
Create a discourse state from a CG structure.
Sets cg, dcS, and dcL all to the CG propositions (everyone agrees).
Equations
- Semantics.Dynamic.State.DiscourseState.fromCG cg = { dcS := cg.propositions, dcL := cg.propositions, cg := cg.propositions, table := [] }
Instances For
Connection to RSA Presupposition Models #
@cite{scontras-tonhauser-2025} @cite{warstadt-2022} @cite{qing-goodman-lassiter-2016}
RSA models for presupposition projection use different components of the discourse state as the latent variable that L1 infers:
@cite{scontras-tonhauser-2025}: Inferring dcS #
The BeliefState type represents different possible values of dcS (what
the speaker privately assumes). L1 infers which dcS best explains the
speaker's utterance choice.
The speaker may assume things not yet in the common ground, which is why S&T prefer "private assumptions" over "common ground."
@cite{warstadt-2022} / @cite{qing-goodman-lassiter-2016}: Inferring cg #
The Context type represents different possible values of cg (what's
jointly accepted). L1 infers which cg state the speaker is acting on.
Accommodation is updating one's model of the common ground.