Documentation

Linglib.Theories.Pragmatics.Dialogue.KOS.Rules

KOS Conversational Rules #

@cite{ginzburg-2012} Ch. 4

Conversational rules govern how dialogue gameboards evolve during conversation. @cite{ginzburg-2012} Ch. 4 defines these as precondition/effect pairs (record types with pre and effects fields).

Core Rules (@cite{ginzburg-2012} Ch. 4, pp. 72–112) #

  1. Greeting / CounterGreeting — conversation initialization (pp. 74–76, ex. 17/20b)
  2. Initiating Move — refined Free Speech with genre relevance (p. 108, ex. 94)
  3. Ask QUD-incrementation — question pushes onto QUD (p. 95, ex. 66)
  4. Assert QUD-incrementation — assertion pushes About(p) onto QUD (p. 95, ex. 66)
  5. QSPEC — subquestion accommodation (p. 95, ex. 66)
  6. QCoord — successive question coordination (p. 99, ex. 77)
  7. Accept — addressee grounds an assertion (p. 95, ex. 66)
  8. Check — addressee requests confirmation (p. 95, ex. 68)
  9. Confirm — speaker confirms in response to check (p. 95, ex. 68)
  10. Fact update/QUD-downdate — accept triggers fact addition + QUD removal (p. 95; p. 103, ex. 85)

Answerhood #

The Answerhood typeclass abstracts the resolves-relation between facts and questions — connecting to partition-based QUD W from Core/Discourse/QUD.lean and to inquisitive Issue W.

Genre (@cite{ginzburg-2012} §4.6) #

Genres are TTR record types classifying conversations by their characteristic structure. Activity relevance (GenreRelevant, p. 105, ex. 90) constrains which initiating moves are felicitous.

Whether a fact resolves a question.

This abstracts the answerhood relation between accumulated facts and QUD entries. Concrete instances connect to:

  • Partition-based answerhood (QUD M): a fact determines a unique cell
  • String-based answerhood: pattern matching on content strings
  • Propositional answerhood (BProp W): a fact entails a question's answer

Ch. 4: "q is resolved relative to a DGB dgb iff the FACTS in dgb contextually entail an answer to q."

  • resolves : FactQContentBool
Instances
    def Theories.Pragmatics.Dialogue.KOS.allResolved {Fact QContent : Type} [Answerhood Fact QContent] (facts : List Fact) (qud : List QContent) :

    Whether all questions in a QUD stack are resolved by the current facts.

    Equations
    Instances For
      def Theories.Pragmatics.Dialogue.KOS.DGB.pushQud {P Fact QContent : Type} (dgb : DGB P Fact QContent) (q : QContent) :
      DGB P Fact QContent

      Push a question onto the QUD stack.

      Ch. 4: when a question is asked, it becomes the maximal element of QUD.

      Equations
      Instances For
        def Theories.Pragmatics.Dialogue.KOS.DGB.downdateQud {P Fact QContent : Type} [Answerhood Fact QContent] (dgb : DGB P Fact QContent) :
        DGB P Fact QContent

        Remove resolved questions from QUD.

        Ch. 4: QUD-downdate removes a question q from QUD when FACTS contextually entail an answer to q.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          def Theories.Pragmatics.Dialogue.KOS.DGB.addFact {P Fact QContent : Type} (dgb : DGB P Fact QContent) (p : Fact) :
          DGB P Fact QContent

          Add a fact to the DGB's FACTS.

          Equations
          Instances For
            def Theories.Pragmatics.Dialogue.KOS.DGB.recordMove {P Fact QContent : Type} (dgb : DGB P Fact QContent) (m : IllocMove Fact QContent) :
            DGB P Fact QContent

            Record a move in the DGB's MOVES list.

            Equations
            Instances For
              def Theories.Pragmatics.Dialogue.KOS.DGB.assertFact {P Fact QContent : Type} [Answerhood Fact QContent] (dgb : DGB P Fact QContent) (p : Fact) :
              DGB P Fact QContent

              Assert: add fact to FACTS, record the move, and downdate QUD.

              Ch. 4 (p. 95, ex. 66): assertion adds content to FACTS, pushes About(p,?) onto QUD, and any resolved question is removed.

              Equations
              Instances For
                def Theories.Pragmatics.Dialogue.KOS.TIS.ask {P Fact QContent : Type} (tis : TIS P Fact QContent) (q : QContent) :
                TIS P Fact QContent

                Ask rule: a question utterance pushes onto QUD and records the move.

                Ch. 4, "Ask QUD-incrementation" (p. 95, ex. 66).

                Equations
                Instances For
                  def Theories.Pragmatics.Dialogue.KOS.TIS.assertRule {P Fact QContent : Type} [Answerhood Fact QContent] (tis : TIS P Fact QContent) (p : Fact) :
                  TIS P Fact QContent

                  Assert rule (simplified): assertion adds to FACTS and downdates.

                  This version does not push About(p) onto QUD. For the full Assert protocol with QUD-incrementation, use TIS.assertWithQUD.

                  Equations
                  Instances For
                    def Theories.Pragmatics.Dialogue.KOS.TIS.assertWithQUD {P Fact QContent : Type} [Answerhood Fact QContent] (tis : TIS P Fact QContent) (p : Fact) (aboutP : QContent) :
                    TIS P Fact QContent

                    Assert QUD-incrementation: the full Assert protocol.

                    Ch. 4 (p. 95, ex. 66): when A asserts p:

                    1. p is added to FACTS
                    2. About(p) — a polar question "whether p" — is pushed onto QUD
                    3. QUD is downdated (resolved questions removed)

                    The aboutP parameter converts the asserted fact to its corresponding question, since this conversion is domain-specific.

                    Equations
                    Instances For
                      def Theories.Pragmatics.Dialogue.KOS.TIS.accept {P Fact QContent : Type} (tis : TIS P Fact QContent) (p : Fact) :
                      TIS P Fact QContent

                      Accept rule: addressee grounds an assertion — adds fact to own FACTS.

                      Ch. 4, "Accept" (p. 95, ex. 66 step 4a).

                      Known simplification: the book's Accept rule (ex. 42) swaps spkr/addr in the effects (the acceptor becomes the new speaker). We don't model this because our worked examples don't track individual participants.

                      Equations
                      Instances For
                        def Theories.Pragmatics.Dialogue.KOS.TIS.qspec {P Fact QContent : Type} (tis : TIS P Fact QContent) (q : QContent) :
                        TIS P Fact QContent

                        QSPEC rule: a subquestion refines a QUD entry.

                        Precondition: q₂ influences some q₁ on QUD (q₂ is a subquestion). Effect: push q₂ onto QUD (it becomes the new MaxQud).

                        Ch. 4, "QSPEC" (p. 95, ex. 66 step 2).

                        Equations
                        Instances For
                          def Theories.Pragmatics.Dialogue.KOS.TIS.check {P Fact QContent : Type} (tis : TIS P Fact QContent) (p : Fact) (aboutP : QContent) :
                          TIS P Fact QContent

                          Check rule: addressee requests confirmation of an assertion.

                          Ch. 4 (p. 95, ex. 68): a Check move pushes a polar question about the asserted content onto QUD.

                          Equations
                          Instances For
                            def Theories.Pragmatics.Dialogue.KOS.TIS.confirm {P Fact QContent : Type} [Answerhood Fact QContent] (tis : TIS P Fact QContent) (p : Fact) :
                            TIS P Fact QContent

                            Confirm rule: speaker confirms in response to a check.

                            Ch. 4 (p. 95, ex. 68 step 2).

                            Known simplification: the book's Confirm rule (ex. 43) swaps spkr/addr, as with Accept. See TIS.accept for details.

                            Equations
                            Instances For
                              def Theories.Pragmatics.Dialogue.KOS.TIS.qcoord {P Fact QContent : Type} (tis : TIS P Fact QContent) (q : QContent) :
                              TIS P Fact QContent

                              QCoord rule: successive question coordination.

                              Ch. 4, ex. 77 (p. 99): allows a speaker to follow up an initial question with a non-influencing question, where the initial question remains QUD-maximal.

                              Effect: push q onto QUD without displacing the current maximal question.

                              Equations
                              • One or more equations did not get rendered due to their size.
                              Instances For
                                def Theories.Pragmatics.Dialogue.KOS.TIS.factUpdateQudDowndate {P Fact QContent : Type} [Answerhood Fact QContent] (tis : TIS P Fact QContent) (p : Fact) :
                                TIS P Fact QContent

                                Fact update/QUD-downdate: combined rule.

                                Ch. 4, ex. 85 (p. 103): when Accept occurs, FACTS is updated and resolved questions are downdated from QUD.

                                Equations
                                Instances For
                                  def Theories.Pragmatics.Dialogue.KOS.TIS.greet {P Fact QContent : Type} (tis : TIS P Fact QContent) :
                                  TIS P Fact QContent

                                  Greeting: conversation initialization.

                                  Ch. 4 (p. 75, ex. 17): precondition is MOVES = ⟨⟩.

                                  Equations
                                  Instances For
                                    theorem Theories.Pragmatics.Dialogue.KOS.ask_pushes_qud {P Fact QContent : Type} (tis : TIS P Fact QContent) (q : QContent) :
                                    (tis.ask q).dgb.qud = q :: tis.dgb.qud

                                    Ask pushes exactly one question onto QUD.

                                    theorem Theories.Pragmatics.Dialogue.KOS.ask_preserves_facts {P Fact QContent : Type} (tis : TIS P Fact QContent) (q : QContent) :
                                    (tis.ask q).dgb.facts = tis.dgb.facts

                                    Ask does not modify FACTS.

                                    theorem Theories.Pragmatics.Dialogue.KOS.ask_records_move {P Fact QContent : Type} (tis : TIS P Fact QContent) (q : QContent) :

                                    Ask records the move.

                                    theorem Theories.Pragmatics.Dialogue.KOS.assert_adds_fact {P Fact QContent : Type} [Answerhood Fact QContent] (tis : TIS P Fact QContent) (p : Fact) :

                                    Assert adds the fact to FACTS.

                                    theorem Theories.Pragmatics.Dialogue.KOS.assertWithQUD_adds_fact {P Fact QContent : Type} [Answerhood Fact QContent] (tis : TIS P Fact QContent) (p : Fact) (aboutP : QContent) :
                                    p (tis.assertWithQUD p aboutP).dgb.facts

                                    assertWithQUD adds the fact to FACTS.

                                    theorem Theories.Pragmatics.Dialogue.KOS.accept_preserves_qud {P Fact QContent : Type} (tis : TIS P Fact QContent) (p : Fact) :
                                    (tis.accept p).dgb.qud = tis.dgb.qud

                                    Accept adds a fact without changing QUD.

                                    theorem Theories.Pragmatics.Dialogue.KOS.accept_adds_fact {P Fact QContent : Type} (tis : TIS P Fact QContent) (p : Fact) :
                                    (tis.accept p).dgb.facts = p :: tis.dgb.facts

                                    Accept adds the fact to FACTS.

                                    theorem Theories.Pragmatics.Dialogue.KOS.qspec_pushes {P Fact QContent : Type} (tis : TIS P Fact QContent) (q : QContent) :
                                    (tis.qspec q).dgb.qud = q :: tis.dgb.qud

                                    QSPEC pushes a subquestion.

                                    theorem Theories.Pragmatics.Dialogue.KOS.check_pushes_qud {P Fact QContent : Type} (tis : TIS P Fact QContent) (p : Fact) (aboutP : QContent) :
                                    (tis.check p aboutP).dgb.qud = aboutP :: tis.dgb.qud

                                    Check pushes a question onto QUD.

                                    theorem Theories.Pragmatics.Dialogue.KOS.greet_precond_empty_moves {P Fact QContent : Type} (tis : TIS P Fact QContent) (h : tis.dgb.moves = []) :

                                    Greeting requires empty moves (precondition check).

                                    theorem Theories.Pragmatics.Dialogue.KOS.downdateQud_length_le {P Fact QContent : Type} [Answerhood Fact QContent] (dgb : DGB P Fact QContent) :

                                    Downdate never increases QUD size.

                                    theorem Theories.Pragmatics.Dialogue.KOS.downdateQud_removes_resolved {P Fact QContent : Type} [Answerhood Fact QContent] (dgb : DGB P Fact QContent) (q : QContent) (f : Fact) (hq : dgb.qud = [q]) (hf : f dgb.facts) (hr : Answerhood.resolves f q = true) :

                                    If a fact resolves the only question on QUD, downdate removes it.

                                    Move Coherence #

                                    ex. 70 (p. 96) defines M(ove)-Coherence: a move m₁ is coherent with respect to a DGB dgb₀ iff there exists a conversational rule c₁ mapping dgb₀ to dgb₁ such that dgb₁.LatestMove = m₁.

                                    Pairwise and sequential M-Coherence extend this to move pairs and sequences.

                                    @[reducible, inline]

                                    A conversational rule: a function from DGB to DGB.

                                    Ch. 4 summary (p. 112): "a mapping that indicates how one DGB can be modified by a conversationally related action."

                                    Equations
                                    Instances For
                                      def Theories.Pragmatics.Dialogue.KOS.mCoherent {P Fact QContent : Type} (rules : List (ConvRule P Fact QContent)) (dgb₀ : DGB P Fact QContent) (m : IllocMove Fact QContent) :

                                      A move is M-Coherent with respect to a DGB if some conversational rule produces a DGB whose latest move is that move.

                                      ex. 70a (p. 96).

                                      Equations
                                      Instances For
                                        def Theories.Pragmatics.Dialogue.KOS.genreRelevant {P Fact QContent : Type} (genre : GenreType QContent) (dgb : DGB P Fact QContent) (m : IllocMove Fact QContent) :

                                        A move is genre-relevant if the outcome of adding it to the DGB can be anticipated to conclude as a conversation of the genre type.

                                        ex. 90 (p. 105): "m0 is relevant to G0 in dgb0 for A iff A believes that outcome(dgb0 ⊕ₘₒᵥₑₛ m0, G0) will be fulfilled."

                                        Equations
                                        • One or more equations did not get rendered due to their size.
                                        Instances For

                                          String-based answerhood: a fact resolves a question if they match.

                                          Equations

                                          After Accept, the fact appears twice (once from assert, once from accept).

                                          Partition-Based Answerhood #

                                          Ch. 4 defines QUD-downdate in terms of FACTS resolving questions. The Answerhood typeclass above abstracts this. Here we connect it to the partition-based QUD W from Core/Discourse/QUD.lean (@cite{groenendijk-stokhof-1984}):

                                          A BProp W fact resolves a QUD W question when the fact determines a unique cell — all worlds where the fact holds are in the same partition cell.

                                          def Theories.Pragmatics.Dialogue.KOS.bpropResolvesQUD {W : Type} [BEq W] (worlds : List W) (fact : BProp W) (q : QUD W) :

                                          A BProp W resolves a QUD W if all fact-worlds are in the same partition cell.

                                          Equations
                                          Instances For

                                            Answerhood instance: BProp W resolves QUD W over a fixed world list.

                                            Equations
                                            Instances For

                                              A BProp W resolves a Discourse.Issue W if it settles some alternative.

                                              @cite{ciardelli-groenendijk-roelofsen-2018}: resolving an issue means establishing enough information to determine which alternative holds.

                                              Equations
                                              Instances For

                                                Three-world scenario: is it raining?

                                                Instances For
                                                  Equations
                                                  • One or more equations did not get rendered due to their size.
                                                  Instances For

                                                    "Is it raining?" — partition into rainy vs non-rainy.

                                                    Equations
                                                    • One or more equations did not get rendered due to their size.
                                                    Instances For

                                                      After assertWithQUD, the question from Ask is resolved (fact matches).

                                                      Directive moves (ask, check) share world-to-mind fit: the speaker wants the addressee to act.

                                                      Utterance Integration: Grounding vs CRification #

                                                      @cite{ginzburg-2012} Ch. 6 (§6.5–6.7): when an utterance enters Pending, the addressee either grounds it (all contextual parameters resolved → content enters FACTS) or CRifies it (some parameter unresolved → a clarification request question is pushed onto QUD).

                                                      This is the LocProp-level protocol that replaces the string-based IS.integrateUtterance from @cite{ginzburg-cooper-2004}.

                                                      Whether a LocProp has all contextual parameters resolved. A fully resolved LocProp can be grounded directly.

                                                      Equations
                                                      Instances For

                                                        Whether a LocProp can be grounded (= fully resolved).

                                                        Equations
                                                        Instances For

                                                          The result of integrating a LocProp into a DGB. Either grounded (content → FACTS) or CRified (CR question → QUD).

                                                          • grounded {Cont QContent : Type} (content : Cont) : IntegrationResult Cont QContent

                                                            All cparams resolved: content enters FACTS.

                                                          • crification {Cont QContent : Type} (crQuestion : QContent) (unresolvedParam : CParam) : IntegrationResult Cont QContent

                                                            Some cparam unresolved: CR question pushed onto QUD.

                                                          Instances For
                                                            def Theories.Pragmatics.Dialogue.KOS.instReprIntegrationResult.repr {Cont✝ QContent✝ : Type} [Repr Cont✝] [Repr QContent✝] :
                                                            IntegrationResult Cont✝ QContent✝Std.Format
                                                            Equations
                                                            • One or more equations did not get rendered due to their size.
                                                            Instances For
                                                              def Theories.Pragmatics.Dialogue.KOS.integrateLocProp {Cont QContent : Type} (lp : LocProp Cont) (toCR : CParamQContent) :
                                                              IntegrationResult Cont QContent

                                                              Integrate a LocProp: ground if resolved, CRify otherwise.

                                                              The toCR function converts an unresolved parameter to a clarification question — this is domain-specific (e.g., "Who do you mean by 'Bo'?").

                                                              Equations
                                                              • One or more equations did not get rendered due to their size.
                                                              Instances For
                                                                theorem Theories.Pragmatics.Dialogue.KOS.resolved_always_grounds {Cont QContent : Type} (lp : LocProp Cont) (toCR : CParamQContent) (h : lp.isFullyResolved = true) :

                                                                A fully resolved LocProp always grounds.

                                                                theorem Theories.Pragmatics.Dialogue.KOS.no_coercion_fallback {Cont QContent : Type} (lp : LocProp Cont) (toCR : CParamQContent) (p : CParam) (ps : CParamSet) (h : lp.cparams = p :: ps) :

                                                                If there are no coercion options and the LocProp has unresolved params, integration produces a CRification — there is no silent fallback.

                                                                DGB Well-Formedness: Non-Resolve-Cond #

                                                                @cite{ginzburg-2012} ex. 100 (p. 111): the DGB includes a well-formedness constraint non-resolve-cond requiring that no question on QUD is already resolved by FACTS. This prevents trivially answered questions from lingering on QUD — they should be downdated.

                                                                def Theories.Pragmatics.Dialogue.KOS.DGB.nonResolveCond {P Fact QContent : Type} [Answerhood Fact QContent] (dgb : DGB P Fact QContent) :

                                                                The non-resolve-cond: no question on QUD is resolved by FACTS. @cite{ginzburg-2012} ex. 100 (p. 111).

                                                                Equations
                                                                Instances For

                                                                  An empty DGB trivially satisfies non-resolve-cond.

                                                                  theorem Theories.Pragmatics.Dialogue.KOS.downdateQud_restores_nonResolveCond {P Fact QContent : Type} [Answerhood Fact QContent] (dgb : DGB P Fact QContent) :

                                                                  After QUD-downdate, non-resolve-cond holds: all remaining questions are unresolved by FACTS.