KOS: DGB Operations #
@cite{ginzburg-2012} Ch. 4
Operations on the Dialogue Gameboard: pushing onto QUD, downdating
resolved questions, recording moves, asserting facts. Plus the
HasContextSet bridge connecting DGB facts to the standard common
ground type, the non-resolve-cond well-formedness check, and the
partition-based answerhood predicate PropResolvesQUD.
Structure #
- §1. DGB structural lemmas (initial state)
- §2. DGB update operations: pushQud, downdateQud, addFact, recordMove, assertFact
- §3. DGB content mapping: mapFacts, mapQud
- §4. HasContextSet bridge to Core.Semantics.CommonGround
- §5. QUD downdate properties + non-resolve-cond well-formedness
- §6. Partition-based answerhood (
PropResolvesQUD)
Answerhood #
KOS's "fact resolves question" relation is the Core.Question.Support
typeclass (Prop-valued, mathlib-shaped). With QUD now storing
InfoStruc QContent Cont (per Ch. 6 final), the support check on
f ⊨ is.q projects through the InfoStruc's question field.
An empty DGB has no latest move.
Push a bare question onto the QUD stack, wrapping it in an
InfoStruc with no FECs.
Ch. 4: when a question is asked, it becomes the maximal element of QUD.
For questions paired with focus-establishing constituents, use
pushQudInfoStruc directly.
Equations
Instances For
Push a fully-formed InfoStruc (question + FECs) onto QUD.
Used when the introducing utterance carries focus-establishing constituents
that downstream NSU resolution will consume (Ch. 7).
Equations
Instances For
Remove resolved questions from QUD.
Ch. 4: QUD-downdate removes a question q from QUD when FACTS contextually
entail an answer to q. Now QUD entries are InfoStrucs; the support check
projects through is.q.
Equations
- One or more equations did not get rendered due to their size.
Instances For
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
- dgb.assertFact p = (dgb.addFact p).downdateQud
Instances For
Map over a DGB's question type, preserving structure (FECs are dropped since they reference the same Cont).
Equations
- One or more equations did not get rendered due to their size.
Instances For
DGB with Set W facts projects to a context set.
@cite{ginzburg-2012} Ch. 4: the DGB's FACTS field IS the common ground.
Equations
- Dialogue.KOS.instHasContextSetDGBSet = { toContextSet := fun (dgb : Dialogue.KOS.DGB Participant (Set W) QContent Cont) (w : W) => ∀ p ∈ dgb.facts, p w }
TIS with Set W facts inherits the DGB's context set.
Equations
- Dialogue.KOS.instHasContextSetTISSet = { toContextSet := fun (tis : Dialogue.KOS.TIS Participant (Set W) QContent Cont) (w : W) => ∀ p ∈ tis.dgb.facts, p w }
Downdate never increases QUD size.
If a fact resolves the only question on QUD, downdate removes it.
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.
The non-resolve-cond: no question on QUD is resolved by FACTS. @cite{ginzburg-2012} ex. 100 (p. 111).
Equations
- dgb.nonResolveCond = ∀ is ∈ dgb.qud, ¬∃ f ∈ dgb.facts, Core.Question.Support.supports f is.q
Instances For
Equations
- One or more equations did not get rendered due to their size.
An empty DGB trivially satisfies non-resolve-cond.
After QUD-downdate, non-resolve-cond holds: all remaining questions are unresolved by FACTS.
Partition-Based Support #
Ch. 4 defines QUD-downdate in terms of FACTS resolving questions.
The Support typeclass abstracts this. Here we connect it to the
partition-based QUD W from Core/Discourse/QUD.lean
(@cite{groenendijk-stokhof-1984}):
A Set W fact supports a QUD W question when the fact determines
a unique cell — all worlds where the fact holds are in the same
partition cell.
A Set W resolves a QUD W if all fact-worlds are in the same
partition cell. Prop-valued; Decidable via the bundled per-pair
predicate decidability.
Equations
- Dialogue.KOS.PropResolvesQUD worlds fact q = ∀ w₁ ∈ List.filter (fun (w : W) => decide (fact w)) worlds, ∀ w₂ ∈ List.filter (fun (w : W) => decide (fact w)) worlds, q.sameAnswer w₁ w₂ = true
Instances For
Equations
- Dialogue.KOS.instDecidablePropResolvesQUD worlds fact q = id inferInstance
Worked partition consumers below construct their own
DecidableSupport instances at the concrete fact-type (e.g.
rainSupport uses RainProp.toProp, where DecidablePred is
automatic). A generic Set W → DecidableSupport factory would have
to choose Classical.decPred fact and the resulting kernel
unfolding doesn't align cleanly between the supports and
decSupports fields; consumers requiring it can construct the
instance locally.