Questions as inquisitive contents #
A Question W is a non-empty downward-closed family of information states over W, the states
that resolve an inquisitive proposition ([CGR18],
[Cia22]). Hamblin sets (Hamblin.lean) and partition questions
(Partition/Inquisitive.lean) embed into it. Ordered by inclusion, questions form a complete
distributive lattice ([Pun19]) whose meet is conjunction and whose join is inquisitive
disjunction; it is Heyting but not Boolean.
Main definitions #
Question.alt,Question.info: the alternatives, the maximal resolving states, and the informative content.Question.IsInformative,Question.IsInquisitive.Question.ofSet p: the declarative ofp, the principal ideal belowp.Question.query P: the non-informative projection?P.Question.relativeTo Q C:Qrelative to a context ([Rob12]).Question.IsNormal,Question.FG: questions generated by their alternatives, and by finitely many states.
Main statements #
Question.gc_info_ofSet,Question.infoHom:infois left adjoint toofSetand a complete lattice homomorphism.Question.IsNormal.eq_iSup_ofSet_alt: the resolutions theorem, a normal question is the join of the declaratives of its alternatives.Question.fg_iff_finite_alt_and_isNormal: finite generation is finitely many alternatives plus normality.Question.compl_eq,Question.compl_compl_inf_query: the pseudo-complement is the declarative of the complemented informative content, and every content is the meet of its non-inquisitive and non-informative projections.Question.ofSet_sup_compl_ne_top,Question.ofSet_sup_ofSet_ne: excluded middle fails, andofSetdoes not preserve joins.
Implementation notes #
Question W is a bundled structure with a SetLike instance rather than a LowerSet (Set W)
because the bottom elements differ: the bottom question is {∅}, resolved only by the
inconsistent state, while the bottom lower set is empty. Generators are stated against
lowerClosure on the coercion (isNormal_iff_coe_eq_lowerClosure). The distributive lattice is
registered through CompleteDistribLattice.ofMinimalAxioms.
References #
A question is a non-empty downward-closed family of information states over W, the states
that resolve it.
- props : Set (Set W)
The set of propositions resolving the issue.
- contains_empty : ∅ ∈ self.props
Contains the empty proposition (= the inconsistent information state). Equivalent to non-emptiness given downward closure.
A state included in a resolving state resolves the question.
Instances For
A question coerces to its set of resolving states.
Equations
- Question.instSetLikeSet = { coe := Question.props, coe_injective := ⋯ }
An alternative is in particular a resolving state.
A sentence is informative iff its informative content excludes at least one possible world.
Equations
- P.IsInformative = (P.info ≠ Set.univ)
Instances For
A content's own informative content resolves it iff it is not
inquisitive — the condition declarative sentences satisfy; props
is then a principal ideal ([Pun19]), see
info_mem_iff_eq_ofSet_info.
A world lies in the informative content of a question iff its singleton resolves the question, so truth at a world is support by the singleton state.
A resolving state lies within the informative content.
Constructors #
Smart constructor from a lower (downward-closed) family of
information states containing ∅. Packages the two Question
obligations in mathlib's IsLowerSet vocabulary, so a caller holding
a persistence proof (IsLowerSet) and an empty-state witness builds
the Question directly instead of re-deriving downward_closed
inline.
Equations
- Question.ofLowerSet s empty_mem lower = { props := s, contains_empty := empty_mem, downward_closed := ⋯ }
Instances For
The resolving states of a question form a lower set, the inverse of ofLowerSet.
The declarative of p is resolved by the states included in p, the principal ideal below
p, as Filter.principal is the principal filter.
Equations
- Question.ofSet p = { props := {q : Set W | q ⊆ p}, contains_empty := ⋯, downward_closed := ⋯ }
Instances For
Basic theorems on ofSet #
The lattice of questions #
Ordered by inclusion of resolving states, questions form a complete distributive lattice
([Pun19]): a state resolves P ⊓ Q iff it resolves both, and the inquisitive disjunction
P ⊔ Q iff it resolves either; every state resolves ⊤ and only ∅ resolves ⊥. A join adjoins
∅, so that the join of the empty family is ⊥. Implication and negation are the Heyting ⇨ and
ᶜ.
Equations
- One or more equations did not get rendered due to their size.
Meets distribute over joins and joins over meets, since intersection and union of the underlying families of states do.
Equations
- Question.instCompleteDistribLattice = CompleteDistribLattice.ofMinimalAxioms ⋯
The non-informative projection #
The non-informative projection ?P keeps the issue of P and trivializes its informative
content by admitting the states within its complement ([CGR18]).
The non-inquisitive projection !P is the double complement Pᶜᶜ (compl_compl_eq).
The non-informative projection ?P adds to P the states within the complement of its
informative content.
Equations
- P.query = P ⊔ Question.ofSet P.infoᶜ
Instances For
?P raises a genuine issue unless P is a tautology or a contradiction.
Two contents are disjoint iff the inconsistent state is the only state they share.
A content is the tautology iff it contains the universal state ([CGR18]).
A state resolves P ⇨ Q iff every substate resolving P resolves Q.
The question Q relative to a context C is resolved by the states that resolve Q once
cut down to C; it is the Heyting implication ofSet C ⇨ Q.
Equations
- Q.relativeTo C = Question.ofSet C ⇨ Q
Instances For
A state resolves an indexed join iff it is empty or resolves some member.
Membership in a bounded indexed iSup. Used pervasively for
Hamblin-style wh-question alternatives (which) and for any
⨆ i ∈ I, ofSet (P i) construction.
Equations
- Question.instInhabited = { default := ⊤ }
Basic API for info on the lattice operations #
info is a monotone map from (Question W, ≤) to (Set W, ⊆) commuting with
⊔, ⊓, ⊥ and ⊤, and indeed with arbitrary joins and meets: it is a complete
lattice homomorphism (infoHom). Meets need no inquisitiveness assumption, since
singleton states witness the informative content.
The adjunction is a Galois insertion, since info (ofSet p) = p.
Equations
- Question.gi_info_ofSet = ⋯.toGaloisInsertion ⋯
Instances For
info as a complete lattice homomorphism into the classical propositions.
Equations
- Question.infoHom = { toFun := Question.info, map_sInf' := ⋯, map_sSup' := ⋯ }
Instances For
alt API and inquisitivity from alternatives #
The alt (alternatives) selector picks out maximal propositions in
P.props. Two basic facts: alternatives are propositions, and the
union of alternatives is contained in info P (equality requires
finite-W or other guarantees that maximals exist —
[CGR18] discusses the limit case
where no maximal element exists). The two-alternatives criterion
gives a sufficient condition for inquisitivity that does not depend
on finiteness.
Unfolded membership in alt. Not the simp normal form —
mem_alt_iff_maximal is preferred because it connects to mathlib's
Maximal API. Use this lemma when destructuring is more convenient
than going through Maximal.
The alternatives of P form an antichain under ⊆: no alternative
is properly contained in another.
An alt of P that is not contained in any strictly larger alt of
Q survives in alt (P ⊔ Q). The convenient direction for
constructing alts of an inquisitive disjunction.
An alt of Q that is not contained in any strictly larger alt of
P survives in alt (P ⊔ Q). Mirror of mem_alt_sup_of_alt_left.
p is the alternative of the content it generates.
The unique alternative of ⊤ is Set.univ.
Normal questions #
A question is normal when its alternatives generate it: every resolving state is included
in an alternative, so that the resolving states are the lower closure of the alternatives
([Cia22]). An antichain generating a question is then its set of alternatives, and a
question has such a basis exactly when it is normal. Finitely many resolving states suffice
(isNormal_of_finite), declaratives are normal, and so is the inquisitive disjunction of two
normal questions; but normality fails in general: on an infinite W the finite states form a
question with no alternatives at all, although its informative content is all of W.
Alias of the forward direction of Question.isNormal_iff_coe_eq_lowerClosure.
A question is normal iff its resolving states are the lower closure of its alternatives.
An antichain generating P is its set of alternatives: the alternatives of a normal
question are its unique basis ([Cia22]).
A question generated by an antichain is normal, so that a question has a basis exactly when it is normal ([Cia22]).
A declarative is normal: its one alternative covers it.
Questions generated by a family of states #
The join ⨆ a ∈ S, ofSet a of the declaratives of a family S is the question S
generates: a state resolves it iff it is included in a member of S, or is ∅, the one
state resolving the join ⊥ of the empty family. Every Hamblin construction has this form
(which, polar, fromSetoid), and an antichain generating a question is its set of
alternatives, so their alternatives are computed once here. A finite family generates a normal
question whose alternatives are among its members, and the meet of two generated questions is
generated by the pairwise intersections, so finitely generated questions are closed under the
connectives.
A nonempty family generates the join of its declaratives.
The join of the declaratives of a family entails exactly the questions every member resolves.
The alternatives of the join of the declaratives of a nonempty antichain are its members.
A state resolves the join of the declaratives of a family iff it is ∅ or lies in a
member.
The alternatives of the join of the declaratives of a family lie in the family, or are ∅
when the family is empty.
The declaratives of a finite family generate a normal question.
The resolutions theorem #
A normal question is the join of the declaratives of its alternatives, the inquisitive analogue
of disjunctive normal form. Off normal questions only the inequality
⨆ p ∈ alt P, ofSet p ≤ P holds.
Finitely generated questions #
A question is finitely generated when it is the join of the declaratives of finitely many
states, cf. Submodule.FG.
Equations
- P.FG = ∃ (S : Set (Set W)), S.Finite ∧ ⨆ a ∈ S, Question.ofSet a = P
Instances For
Principal-ideal characterization of declaratives #
[Pun19]: ofSet propositions are, algebraically
speaking, principal ideals in the algebra of information states. We
make this characterization explicit: P is declarative iff P is the
principal ideal generated by info P. We also prove the equivalent
characterization via alternatives: P is declarative iff
alt P = {info P}.
A normal content has a single alternative iff it is declarative: its alternatives
generate it, so a lone alternative is its informative content. Normality is needed, since
over an infinite W a content can have one alternative and resolving states beyond it.
Heyting derivatives #
The pseudo-complement of a question is the declarative of the complement of its informative
content (compl_eq). From this identity follow the operators of
[CGR18] and [Pun19]: the non-inquisitive projection
!P = Pᶜᶜ = ofSet (info P) (compl_compl_eq), whose fixed points, the non-inquisitive contents,
are the regular elements (isRegular_iff_not_isInquisitive); the non-informative projection
?P = P ⊔ Pᶜ (query_eq_sup_compl); and the division law !P ⊓ ?P = P
(compl_compl_inf_query).
A complement is never inquisitive.
The non-inquisitive contents are the regular elements of the Heyting algebra of contents, the fixed points of the non-inquisitive projection.
Excluded middle fails #
The lattice is Heyting but not Boolean: the join of a declarative and its complement is a polar
question, inquisitive unless the declarative is the tautology or the contradiction, and so not
⊤.
The join of two incomparable declaratives is inquisitive.
The declarative embedding #
The classical propositions embed into the questions through ofSet, [Cia22]'s
truth-support bridge, by which a statement names the information type generated by its
truth set. The embedding is order-faithful (ofSetEmbedding) and preserves meets and ⊤
(ofSetHom) but not joins (ofSet_sup_ofSet_ne): inquisitive content enters at ⊔. The
context sets of Discourse/CommonGround.lean are the declarative fragment along this
embedding.
The coercion of ofSet p is the interval Set.Iic p.
Declaratives are disjoint exactly when their informative contents are.
ofSet is an order embedding of the propositions into the questions.
Equations
- Question.ofSetEmbedding = { toFun := Question.ofSet, inj' := ⋯, map_rel_iff' := ⋯ }
Instances For
ofSet preserves meets and ⊤, but not joins (ofSet_sup_ofSet_ne).
Equations
- Question.ofSetHom = { toFun := Question.ofSet, map_inf' := ⋯, map_top' := ⋯ }