Decision Problems for Polar Questions (Stub) #
@cite{hawkins-etal-2025} @cite{van-rooy-2003}
Building on @cite{van-rooy-2003}, this module defines decision problems for polar questions.
Status #
The ℚ-based RSA evaluation infrastructure (RSA.Eval.sumScores) has been removed.
Type definitions and structural properties (Item, World, PolarQuestion,
PQDecisionProblem, decision problem constructors) are preserved.
The dpExpectedValue computation that depended on RSA.Eval.sumScores has been
re-implemented with a local helper.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- RSA.Questions.instReprItem = { reprPrec := RSA.Questions.instReprItem.repr }
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- RSA.Questions.instReprWorld = { reprPrec := RSA.Questions.instReprWorld.repr }
Equations
- RSA.Questions.instBEqWorld = { beq := fun (w1 w2 : RSA.Questions.World) => w1.targetAvailable == w2.targetAvailable && w1.alternatives.length == w2.alternatives.length }
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
- RSA.Questions.instBEqPolarQuestion.beq { targetName := a } { targetName := b } = (a == b)
- RSA.Questions.instBEqPolarQuestion.beq x✝¹ x✝ = false
Instances For
Equations
- RSA.Questions.instDecidableEqAction.decEq (RSA.Questions.Action.choose a) (RSA.Questions.Action.choose b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
- RSA.Questions.instDecidableEqAction.decEq (RSA.Questions.Action.choose a) RSA.Questions.Action.chooseTarget = isFalse ⋯
- RSA.Questions.instDecidableEqAction.decEq (RSA.Questions.Action.choose a) RSA.Questions.Action.leave = isFalse ⋯
- RSA.Questions.instDecidableEqAction.decEq RSA.Questions.Action.chooseTarget (RSA.Questions.Action.choose a) = isFalse ⋯
- RSA.Questions.instDecidableEqAction.decEq RSA.Questions.Action.chooseTarget RSA.Questions.Action.chooseTarget = isTrue ⋯
- RSA.Questions.instDecidableEqAction.decEq RSA.Questions.Action.chooseTarget RSA.Questions.Action.leave = isFalse RSA.Questions.instDecidableEqAction.decEq._proof_6
- RSA.Questions.instDecidableEqAction.decEq RSA.Questions.Action.leave (RSA.Questions.Action.choose a) = isFalse ⋯
- RSA.Questions.instDecidableEqAction.decEq RSA.Questions.Action.leave RSA.Questions.Action.chooseTarget = isFalse RSA.Questions.instDecidableEqAction.decEq._proof_8
- RSA.Questions.instDecidableEqAction.decEq RSA.Questions.Action.leave RSA.Questions.Action.leave = isTrue ⋯
Instances For
Equations
- RSA.Questions.instReprAction = { reprPrec := RSA.Questions.instReprAction.repr }
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Convert to Van Rooy's general DecisionProblem.
Equations
- d.toVanRooy = { utility := fun (w : RSA.Questions.World) (a : RSA.Questions.Action) => if d.goalSatisfied w a = true then 1 else 0, prior := d.prior }
Instances For
Equations
- RSA.Questions.PQDecisionProblem.ofVanRooy dp = { goalSatisfied := fun (w : RSA.Questions.World) (a : RSA.Questions.Action) => decide (dp.utility w a > 0), prior := dp.prior }
Instances For
V(D) = max_a EU(a) in the given world.
Equations
- RSA.Questions.dpValue d w actions = List.foldl max 0 (List.map (fun (a : RSA.Questions.Action) => if d.goalSatisfied w a = true then 1 else 0) actions)
Instances For
Expected value of a decision problem across worlds.
Equations
- One or more equations did not get rendered due to their size.
Instances For
V(D|C) = max_a EU(a|C) after learning response.
Equations
- RSA.Questions.dpValueAfterLearning d w actions = RSA.Questions.dpValue d w actions
Instances For
UV(C) = V(D|C) - V(D): utility value of information (Van Rooy).
Equations
- RSA.Questions.responseUtilityValue d w _valueBefore actions = RSA.Questions.dpValueAfterLearning d w actions - _valueBefore
Instances For
Information is never harmful.
EUV(Q) = Sigma_{q in Q} P(q) x UV(q) (@cite{van-rooy-2003} section 4.1).
Equations
- One or more equations did not get rendered due to their size.
Instances For
Simplified question utility for binary yes/no responses.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- RSA.Questions.instBEqPQDecisionProblem = { beq := fun (x x_1 : RSA.Questions.PQDecisionProblem) => true }
Uniform prior over decision problems.
Instances For
Equations
- RSA.Questions.dpWeightedPrior dps d = match List.find? (fun (x : RSA.Questions.PQDecisionProblem × ℚ) => x.1 == d) dps with | some (fst, p) => p | none => 0
Instances For
PRIOR-PQ uses binary utilities, specializing Van Rooy's continuous U.
Different DPs yield different question utilities, enabling ToM inference.
DP: find any satisfactory item (generates mention-some).
Equations
- One or more equations did not get rendered due to their size.
Instances For
DP: find the best item (discriminating response preferences).
Equations
- One or more equations did not get rendered due to their size.
Instances For
DP: find item in specific category (e.g., "I want a cold drink").
Equations
- One or more equations did not get rendered due to their size.