Documentation

Linglib.Core.Semantics.CommonGround

Common Ground #

@cite{stalnaker-1974} @cite{stalnaker-2002}

Framework-agnostic context management following @cite{stalnaker-1974}: context sets, common ground as proposition lists, and decidable variants.

Multi-agent epistemic operators (knowledge, belief, common knowledge) are in Theories/Semantics/Modality/EpistemicLogic.lean.

A context set is a predicate on worlds compatible with the common ground.

Equations
Instances For

    The trivial context: all worlds possible.

    Equations
    Instances For

      The absurd context: no worlds possible.

      Equations
      Instances For
        def Core.CommonGround.ContextSet.mem {W : Type u_1} (c : ContextSet W) (w : W) :

        A world is in the context set.

        Equations
        Instances For

          The context set is non-empty.

          Equations
          Instances For

            A context entails a proposition iff it holds at all worlds in the context.

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

                A proposition is compatible with a context if it holds at some world.

                Equations
                Instances For
                  theorem Core.CommonGround.ContextSet.trivial_entails_iff {W : Type u_1} (p : BProp W) :
                  (trivial p) ∀ (w : W), p w = true

                  Trivial context entails only tautologies.

                  Absurd context entails everything.

                  Update a context with a proposition: keep only worlds where it holds.

                  Equations
                  Instances For
                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      theorem Core.CommonGround.ContextSet.update_restricts {W : Type u_1} (c : ContextSet W) (p : BProp W) (w : W) :
                      c.update p wc w

                      Update restricts the context.

                      Updated context entails the update proposition.

                      theorem Core.CommonGround.ContextSet.update_entailed {W : Type u_1} (c : ContextSet W) (p : BProp W) (h : c p) :
                      c.update p = c

                      Updating with what's already entailed doesn't change the context.

                      theorem Core.CommonGround.ContextSet.update_assoc {W : Type u_1} (c : ContextSet W) (p q : BProp W) :
                      (c.update p).update q = fun (w : W) => c w p w = true q w = true

                      Sequential updates are associative.

                      Intersection of contexts: worlds in both.

                      Equations
                      Instances For

                        Union of contexts: worlds in either.

                        Equations
                        Instances For

                          Create a context from a single proposition: worlds where it holds.

                          Equations
                          Instances For

                            Updating trivial context with P gives context from P.

                            theorem Core.CommonGround.ContextSet.entails_mono {W : Type u_1} (c₁ c₂ : ContextSet W) (p : BProp W) (h_sub : ∀ (w : W), c₁ wc₂ w) (h_ent : c₂ p) :
                            c₁ p

                            Entailment is monotonic: smaller context entails more.

                            theorem Core.CommonGround.ContextSet.update_mono {W : Type u_1} (c₁ c₂ : ContextSet W) (p : BProp W) (h : ∀ (w : W), c₁ wc₂ w) (w : W) :
                            c₁.update p wc₂.update p w

                            Update is monotonic in the context.

                            structure Core.CommonGround.CG (W : Type u_1) :
                            Type u_1

                            Common ground as a set of mutually believed propositions.

                            • propositions : List (BProp W)

                              The propositions in the common ground

                            Instances For

                              The context set determined by a common ground.

                              Equations
                              Instances For
                                def Core.CommonGround.CG.add {W : Type u_1} (cg : CG W) (p : BProp W) :
                                CG W

                                Add a proposition to the common ground.

                                Equations
                                Instances For

                                  Empty common ground (no shared beliefs).

                                  Equations
                                  Instances For

                                    Empty CG gives trivial context set.

                                    theorem Core.CommonGround.CG.add_restricts {W : Type u_1} (cg : CG W) (p : BProp W) (w : W) :
                                    (cg.add p).contextSet wcg.contextSet w

                                    Adding a proposition restricts the context set.

                                    @[reducible, inline]

                                    Decidable context set: all worlds compatible with common knowledge. Mirrors ContextSet but uses Bool instead of Prop, enabling computation.

                                    Equations
                                    Instances For

                                      Coerce a decidable context set to its classical (Prop-valued) counterpart.

                                      Equations
                                      Instances For

                                        The trivial context: all worlds possible.

                                        Equations
                                        Instances For

                                          The absurd context: no worlds possible.

                                          Equations
                                          Instances For

                                            Update a decidable context with a decidable proposition.

                                            Equations
                                            Instances For

                                              Filter a list of worlds to those compatible with the context.

                                              Equations
                                              Instances For
                                                def Core.CommonGround.BContextSet.entails {W : Type u_1} (c : BContextSet W) (worlds : List W) (p : WBool) :

                                                Decidable entailment: p holds at all context-compatible worlds.

                                                Equations
                                                Instances For

                                                  Trivial context set coerces to classical trivial.

                                                  Update corresponds to classical update under coercion.

                                                  HasContextSet: Uniform Access to Context Sets #

                                                  @cite{ginzburg-2012} @cite{stalnaker-2002} @cite{krifka-2015}

                                                  Common ground appears in many guises across discourse theories: CG W (@cite{stalnaker-2002}), CommitmentSlate W (@cite{krifka-2015}), CommitmentSpace W (commitment trees), DistributionalCG W (probabilistic), DGB (dialogue gameboard FACTS), and InfoState (TTR gameboard). All of these induce a context set — the set of worlds compatible with accumulated information.

                                                  HasContextSet provides uniform extraction, enabling framework-agnostic discourse operations and bridge theorems connecting the representations.

                                                  class Core.CommonGround.HasContextSet (S : Type u_1) (W : outParam (Type u_2)) :
                                                  Type (max u_1 u_2)

                                                  A discourse state from which a context set can be extracted.

                                                  Every discourse state representation (Stalnaker CG, Krifka commitment spaces, Ginzburg DGB, distributional CG, TTR gameboard) projects to a context set: the worlds compatible with the state's accumulated information.

                                                  Instances
                                                    def Core.CommonGround.HasContextSet.entails {S : Type u_1} {W : Type u_2} [HasContextSet S W] (s : S) (p : BProp W) :

                                                    A discourse state entails a proposition if the context set does.

                                                    Equations
                                                    Instances For
                                                      def Core.CommonGround.HasContextSet.updateCS {S : Type u_1} {W : Type u_2} [HasContextSet S W] (s : S) (p : BProp W) :

                                                      Updating a discourse state's context set with a proposition.

                                                      Equations
                                                      Instances For
                                                        theorem Core.CommonGround.HasContextSet.entails_eq {S : Type u_1} {W : Type u_2} [HasContextSet S W] (s : S) (p : BProp W) :

                                                        Entailment via HasContextSet reduces to ContextSet.entails.

                                                        The CG instance agrees with CG.contextSet.

                                                        Adding to CG restricts the HasContextSet extraction.