Documentation

Linglib.Theories.Semantics.Modality.Kernel

Kernel Semantics for Epistemic Modals #

@cite{von-fintel-gillies-2010} @cite{von-fintel-gillies-2021}

@cite{von-fintel-gillies-2010} kernel semantics. Epistemic modals carry an evidential presupposition that the prejacent is not directly settled by the kernel K ⊆ B_K. The central result (entailment_settling_gap) is that B_K can entail φ without K directly settling it, making the presupposition non-trivial.

The 2021 paper extends the analysis to can't, exposing a dilemma for the weakness Mantra: no assignment of force to can't simultaneously explains its evidential distribution (Observation 4) and its incompatibility with it's possible (Observation 5). Kernel semantics resolves this because can't φ = must(¬φ) is simultaneously strong and evidentially constrained.

Helpers #

Kernel structure (@cite{von-fintel-gillies-2010} Def 4) #

structure Semantics.Modality.Kernel (W : Type u_2) :
Type u_2

A kernel: a set of direct-information propositions with B_K = ⋂K.

  • props : List (WProp)
Instances For
    def Semantics.Modality.Kernel.base {W : Type u_1} (k : Kernel W) :
    Set W

    B_K = ⋂K.

    Equations
    Instances For

      Convert to a context-independent modal base.

      Equations
      Instances For

        Consistency: B_K ≠ ∅.

        Equations
        Instances For
          def Semantics.Modality.Kernel.followsFrom {W : Type u_1} (k : Kernel W) (φ : WProp) :

          φ follows from K iff B_K ⊆ ⟦φ⟧.

          Equations
          Instances For
            def Semantics.Modality.Kernel.compatibleWith {W : Type u_1} (k : Kernel W) (φ : WProp) :

            φ is compatible with K iff B_K ∩ ⟦φ⟧ ≠ ∅.

            Equations
            Instances For

              Induce an EpistemicFlavor for Kratzer modal evaluation.

              Equations
              Instances For
                @[reducible, inline]

                World-dependent kernel assignment K^c(w).

                Equations
                Instances For

                  Convert to a Kratzer modal base.

                  Equations
                  Instances For

                    Settling (@cite{von-fintel-gillies-2010} Def 5) #

                    def Semantics.Modality.directlySettlesExplicit {W : Type u_1} (k : Kernel W) (φ : WProp) :

                    K directly settles P iff some X ∈ K entails P or is incompatible with P (Implementation 1).

                    Equations
                    Instances For
                      noncomputable def Semantics.Modality.refine {W : Type u_1} (partition : List (List W)) (φ : WProp) :
                      List (List W)

                      Refine a partition along φ-boundaries (@cite{von-fintel-gillies-2010} subject matter).

                      Uses Classical.propDecidable internally so the signature can be W → Prop without a [DecidablePred] constraint that would interfere with List.foldl.

                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        noncomputable def Semantics.Modality.kernelPartition {W : Type u_1} [Fintype W] (k : Kernel W) :
                        List (List W)

                        The partition S_K generated by K (@cite{von-fintel-gillies-2010} Def 7). Requires [Fintype W] to enumerate the starting universe.

                        Equations
                        Instances For
                          def Semantics.Modality.settlesByPartition {W : Type u_1} [Fintype W] (k : Kernel W) (φ : WProp) :

                          K settles P via partition iff P is a union of cells in S_K (Implementation 2).

                          Equations
                          Instances For
                            theorem Semantics.Modality.explicit_implies_entailment {W : Type u_1} (k : Kernel W) (φ : WProp) (h : directlySettlesExplicit k φ) :
                            k.followsFrom φ k.followsFrom fun (w : W) => ¬φ w

                            What both implementations share: settling implies entailment. If K directly settles φ (Implementation 1), then B_K ⊆ ⟦φ⟧ or B_K ⊆ ⟦¬φ⟧. If X ∈ K entails φ then B_K ⊆ X ⊆ ⟦φ⟧; if X excludes φ then B_K ⊆ X ⊆ ⟦¬φ⟧.

                            theorem Semantics.Modality.partition_implies_entailment {W : Type u_1} [Fintype W] (k : Kernel W) (φ : WProp) (h : settlesByPartition k φ) :
                            k.followsFrom φ k.followsFrom fun (w : W) => ¬φ w

                            Partition settling implies entailment: if S_K settles φ then B_K ⊆ ⟦φ⟧ or B_K ⊆ ⟦¬φ⟧. All worlds in B_K agree on every X ∈ K (they all satisfy every X), so they occupy a single cell of S_K. If that cell is φ-uniform, B_K inherits the uniformity.

                            ⟦must φ⟧: presupposes K doesn't settle φ; asserts B_K ⊆ ⟦φ⟧.

                            Equations
                            Instances For

                              ⟦might φ⟧: presupposes K doesn't settle φ; asserts B_K ∩ ⟦φ⟧ ≠ ∅.

                              Equations
                              Instances For

                                ⟦can't φ⟧ = must(¬φ).

                                Equations
                                Instances For

                                  W-dependent ⟦must φ⟧.

                                  Equations
                                  Instances For

                                    W-dependent ⟦might φ⟧.

                                    Equations
                                    Instances For

                                      Core properties #

                                      theorem Semantics.Modality.must_is_strong {W : Type u_1} (k : Kernel W) (φ : WProp) (w : W) (_hDef : (kernelMust k φ).presup w) :

                                      Must is strong: when defined, must φ ↔ universal necessity over B_K.

                                      theorem Semantics.Modality.must_entails_prejacent {W : Type u_1} (k : Kernel W) (φ : WProp) (w : W) (hReal : w k.base) (_hDef : (kernelMust k φ).presup w) (hTrue : (kernelMust k φ).assertion w) :
                                      φ w

                                      T axiom: must φ entails φ when B_K is realistic (w ∈ B_K).

                                      theorem Semantics.Modality.kernel_duality {W : Type u_1} (k : Kernel W) (φ : WProp) (w : W) :
                                      (kernelMight k φ).assertion w ¬(kernelMust k fun (w' : W) => ¬φ w').assertion w

                                      Duality: might φ ↔ ¬(must ¬φ) in assertion content.

                                      theorem Semantics.Modality.empty_kernel_always_defined {W : Type u_1} (φ : WProp) (w : W) :
                                      (kernelMust { props := [] } φ).presup w

                                      Empty kernel: nothing is settled, so must is always defined.

                                      Bridge to Kratzer.lean #

                                      Kernel must assertion ↔ Kratzer simple necessity.

                                      Kernel must assertion ↔ full Kratzer necessity with empty ordering.

                                      Kernel must assertion ↔ Kratzer necessity evaluated via EpistemicFlavor.

                                      This bridges the kernel (@cite{von-fintel-gillies-2010}) to Kratzer's parametric semantics: kernel must is exactly Kratzer necessity with the kernel's epistemic flavor.

                                      W-dependent kernel must ↔ world-dependent Kratzer necessity.

                                      Mastermind example (@cite{von-fintel-gillies-2010} pp. 365–366) #

                                      w0 = red, w1 = blue, w2 = green, w3 = unknown. K = {redOrBlue, notRed}, B_K = {w1}.

                                      The example uses a local 4-element World to keep the propositional layout readable; the abstract theory above is generic over any W : Type*.

                                      4-world type used by the Mastermind and Raincoat examples. Public so consumers can refer to the same toy type when reusing these examples (e.g., the Zheng 2025 study file consumes raincoatK).

                                      Instances For
                                        @[implicit_reducible]
                                        Equations
                                        def Semantics.Modality.instReprWorld.repr :
                                        WorldStd.Format
                                        Equations
                                        • One or more equations did not get rendered due to their size.
                                        Instances For
                                          @[implicit_reducible]
                                          Equations
                                          • One or more equations did not get rendered due to their size.

                                          Non-equivalence of the two implementations (@cite{von-fintel-gillies-2010} §7, p. 379) #

                                          The explicit and partition-based implementations of "directly settles" are non-equivalent. Implementation 1 settles supersets of K-propositions that Implementation 2 misses; Implementation 2 settles propositions determined jointly by K-propositions that no single proposition settles. Both, however, imply entailment (see explicit_implies_entailment and partition_implies_entailment above).

                                          Counterexample (Impl 1 ↛ Impl 2): K = {red}, φ = redOrBlue. red ⊆ redOrBlue so Impl 1 settles, but S_K = {{w0},{w1,w2,w3}} and the cell {w1,w2,w3} straddles redOrBlue. We refute settlesByPartition by showing .w1 and .w2 are co-located in S_K (they agree on red — both are not-red — so co-location is preserved by foldl_refine_preserves_colocated) yet disagree on redOrBlue.

                                          Counterexample (Impl 2 ↛ Impl 1): K = mastermindK, φ = blue. No single X ∈ K entails or excludes blue, but S_K = {{w0},{w1},{w2,w3}} resolves blue into a union of cells. Each cell is {redOrBlue, notRed}- uniform (by kernelPartition_cells_uniform); since blue w ↔ redOrBlue w ∧ notRed w for every world, cells are blue-uniform.

                                          Entailment does not imply partition settling: B_K ⊆ ⟦φ⟧ does not guarantee S_K settles φ. Same witness as explicit_not_implies_partition: K = {red} entails redOrBlue (B_K = {w0} ⊆ ⟦redOrBlue⟧) but the partition cell {w1,w2,w3} straddles redOrBlue.

                                          TODO: partition-side proof deferred.

                                          Deep theorems (@cite{von-fintel-gillies-2010}) #

                                          Entailment-settling gap: B_K can entail φ without K settling it. This gap makes the evidential presupposition non-trivial: must φ can be simultaneously defined and true.

                                          theorem Semantics.Modality.modus_ponens_with_must {W : Type u_1} (k : Kernel W) (φ ψ : WProp) (w : W) (hReal : w k.base) (_hDef : (kernelMust k ψ).presup w) (hCond : φ w(kernelMust k ψ).assertion w) (hPhi : φ w) :
                                          ψ w

                                          Modus ponens with must (@cite{von-fintel-gillies-2010} Arg 4.3.1): the argument form "if φ, must ψ; φ; ∴ ψ" is valid under realistic B_K.

                                          theorem Semantics.Modality.must_perhaps_contradiction {W : Type u_1} (k : Kernel W) (φ : WProp) (w : W) (_hDef : (kernelMust k φ).presup w) (hMust : (kernelMust k φ).assertion w) :
                                          ¬(kernelMight k fun (w' : W) => ¬φ w').assertion w

                                          Must-perhaps contradiction (@cite{von-fintel-gillies-2010} Arg 4.3.2): must φ ∧ might ¬φ is contradictory. When B_K ⊆ ⟦φ⟧, we have B_K ∩ ⟦¬φ⟧ = ∅.

                                          theorem Semantics.Modality.direct_evidence_infelicity {W : Type u_1} (k : Kernel W) (φ : WProp) (w : W) (hSettled : directlySettlesExplicit k φ) :
                                          ¬(kernelMust k φ).presup w

                                          Direct evidence infelicity: when K settles φ, must φ is undefined.

                                          theorem Semantics.Modality.settling_monotone {W : Type u_1} (k : Kernel W) (p φ : WProp) (hSettled : directlySettlesExplicit k φ) :
                                          directlySettlesExplicit { props := p :: k.props } φ

                                          Settling is monotone: more propositions in K means more is settled.

                                          Can't dilemma (@cite{von-fintel-gillies-2021} §4, Observations 4–5) #

                                          The Mantra faces a dilemma: no assignment of force to can't simultaneously explains its evidential distribution (paralleling must) and its incompatibility with it's possible that φ. Kernel semantics resolves this because can't φ = must(¬φ) is strong AND evidentially constrained.

                                          theorem Semantics.Modality.cant_might_exclusion {W : Type u_1} (k : Kernel W) (φ : WProp) (w : W) (hCant : (kernelCant k φ).assertion w) :

                                          Can't–might exclusion (@cite{von-fintel-gillies-2021} Obs 5): when can't φ holds (B_K ⊆ ⟦¬φ⟧), might φ is false (B_K ∩ ⟦φ⟧ = ∅).

                                          theorem Semantics.Modality.cant_entails_negation {W : Type u_1} (k : Kernel W) (φ : WProp) (w : W) (hReal : w k.base) (_hDef : (kernelCant k φ).presup w) (hTrue : (kernelCant k φ).assertion w) :
                                          ¬φ w

                                          Can't entails negation (@cite{von-fintel-gillies-2021} via S2): when B_K is realistic and can't φ is defined and true, ¬ φ(w).

                                          theorem Semantics.Modality.cant_evidential_parallel {W : Type u_1} (k : Kernel W) (φ : WProp) (w : W) :
                                          (kernelCant k φ).presup w = (kernelMust k fun (w' : W) => ¬φ w').presup w

                                          Can't evidential parallelism (@cite{von-fintel-gillies-2021} Obs 4): can't φ has the same presupposition structure as must(¬φ).

                                          Can't dilemma resolved: a single kernel simultaneously exhibits evidentiality, strength, and might-exclusion. Witness: K = {redOrBlue, notRed}, φ = notBlue. Then can't(notBlue) = must(blue), which is defined (blue unsettled), true (B_K ⊆ ⟦blue⟧), and excludes might(notBlue).

                                          Direct evidence blocks can't, paralleling must: when K settles ¬φ, can't φ has presupposition failure.

                                          theorem Semantics.Modality.cant_eq_must_neg {W : Type u_1} (k : Kernel W) (φ : WProp) (w : W) :
                                          (kernelCant k φ).presup w = (kernelMust k fun (w' : W) => ¬φ w').presup w (kernelCant k φ).assertion w = (kernelMust k fun (w' : W) => ¬φ w').assertion w

                                          can't φ and must(¬φ) are intensionally identical.

                                          Prior information state and nandao-Q felicity #

                                          @cite{zheng-2025} shows Mandarin nandao-Qs are evidence-driven, not bias-driven. The felicity condition has three parts: (i) evidence in K supports the prejacent, (ii) K conflicts with prior expectations U, (iii) the prejacent is not directly settled in K. Condition (iii) is the same presupposition as kernelMust.

                                          @[reducible, inline]

                                          Prior information state (beliefs, norms, desires) before encountering evidence. Distinct from the kernel (direct evidence) and the CG (shared).

                                          Equations
                                          Instances For

                                            B_U = ⋂U: worlds compatible with the prior information state.

                                            Equations
                                            Instances For

                                              K and U are incompatible: B_K ∩ B_U = ∅ (the evidence is unexpected).

                                              Equations
                                              Instances For
                                                def Semantics.Modality.evidenceRaises {W : Type u_1} [Fintype W] (p φ : WProp) [DecidablePred p] [DecidablePred φ] :

                                                Evidence p raises the probability of φ: P(φ|p) > P(φ). Computed via cross-multiplication to avoid rationals.

                                                The cardinalities are taken over Finset.univ filtered by the respective predicates, which requires [DecidablePred p] and [DecidablePred φ].

                                                Equations
                                                Instances For
                                                  def Semantics.Modality.Kernel.evidenceSupports {W : Type u_1} [Fintype W] (k : Kernel W) (φ : WProp) [DecidablePred φ] :

                                                  Some proposition in K raises the probability of φ (condition i).

                                                  Requires global decidability for kernel propositions; we use Classical.propDecidable since k.props is a list of arbitrary W → Prop.

                                                  Equations
                                                  Instances For
                                                    def Semantics.Modality.nandaoFelicitous {W : Type u_1} [Fintype W] (k : Kernel W) (u : Background W) (φ : WProp) [DecidablePred φ] :

                                                    Nandao-Q felicity (@cite{zheng-2025}, condition 11 for polar questions): (i) some evidence in K raises P(φ), (ii) K and U are incompatible (evidence is unexpected), (iii) φ is not directly settled in K.

                                                    Equations
                                                    Instances For
                                                      theorem Semantics.Modality.nandao_must_presupposition {W : Type u_1} (k : Kernel W) (φ : WProp) (w : W) :

                                                      Nandao condition (iii) = presupposition of kernelMust.

                                                      theorem Semantics.Modality.nandao_pure_inquiry {W : Type u_1} [Fintype W] (k : Kernel W) (u : Background W) (φ : WProp) [DecidablePred φ] (hEv : k.evidenceSupports φ) (hInc : k.incompatibleWith u) (hUns : ¬directlySettlesExplicit k φ) :

                                                      Pure inquiry: nandao is felicitous without epistemic bias (@cite{zheng-2025} ex. 3). The three conditions suffice; no prior belief about φ is required.

                                                      Dripping raincoat scenario (@cite{zheng-2025} exx. 2–3, 5) #

                                                      w0 = raining, w1 = sprinkler (wet but not rain), w2 = dry, w3 = unknown. K = {wearingRaincoat}: direct evidence that someone entered with a wet coat. U = {expectDry}: prior expectation of no rain (normative or doxastic).

                                                      @[implicit_reducible]
                                                      Equations
                                                      • One or more equations did not get rendered due to their size.
                                                      @[implicit_reducible]
                                                      Equations
                                                      • One or more equations did not get rendered due to their size.
                                                      @[implicit_reducible]
                                                      Equations
                                                      • One or more equations did not get rendered due to their size.

                                                      "Nandao waimian xiayu-le ma?" is felicitous with a dripping raincoat. P(rain|coat) = 1/2 > P(rain) = 1/4; K ∩ U = ∅; rain unsettled by K.

                                                      TODO: full proof requires unfolding `evidenceSupports` (which uses
                                                      `Classical.propDecidable`) into a concrete computation. The proposition
                                                      holds — wearingRaincoat raises the probability of isRaining (1/2 vs 1/4) —
                                                      but threading the decidability instance through `decide` is delicate.
                                                      Statement preserved. 
                                                      

                                                      Without evidence, nandao is infelicitous (@cite{zheng-2025} ex. 5 ctx 2).

                                                      When evidence is expected (K compatible with U), nandao is infelicitous (@cite{zheng-2025} ex. 6 ctx 2).

                                                      TODO: full proof requires showing the joint kernel + background is
                                                      consistent for the wearingRaincoat-only K. Statement preserved. 
                                                      

                                                      Nandao reuses the mastermind kernel: "must blue" and "nandao blue?" share condition (iii). When must is defined, nandao's indirectness condition holds.