Documentation

Linglib.Theories.Semantics.Questions.Partition

Questions/Partition.lean #

@cite{groenendijk-stokhof-1984}

@cite{groenendijk-stokhof-1984} @cite{groenendijk-stokhof-1997} Partition Semantics for Questions.

Core Ideas #

A question denotes an equivalence relation on worlds:

⟦?x.P(x)⟧ = λw.λv. [λx.P(w)(x) = λx.P(v)(x)]

Two worlds are equivalent iff the predicate has the same extension in both. This induces a partition of logical space.

Architecture #

GSQuestion is an abbreviation for QUD. All partition lattice operations (refinement, coarsening, cells) are defined in Core/Partition.lean and apply to any equivalence-relation partition, not just question denotations.

This module provides question-specific constructors and interpretation.

@[reducible, inline]

A G&S-style question is exactly a QUD: an equivalence relation on worlds.

Two worlds are equivalent iff they give the same answer to the question. This induces a partition of the world space.

Equations
Instances For
    @[reducible, inline]
    abbrev Semantics.Questions.GSQuestion.equiv {W : Type u_1} (q : GSQuestion W) :
    WWBool

    Compatibility accessor: equiv is the same as sameAnswer.

    Equations
    Instances For
      Equations
      • One or more equations did not get rendered due to their size.
      Instances For

        The finest possible partition (identity). Each world is its own equivalence class. This is the "maximally informative" question.

        Equations
        Instances For

          The coarsest partition (all worlds equivalent). Conveys no information. This is the "tautological" question (always answered "yes").

          Equations
          Instances For
            def Semantics.Questions.GSQuestion.ofProject {W : Type u_1} {A : Type} [BEq A] [LawfulBEq A] (f : WA) :

            Build a question from a projection function. Two worlds are equivalent iff they have the same value under projection.

            Example: ofProject (λ w => w.weather) asks "What's the weather?"

            Equations
            Instances For

              Build a question from a Boolean predicate (polar question). Partitions into {yes-worlds} and {no-worlds}.

              Equations
              Instances For

                Convert to the general Question type (list of characteristic functions).

                Equations
                Instances For

                  Convert to a Core.QUD (identity since GSQuestion = QUD).

                  Equations
                  Instances For

                    Convert from a QUD (identity since GSQuestion = QUD).

                    Equations
                    Instances For

                      A yes/no (polar) question: partitions into {yes-worlds} and {no-worlds}.

                      Example: "Is it raining?" partitions worlds into rainy and not-rainy.

                      Equations
                      Instances For

                        A polar question is equivalent to projecting onto Bool.

                        def Semantics.Questions.whQuestion {W A : Type} [BEq A] [LawfulBEq A] (f : WA) :

                        A wh-question asks for the value of some function.

                        Example: "Who came?" = ofProject (λ w => w.guests) Two worlds are equivalent iff they have the same set of guests.

                        Equations
                        Instances For

                          An alternative question: which of these propositions is true?

                          Example: "Did John or Mary come?"

                          Equations
                          Instances For

                            A question demands exhaustive answers if its semantics requires knowing exactly which cell the actual world is.

                            This is the default for G&S semantics — all questions are exhaustive.

                            Equations
                            Instances For
                              theorem Semantics.Questions.polar_exhaustive {W : Type u_1} (p : WBool) (w : W) :

                              The exhaustive interpretation of a polar question is complete: answering requires saying "yes" or "no", not "I don't know".

                              @[reducible, inline]
                              abbrev Semantics.Questions.InfoSet (W : Type u_1) :
                              Type u_1

                              An information set J ⊆ I represents what the questioner knows. J is the set of indices compatible with the questioner's factual knowledge.

                              @cite{groenendijk-stokhof-1984}, p. 350: "One may argue that using an information set to represent the questioner's informational state involves idealizations. [...] We think these idealizations are harmless."

                              Equations
                              Instances For

                                The total information set (no factual knowledge).

                                Equations
                                Instances For
                                  def Semantics.Questions.InfoSet.contains {W : Type u_1} (j : InfoSet W) (w : W) :

                                  Check if a world is in the information set.

                                  Equations
                                  Instances For
                                    def Semantics.Questions.InfoSet.intersect {W : Type u_1} (j : InfoSet W) (p : WBool) :
                                    WBool

                                    Intersection of a proposition with an information set.

                                    Equations
                                    Instances For
                                      def Semantics.Questions.GSQuestion.restrictedCells {W : Type u_1} (q : GSQuestion W) (j : InfoSet W) (worlds : List W) :
                                      List (WBool)

                                      The restricted cells as a list of characteristic functions.

                                      These are the cells of the partition J/Q: each cell P' is some P ∩ J where P is a cell of I/Q and P ∩ J ≠ ∅.

                                      Moved from PragmaticAnswerhood: this is a general partition operation useful beyond pragmatic answerhood (e.g., for computing pragmatic exhaustivity, or for the GSQuestion↔Issue bridge).

                                      Equations
                                      • One or more equations did not get rendered due to their size.
                                      Instances For
                                        theorem Semantics.Questions.foldl_reps_mem {W : Type u_1} (equiv : WWBool) (l init : List W) (r : W) :
                                        r List.foldl (fun (acc : List W) (w : W) => if (acc.any fun (r : W) => equiv r w) = true then acc else w :: acc) init lr init r l

                                        Elements of the foldl-built representative list come from the input list.

                                        theorem Semantics.Questions.restrictedCells_cover {W : Type u_1} (q : GSQuestion W) (j : InfoSet W) (worlds : List W) (w : W) (hw : w List.filter j worlds) :
                                        cellq.restrictedCells j worlds, cell w = true

                                        Every J-world is Q-equivalent to some representative in restrictedCells.

                                        This is the covering property: the foldl in restrictedCells produces reps such that every input element is equivalent to some rep.

                                        theorem Semantics.Questions.restrictedCells_inhabited {W : Type u_1} (q : GSQuestion W) (j : InfoSet W) (worlds : List W) (cell : WBool) :
                                        cell q.restrictedCells j worldswworlds, cell w = true

                                        Every cell produced by restrictedCells has a witness in worlds.