The Table #
This file defines the context structure of [FB10]: the participants' discourse
commitments, the common ground, and the Table, a stack of the issues under discussion with the
most recent on top. A declarative raises its proposition as an issue, Question.ofSet p, and a
polar interrogative raises Question.polar p; the complete answers of an issue are its
alternatives, Question.alt, the interrogative denotation of [Kar77b], and a common
ground decides an issue when it entails one of them. Each issue on the Table projects the common
grounds that would decide it, and the projected set is derived from the common ground and the
stack. The moves of the paper are functions on the structure, and the file proves what each does
to the projected set, the commitment lists, and the Table. Parenthesized numbers are the paper's
example and definition numbers.
A Table is a discourse state in both projections: its common ground is the commonGround
coordinate (HasCommonGround) and its current issue is the top of the stack
(Discourse.HasIssue). It is not a HasAssertion instance under its own assert, which leaves
the common ground alone and moves only the projected set.
Main definitions #
Question.DecidedBy P f: the common groundfentails a complete answer of the issueP.Commitment.Table A W: the context structure, withTable.discourseCommitments athe propositionsahas publicly committed to andTable.projectedSetthe projected set, the fold of the paper'sps ∪ Pover the stack.Table.IsStable: the Table is empty.Table.InCrisis: the common ground is inconsistent or no projected common ground is.Table.Shared: every participant is committed to the proposition.Table.assert,Table.polarQuestion,Table.settle,Table.agreeToDisagree: the default assertion (9), which commits its author as in [Gun01], the default polar question (12), the common-ground increasing operation M' (17), and agreeing to disagree (23). Assertion confirmation (16) isTable.commitof the proposition on top of the Table, and total denial (22) isassertof its negation.
Main results #
Table.le_commonGround_of_mem_projectedSet,Table.decidedBy_of_mem_projectedSet_of_mem_stack: a projected common ground refines the current one and decides every issue on the Table.Table.inCrisis_iff: with the projected set derived, crisis is having no consistent projected common ground; the inconsistent-common-ground clause is subsumed.Table.projectedSet_assert_assert_compl,Table.inCrisis_assert_assert_compl: a denied assertion projects nothing consistent (21) and leaves the conversation in crisis.Table.settle_push_of_decidedBy,Table.settle_assert_self,Table.discourseCommitments_settle: M' pops the issues the new common ground decides and strips the shared proposition from every commitment list.Table.agreeToDisagree_assert_assert,Table.inCrisis_agreeToDisagree_assert_assert: agreeing to disagree keeps the commitments, restores the Table, and restores the crisis status of the input context (23).
Implementation notes #
- The paper notes that the projected set can always be rebuilt from the common ground and the Table, so it is derived rather than stored.
- A common ground is a filter of propositions, so a proposition follows from it when it belongs
to the filter. This is the intersection-based entailment the paper's footnote 8 sets aside as
too coarse-grained: here every necessary proposition is decided by every common ground, and
Question.decidedBy_toprecords that the trivial issue is always decided. - M' (17) applies in the paper only once the proposition is on every commitment list;
Table.settleis the operation itself, and the trigger is a hypothesis on the caller,Table.Shared. Its popping clause is read as "pop from the top while decided", which follows the stack wording of (17) and agrees with the paper's examples; the gloss after (17) can also be read as removing every decided item from anywhere in the stack, and the clause pops on an entailed complete answer where the gloss says a decided one, which differ for a declarative whose negation the new common ground entails. Whether a common ground entails a complete answer is not decidable, soTable.settleis classical and noncomputable. - Agreeing to disagree requires a denial on top of the assertion it denies, which is where
total denial (22) leaves the Table, and removes both;
Table.agreeToDisagreepops twice and does not check the precondition.
References #
A common ground deciding an issue has a context set resolving it.
The trivial issue is decided by every common ground.
Projecting an issue #
ps ∪ P: add each complete answer of P to each projected common ground, discarding the
inconsistent results.
Equations
- Commitment.Table.project ps P = Set.image2 (fun (f : Filter W) (q : Set W) => f ⊓ Filter.principal q) ps P.alt \ {⊥}
Instances For
A single common ground consistent with p projects the one common ground with p.
A single common ground consistent with p and with ¬p projects both resolutions.
The initial context: nothing on the Table, no commitments, the trivial common ground.
Equations
- Commitment.Table.empty = { stack := [], commitments := ∅, commonGround := ⊤ }
Instances For
Equations
- Commitment.Table.instInhabited = { default := Commitment.Table.empty }
Equations
- Commitment.Table.instHasCommonGround = { commonGround := Commitment.Table.commonGround }
The current issue is the top of the Table, the trivial issue when the Table is empty.
Equations
- Commitment.Table.instHasIssue = { toIssue := fun (K : Commitment.Table A W) => K.stack.headD ⊤ }
DC_a: the propositions a has publicly committed to.
Equations
Instances For
The projected set #
The projected set, rebuilt from the common ground by the issues on the Table, oldest first: the common grounds that canonically settle what is at issue.
Equations
- K.projectedSet = List.foldr (fun (P : Question W) (ps : Set (Filter W)) => Commitment.Table.project ps P) {K.commonGround} K.stack
Instances For
A conversation is in crisis when its common ground or every projected common ground is inconsistent.
Equations
- K.InCrisis = (K.commonGround = ⊥ ∨ ∀ f ∈ K.projectedSet, f = ⊥)
Instances For
Moves #
Place an issue on the Table.
Equations
- K.push P = { stack := P :: K.stack, commitments := K.commitments, commonGround := K.commonGround }
Instances For
Remove the top issue.
Equations
- K.pop = { stack := K.stack.tail, commitments := K.commitments, commonGround := K.commonGround }
Instances For
Commit a to p.
Equations
- K.commit a p force source = { stack := K.stack, commitments := insert (Commitment.commit a p force source) K.commitments, commonGround := K.commonGround }
Instances For
Default assertion (9): a commits to p and places the declarative's issue on the Table.
Equations
- K.assert a p = (K.commit a p).push (Question.ofSet p)
Instances For
Default polar question (12): place the interrogative's issue on the Table.
Equations
- K.polarQuestion p = K.push (Question.polar p)
Instances For
The common-ground increasing operation M' (17), applied once p is on every commitment
list: p enters the common ground, leaves the individual commitment lists, and the issues the
new common ground decides are popped from the top of the Table.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Agreeing to disagree (23), from a Table with the denial on top of the assertion it denies: the contradictory pair leaves the Table and the commitments stay.
Equations
- K.agreeToDisagree = K.pop.pop
Instances For
Coordinates of the moves #
Stability #
A stable conversation has no issue.
Discourse commitments #
The asserted proposition enters the author's commitments.
M' strips the shared proposition from every commitment list.
The moves on the Table #
M' with the sentence radical of a polar question pops the question.
Agreeing to disagree after two assertions, the denial being the case q = pᶜ, leaves the
Table and the common ground as before them, with both commitments recorded.
Agreeing to disagree restores the crisis status of the context before the assertions.
Projected common grounds #
A stable conversation projects only its common ground.
A projected common ground refines the current one.
Every projected common ground decides every issue on the Table.
Every projected common ground settles the current issue.
The asserted proposition holds in every projected common ground.
The sentence radical of a polar question is decided in every projected common ground.
An assertion projects confirmation: its content is added to each projected common ground.
A polar question projects resolution: each alternative is added to each projected common ground.
With the projected set derived, a conversation is in crisis exactly when no projected common ground is consistent.
After an assertion has been denied, nothing consistent is projected (21).