Roberts (2012) QUD relevance — Prop predicates on Core.Question #
@cite{roberts-2012} @cite{groenendijk-stokhof-1984}
Mathlib-style Prop predicates with Decidable instances. Successor of an
earlier Bool/List partiallyAnswers/questionEntails/isSubquestion/
moveRelevant API (now removed) that operated on a Hamblin
list-of-alternatives Question type.
The predicates operate directly on Core.Question, ranging over alt P
(the maximal-resolving propositions). For computability, an Question
must expose a finite alternative-list witness via HasAltList. The
canonical witness for a polar question is HasAltList.polar; for an
arbitrary Hamblin issue, define a HasAltList instance via the
ofList smart constructor (Core/Question/Hamblin.lean).
Decidability of σ ⊆ p for σ p : Set W is not automatic in mathlib
(unlike Finset). The local instance Set.decidableSubsetOfFintype below
plugs the gap: it derives Decidable (s ⊆ t) from [Fintype W] plus
DecidablePred (· ∈ s) and DecidablePred (· ∈ t). Consumers building
Set W from W → Bool predicates get the per-set DecidablePred for
free.
Note that the [∀ p, Decidable (σ ⊆ p ∨ σ ⊆ pᶜ)] hypothesis on the
instances below ranges over all p : Set W — Lean cannot synthesize
this universally because DecidablePred (· ∈ p) is not derivable for
arbitrary p. Consumers should either supply this hypothesis at the
call site (typically via decide_partiallyAnswers_polar for polar
questions) or invoke a specialized decision procedure tied to the
specific alternative list.
σ partially answers P: settles at least one alternative either
positively (σ ⊆ p) or negatively (σ ⊆ pᶜ).
@cite{roberts-2012} Def. 3a.
Equations
- P.partiallyAnswers σ = ∃ p ∈ P.alt, σ ⊆ p ∨ σ ⊆ pᶜ
Instances For
Question entailment: every alternative of P entails some alternative
of Q. @cite{roberts-2012} Def. 8 (after
@cite{groenendijk-stokhof-1984}). At the partition level this is
QUD.refines: P refines Q iff knowing P's answer determines
Q's answer.
Equations
- P.questionEntails Q = ∀ p ∈ P.alt, ∃ q ∈ Q.alt, p ⊆ q
Instances For
q is a subquestion of parent: answering parent settles q.
Equations
- q.isSubquestion parent = parent.questionEntails q
Instances For
A discourse move den is relevant to the QUD if some alternative
partially answers the QUD or any of the subquestions. The
QUD-relevance idea traces to @cite{roberts-2012}; the present
formulation is the one @cite{ippolito-kiss-williams-2025} ex. (16)
assumption iii uses for discourse only's definedness condition.
Equations
- den.moveRelevant qud subquestions = ∃ a ∈ den.alt, qud.partiallyAnswers a ∨ ∃ q ∈ subquestions, q.partiallyAnswers a
Instances For
The dual of questionEntails: every nonempty alternative of
Q is covered by a nonempty alternative of P.
On partition questions this is equivalent to questionEntails P Q;
for general inquisitive Question W, the two directions are
independent. The decision-relevance preservation theorem in
Theories.Semantics.Questions.DecisionTheoretic requires this
dual form, not questionEntails. The nonempty clause matches
IsDecisionRelevant's requirement that witnessing alternatives
be substantive — without it, ⊥-style questions trivially
"cover" anything via the empty set.
Equations
- P.CoversAltsOf Q = ∀ q ∈ Q.alt, q.Nonempty → ∃ p ∈ P.alt, p.Nonempty ∧ p ⊆ q
Instances For
Reflexivity / transitivity #
Lattice → entailment #
The workhorse: P ≤ Q in the inquisitive lattice (P.props ⊆ Q.props)
implies questionEntails P Q. Every alternative of P resolves Q
and therefore extends to a maximal Q-resolving proposition.
P ≤ Q (inquisitive entailment) implies questionEntails P Q
(Roberts question entailment). The bridge from the lattice order
to the alternative-set quantification. Requires Q.props.Finite
to guarantee maximal extensions exist.
Variant of questionEntails_of_le with [Fintype W] [DecidableEq W]
discharging the finiteness hypothesis (via Fintype (Set W) then
Set.toFinite). Convenient for finite-world studies.
A move whose alternative directly partially answers the QUD is relevant (no subquestions needed).
Generic Set ⊆ Set decidability for finite types #
Mathlib provides Set.Subset decidability only via Finset. For Question
consumers that build alternatives as Set W from Bool-valued predicates,
the gap is plugged by deriving from Fintype W plus per-set DecidablePred
witnesses.
Equations
- Core.Question.Set.decidableSubsetOfFintype s t = inferInstance
Decidability via HasAltList #
A finite-presentation witness for a Question's alternatives. The
altList is a List (Set W) whose elements correspond bijectively
(modulo set-equality) to alt P.
- altList : List (Set W)
The finite list of alternatives.
The list exhausts
alt P.
Instances
partiallyAnswers decides via the alternative list, given
decidability of each alternative-subset / complement-subset check.
Equations
- P.partiallyAnswers_decidable σ = decidable_of_iff (∃ p ∈ Core.Question.HasAltList.altList P, σ ⊆ p ∨ σ ⊆ pᶜ) ⋯
questionEntails decides via the alternative lists, given
decidability of pairwise subset checks.
Equations
- P.questionEntails_decidable Q = decidable_of_iff (∀ p ∈ Core.Question.HasAltList.altList P, ∃ q ∈ Core.Question.HasAltList.altList Q, p ⊆ q) ⋯
Equations
- q.isSubquestion_decidable parent = parent.questionEntails_decidable q
moveRelevant decides via the move's alternative list, given
decidability of partial answerhood against the QUD and each
subquestion.
Equations
- den.moveRelevant_decidable qud subquestions = decidable_of_iff (∃ a ∈ Core.Question.HasAltList.altList den, qud.partiallyAnswers a ∨ ∃ q ∈ subquestions, q.partiallyAnswers a) ⋯
HasAltList constructors #
HasAltList witness for a polar question whose proposition is
non-trivial (neither ∅ nor Set.univ). The two alternatives are
p and pᶜ. Not an instance: nontriviality must be supplied.
Equations
- Core.Question.HasAltList.polar p hne hnu = { altList := [p, pᶜ], mem_altList := ⋯ }
Instances For
HasAltList witness for a Hamblin question built from an explicit
alternative list under pairwise disjointness + nonempty cells.
The Hamblin construction Question.ofList L has alt = {p | p ∈ L}
by alt_ofList_of_pairwise_disjoint_nonempty. Not an instance:
the structural hypotheses must be supplied at the call site.
Equations
- Core.Question.HasAltList.ofList L hL hdisj hne = { altList := L, mem_altList := ⋯ }
Instances For
HasAltList witness for a Hamblin question built from an explicit
alternative list under the antichain condition (no cell contained
in another) + nonempty cells. Weaker than HasAltList.ofList —
cells may overlap as long as none is a subset of another distinct
cell. Useful for Hamblin alternatives whose truth-sets share worlds
(e.g., two polar question alternatives with overlap).
Equations
- Core.Question.HasAltList.ofListAntichain L hL hac hne = { altList := L, mem_altList := ⋯ }
Instances For
Iff-rewrite lemmas for polar #
These reduce partiallyAnswers/questionEntails/moveRelevant on
polar questions to plain Set operations, so consumers can rw and
then decide (the residual Set subset checks fire from
Set.decidableSubsetOfFintype plus per-set DecidablePred).