Inquisitive logic #
Inquisitive logic interprets formulas by support at information states, sets of possible worlds,
rather than by truth at worlds, so that questions and statements share one language: the
inquisitive disjunction φ \\/ ψ is supported by a state that supports either disjunct. The
propositional system InqB has ⊥, ∧, → and \\/ over atoms, and inquisitive modal logic adds
the modalities □ and ⊞, interpreted over a model that relates each world to a set of states.
This file develops basic results about support, including persistence, truth-conditionality, the
proposition a formula expresses, and the validities of the two modalities.
Main definitions #
Inquisitive.Model: a valuation and a map from worlds to sets of information states.Inquisitive.Formula: formulas with\\/,□and⊞; the modal-free ones (Inquisitive.Formula.IsModalFree) are those of InqB.Inquisitive.support: the lower set of states supporting a formula.Inquisitive.TruthConditional: the statements, whose support is truth at every world.Inquisitive.proposition: the proposition a formula expresses, as aQuestion.
Implementation notes #
The support of a modal-free formula depends only on the valuation
(Inquisitive.support_eq_of_isModalFree), so InqB is the modal-free fragment of the modal
language rather than a language of its own. States are finite sets of worlds.
References #
- I. Ciardelli, Inquisitive Logic: Consequence and Inference in the Realm of Questions (2022)
- I. Ciardelli, Modalities in the realm of questions: Axiomatizing inquisitive epistemic logic (2014)
- I. Ciardelli and F. Roelofsen, Inquisitive dynamic epistemic logic (2015)
- I. Ciardelli, J. Groenendijk and F. Roelofsen, Inquisitive Semantics (2018)
- A. Anttila, Expressive completeness in team semantics (2025)
Models (§8.3) #
An inquisitive model has a valuation and relates each world w to a set Σ(w) of
information states, under the epistemic reading the states in which the agent's issues are
settled.
- inq : W → Finset (Finset W)
inq wis the setΣ(w)of states related tow. - val : Atom → W → Prop
val p wsays that the atompis true at the worldw.
Instances For
A Kripke model as the inquisitive modal model relating each world to its single successor
state R[w] (§8.2).
Equations
- M.toInquisitive = { inq := fun (w : W) => {M.access w}, val := M.val }
Instances For
Syntax (Definition 3.2.1; §8.2, §8.3) #
A formula is built from atoms and ⊥ by ∧, →, inquisitive disjunction \\/ and the two
modalities.
- atom {Atom : Type u_3} (p : Atom) : Formula Atom
- bot {Atom : Type u_3} : Formula Atom
- conj {Atom : Type u_3} (φ ψ : Formula Atom) : Formula Atom
- impl {Atom : Type u_3} (φ ψ : Formula Atom) : Formula Atom
- inqDisj
{Atom : Type u_3}
(φ ψ : Formula Atom)
: Formula Atom
Inquisitive disjunction
φ \\/ ψ. - nec
{Atom : Type u_3}
(φ : Formula Atom)
: Formula Atom
The Kripke modality
□φ(§8.2). - ent
{Atom : Type u_3}
(φ : Formula Atom)
: Formula Atom
The properly inquisitive modality
⊞φ(§8.3), the entertain modality of [CR15].
Instances For
Equations
- Inquisitive.instReprFormula = { reprPrec := Inquisitive.instReprFormula.repr }
Equations
- One or more equations did not get rendered due to their size.
- Inquisitive.instReprFormula.repr Inquisitive.Formula.bot prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Inquisitive.Formula.bot")).group prec✝
Instances For
Equations
- One or more equations did not get rendered due to their size.
- Inquisitive.instDecidableEqFormula.decEq (Inquisitive.Formula.atom a) (Inquisitive.Formula.atom b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
- Inquisitive.instDecidableEqFormula.decEq (Inquisitive.Formula.atom p) Inquisitive.Formula.bot = isFalse ⋯
- Inquisitive.instDecidableEqFormula.decEq (Inquisitive.Formula.atom p) (φ.conj ψ) = isFalse ⋯
- Inquisitive.instDecidableEqFormula.decEq (Inquisitive.Formula.atom p) (φ.impl ψ) = isFalse ⋯
- Inquisitive.instDecidableEqFormula.decEq (Inquisitive.Formula.atom p) (φ.inqDisj ψ) = isFalse ⋯
- Inquisitive.instDecidableEqFormula.decEq (Inquisitive.Formula.atom p) φ.nec = isFalse ⋯
- Inquisitive.instDecidableEqFormula.decEq (Inquisitive.Formula.atom p) φ.ent = isFalse ⋯
- Inquisitive.instDecidableEqFormula.decEq Inquisitive.Formula.bot (Inquisitive.Formula.atom p) = isFalse ⋯
- Inquisitive.instDecidableEqFormula.decEq Inquisitive.Formula.bot Inquisitive.Formula.bot = isTrue ⋯
- Inquisitive.instDecidableEqFormula.decEq Inquisitive.Formula.bot (φ.conj ψ) = isFalse ⋯
- Inquisitive.instDecidableEqFormula.decEq Inquisitive.Formula.bot (φ.impl ψ) = isFalse ⋯
- Inquisitive.instDecidableEqFormula.decEq Inquisitive.Formula.bot (φ.inqDisj ψ) = isFalse ⋯
- Inquisitive.instDecidableEqFormula.decEq Inquisitive.Formula.bot φ.nec = isFalse ⋯
- Inquisitive.instDecidableEqFormula.decEq Inquisitive.Formula.bot φ.ent = isFalse ⋯
- Inquisitive.instDecidableEqFormula.decEq (φ.conj ψ) (Inquisitive.Formula.atom p) = isFalse ⋯
- Inquisitive.instDecidableEqFormula.decEq (φ.conj ψ) Inquisitive.Formula.bot = isFalse ⋯
- Inquisitive.instDecidableEqFormula.decEq (φ.conj ψ) (φ_1.impl ψ_1) = isFalse ⋯
- Inquisitive.instDecidableEqFormula.decEq (φ.conj ψ) (φ_1.inqDisj ψ_1) = isFalse ⋯
- Inquisitive.instDecidableEqFormula.decEq (φ.conj ψ) φ_1.nec = isFalse ⋯
- Inquisitive.instDecidableEqFormula.decEq (φ.conj ψ) φ_1.ent = isFalse ⋯
- Inquisitive.instDecidableEqFormula.decEq (φ.impl ψ) (Inquisitive.Formula.atom p) = isFalse ⋯
- Inquisitive.instDecidableEqFormula.decEq (φ.impl ψ) Inquisitive.Formula.bot = isFalse ⋯
- Inquisitive.instDecidableEqFormula.decEq (φ.impl ψ) (φ_1.conj ψ_1) = isFalse ⋯
- Inquisitive.instDecidableEqFormula.decEq (φ.impl ψ) (φ_1.inqDisj ψ_1) = isFalse ⋯
- Inquisitive.instDecidableEqFormula.decEq (φ.impl ψ) φ_1.nec = isFalse ⋯
- Inquisitive.instDecidableEqFormula.decEq (φ.impl ψ) φ_1.ent = isFalse ⋯
- Inquisitive.instDecidableEqFormula.decEq (φ.inqDisj ψ) (Inquisitive.Formula.atom p) = isFalse ⋯
- Inquisitive.instDecidableEqFormula.decEq (φ.inqDisj ψ) Inquisitive.Formula.bot = isFalse ⋯
- Inquisitive.instDecidableEqFormula.decEq (φ.inqDisj ψ) (φ_1.conj ψ_1) = isFalse ⋯
- Inquisitive.instDecidableEqFormula.decEq (φ.inqDisj ψ) (φ_1.impl ψ_1) = isFalse ⋯
- Inquisitive.instDecidableEqFormula.decEq (φ.inqDisj ψ) φ_1.nec = isFalse ⋯
- Inquisitive.instDecidableEqFormula.decEq (φ.inqDisj ψ) φ_1.ent = isFalse ⋯
- Inquisitive.instDecidableEqFormula.decEq φ.nec (Inquisitive.Formula.atom p) = isFalse ⋯
- Inquisitive.instDecidableEqFormula.decEq φ.nec Inquisitive.Formula.bot = isFalse ⋯
- Inquisitive.instDecidableEqFormula.decEq φ.nec (φ_1.conj ψ) = isFalse ⋯
- Inquisitive.instDecidableEqFormula.decEq φ.nec (φ_1.impl ψ) = isFalse ⋯
- Inquisitive.instDecidableEqFormula.decEq φ.nec (φ_1.inqDisj ψ) = isFalse ⋯
- Inquisitive.instDecidableEqFormula.decEq a.nec b.nec = if h : a = b then h ▸ have inst := Inquisitive.instDecidableEqFormula.decEq a a; isTrue ⋯ else isFalse ⋯
- Inquisitive.instDecidableEqFormula.decEq φ.nec φ_1.ent = isFalse ⋯
- Inquisitive.instDecidableEqFormula.decEq φ.ent (Inquisitive.Formula.atom p) = isFalse ⋯
- Inquisitive.instDecidableEqFormula.decEq φ.ent Inquisitive.Formula.bot = isFalse ⋯
- Inquisitive.instDecidableEqFormula.decEq φ.ent (φ_1.conj ψ) = isFalse ⋯
- Inquisitive.instDecidableEqFormula.decEq φ.ent (φ_1.impl ψ) = isFalse ⋯
- Inquisitive.instDecidableEqFormula.decEq φ.ent (φ_1.inqDisj ψ) = isFalse ⋯
- Inquisitive.instDecidableEqFormula.decEq φ.ent φ_1.nec = isFalse ⋯
- Inquisitive.instDecidableEqFormula.decEq a.ent b.ent = if h : a = b then h ▸ have inst := Inquisitive.instDecidableEqFormula.decEq a a; isTrue ⋯ else isFalse ⋯
Instances For
¬φ := φ → ⊥ (Definition 3.1.2).
Equations
- φ.neg = φ.impl Inquisitive.Formula.bot
Instances For
The modal-free formulas are those of the propositional system InqB (Definition 3.2.1).
Equations
- (Inquisitive.Formula.atom p).IsModalFree = True
- Inquisitive.Formula.bot.IsModalFree = True
- (φ.conj ψ).IsModalFree = (φ.IsModalFree ∧ ψ.IsModalFree)
- (φ.impl ψ).IsModalFree = (φ.IsModalFree ∧ ψ.IsModalFree)
- (φ.inqDisj ψ).IsModalFree = (φ.IsModalFree ∧ ψ.IsModalFree)
- φ.nec.IsModalFree = False
- φ.ent.IsModalFree = False
Instances For
The classical formulas, those without inquisitive disjunction (§3.1, §8.2).
Equations
- (Inquisitive.Formula.atom p).IsClassical = True
- Inquisitive.Formula.bot.IsClassical = True
- (φ.conj ψ).IsClassical = (φ.IsClassical ∧ ψ.IsClassical)
- (φ.impl ψ).IsClassical = (φ.IsClassical ∧ ψ.IsClassical)
- (φ.inqDisj ψ).IsClassical = False
- φ.nec.IsClassical = φ.IsClassical
- φ.ent.IsClassical = φ.IsClassical
Instances For
Support (Definitions 3.1.3 and 3.2.3; §8.2, §8.3) #
The support set of φ in M is the set of information states that settle it. Support is
persistent (Proposition 3.3.1), so the support set is a lower set of states, and conjunction,
implication and inquisitive disjunction are the operations ⊓, ⇨, ⊔ of the Heyting algebra
of lower sets ([CGR18]); ⊥ is supported by the empty state
alone.
Equations
- Inquisitive.support M (Inquisitive.Formula.atom p) = { carrier := Team.flat (M.val p), lower' := ⋯ }
- Inquisitive.support M Inquisitive.Formula.bot = LowerSet.Iic ∅
- Inquisitive.support M (φ.conj ψ) = Inquisitive.support M φ ⊓ Inquisitive.support M ψ
- Inquisitive.support M (φ.impl ψ) = Inquisitive.support M φ ⇨ Inquisitive.support M ψ
- Inquisitive.support M (φ.inqDisj ψ) = Inquisitive.support M φ ⊔ Inquisitive.support M ψ
- Inquisitive.support M φ.nec = { carrier := Team.nec M.access ↑(Inquisitive.support M φ), lower' := ⋯ }
- Inquisitive.support M φ.ent = { carrier := Team.flat fun (w : W) => ∀ t ∈ M.inq w, t ∈ Inquisitive.support M φ, lower' := ⋯ }
Instances For
Support is decidable over a finite set of worlds, by structural recursion.
Equations
- Inquisitive.decidableMemSupport M (Inquisitive.Formula.atom p) x✝ = decidable_of_iff (∀ w ∈ x✝, M.val p w) ⋯
- Inquisitive.decidableMemSupport M Inquisitive.Formula.bot x✝ = decidable_of_iff (x✝ = ∅) ⋯
- Inquisitive.decidableMemSupport M (φ.conj ψ) x✝ = decidable_of_iff (x✝ ∈ Inquisitive.support M φ ∧ x✝ ∈ Inquisitive.support M ψ) ⋯
- Inquisitive.decidableMemSupport M (φ.impl ψ) x✝ = decidable_of_iff (∀ t ⊆ x✝, t ∈ Inquisitive.support M φ → t ∈ Inquisitive.support M ψ) ⋯
- Inquisitive.decidableMemSupport M (φ.inqDisj ψ) x✝ = decidable_of_iff (x✝ ∈ Inquisitive.support M φ ∨ x✝ ∈ Inquisitive.support M ψ) ⋯
- Inquisitive.decidableMemSupport M φ.nec x✝ = decidable_of_iff (∀ w ∈ x✝, M.access w ∈ Inquisitive.support M φ) ⋯
- Inquisitive.decidableMemSupport M φ.ent x✝ = decidable_of_iff (∀ w ∈ x✝, ∀ t ∈ M.inq w, t ∈ Inquisitive.support M φ) ⋯
Instances For
The empty state (Proposition 3.3.1) #
Truth (Proposition 3.1.7) #
Truth-conditional formulas (§3.4) #
The truth set |φ|_M (§3.1) is the set of worlds at which φ is true, truth being support
at the singleton state.
Equations
- Inquisitive.truthSet M φ = {w : W | {w} ∈ Inquisitive.support M φ}
Instances For
φ is truth-conditional in M (Definitions 2.6.3 and 3.4.1) when a state supports it
iff it is true at each of its worlds: a statement rather than a question. This is flatness
(Team.IsFlat) of the support set.
Equations
- Inquisitive.TruthConditional M φ = Team.IsFlat ↑(Inquisitive.support M φ)
Instances For
An implication with a truth-conditional consequent is truth-conditional, whatever its antecedent (Proposition 3.4.7).
Every negation is truth-conditional (Proposition 3.4.8).
Classical formulas are truth-conditional (Proposition 3.1.8).
By the Ramsey test (Proposition 2.5.2), for a statement α, α → ψ is supported at s
iff ψ is supported at the α-worlds of s.
The proposition expressed (Proposition 3.3.1, §3.5) #
The inquisitive proposition [φ]_M expressed by φ is the support set as a Question,
carried from finite states to sets of worlds.
Equations
- Inquisitive.proposition M φ = Question.ofLowerSet ((fun (t : Finset W) => ↑t) '' ↑(Inquisitive.support M φ)) ⋯ ⋯
Instances For
Conjunction is the meet of propositions.
Inquisitive disjunction is the join.
Implication is the Heyting arrow.
⊥ is the bottom.
The truth set is the union of the proposition (Proposition 3.3.5).
On propositions, Definition 3.4.1 says that φ is a statement iff it expresses the
declarative proposition of its truth set.
¬¬φ expresses the non-inquisitive projection of [φ]_M, its double complement
(Proposition 3.4.9).
Modalities (§8.2, §8.3) #
Two statements that agree at every world have the same support.
On a Kripke model ⊞ is □, the only related state being R[w] (§8.2).
The closure cell #
Inquisitive disjunction breaks union closure. With p true only at w₁ and q only at
w₂, the singletons support p \\/ q but their union supports neither disjunct.
Inquisitive modal logic is sound for the downward-closed, empty-team cell of [Ant25]'s programme, which it shares with dependence logic.