Documentation

Linglib.Core.Semantics.Presupposition

Partial Propositions (PrProp) #

@cite{heim-1983} @cite{schlenker-2009} @cite{von-fintel-1999} @cite{geurts-2005} @cite{belnap-1970}

PrProp W is linglib's canonical representation of partial propositions — propositions that may be undefined at some evaluation points. The type parameter W is the evaluation domain: worlds, possibilities, events, world-assignment pairs, or any other type. The two fields are:

Domain generality #

PrProp W is parametric over W. Common instantiations:

All operations (filtering connectives, eval, accommodation) work uniformly across domains because they are pointwise over W.

Satisfaction relations #

Two satisfaction relations connect PrProp to CCP's updateFromSat:

These enable structural integration with the dynamic semantics layer: updateFromSat PrProp.holds p produces a CCP W that is eliminative, distributive, and supports the Galois connection — all by construction.

Linguistic interpretations #

Connective systems #

The choice of connective system (how gaps behave under ∧/∨) is orthogonal to PrProp itself — see Truth3.GapPolicy:

Structural joints #

Everything in the presupposition system derives from .presup and .assertion:

structure Core.Presupposition.PrValue (W : Type u_1) (α : Type u_2) :
Type (max u_1 u_2)

A presupposed value: a value that is only defined when its presupposition holds.

PrValue W α generalizes PrProp W (= PrValue W Bool): the presupposition is always W → Bool, but the at-issue content can be any type — a truth value (Bool), a degree (), a measure, etc.

Linguistic motivation: many presupposition triggers return non-boolean values. The revised per entry (@cite{bale-schwarz-2022}, eq. 43) returns a presupposed pure number (). Definite descriptions return presupposed entities. PrValue handles all of these uniformly.

  • presup : WBool

    The presupposition (must hold for definedness).

  • value : Wα

    The at-issue content (value).

Instances For
    def Core.Presupposition.PrValue.defined {W : Type u_1} {α : Type u_2} (w : W) (pv : PrValue W α) :

    A presupposed value is defined at w iff its presupposition holds.

    Equations
    Instances For
      def Core.Presupposition.PrValue.pure {W : Type u_1} {α : Type u_2} (a : Wα) :
      PrValue W α

      Create a presuppositionless value (always defined).

      Equations
      Instances For
        structure Core.Presupposition.PrProp (W : Type u_1) :
        Type u_1

        A presuppositional proposition: assertion + presupposition.

        • presup : WBool

          The presupposition (must hold for definedness).

        • assertion : WBool

          The at-issue content (assertion).

        Instances For

          Convert a presupposed Bool value (PrValue W Bool) to PrProp W.

          Equations
          Instances For

            Convert a PrProp to a PrValue W Bool.

            Equations
            Instances For

              Evaluate a presuppositional proposition to three-valued truth.

              Equations
              Instances For
                def Core.Presupposition.PrProp.defined {W : Type u_1} (w : W) (p : PrProp W) :

                Definedness relation: presupposition holds at the evaluation point.

                Argument order (w : W) (p : PrProp W) matches updateFromSat: updateFromSat PrProp.defined p gives the presupposition test CCP.

                Equations
                Instances For
                  def Core.Presupposition.PrProp.holds {W : Type u_1} (w : W) (p : PrProp W) :

                  Full satisfaction relation: both presupposition and assertion hold.

                  updateFromSat PrProp.holds p gives the full CCP (presupposition test + assertion filter). This CCP is automatically eliminative and distributive via CCP's updateFromSat infrastructure.

                  Equations
                  Instances For
                    theorem Core.Presupposition.PrProp.eval_isDefined {W : Type u_1} (p : PrProp W) (w : W) :

                    Evaluation is defined iff presupposition holds.

                    Classical negation of a presuppositional proposition.

                    Equations
                    Instances For

                      Classical conjunction: both presuppositions must hold.

                      Equations
                      Instances For
                        def Core.Presupposition.PrProp.or {W : Type u_1} (p q : PrProp W) :

                        Classical disjunction: both presuppositions must hold.

                        Equations
                        Instances For

                          Classical implication: both presuppositions must hold.

                          Equations
                          Instances For

                            Filtering conjunction: antecedent can satisfy consequent's presupposition.

                            Equations
                            Instances For

                              Filtering implication: antecedent can satisfy consequent's presupposition.

                              Equations
                              Instances For

                                Filtering disjunction: disjuncts can satisfy each other's presuppositions.

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

                                  Exclusive disjunction: both presuppositions must hold (no filtering).

                                  Under Strong Kleene, Truth3.xor propagates undefinedness unconditionally (xor_indet_iff), so exclusive disjunction never filters presupposition failure from either disjunct. @cite{wang-davidson-2026}

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

                                          Negation preserves presupposition.

                                          Double negation preserves assertion.

                                          theorem Core.Presupposition.PrProp.impFilter_eliminates_presup {W : Type u_1} (p q : PrProp W) (h : ∀ (w : W), p.assertion w = trueq.presup w = true) :

                                          Filtering implication eliminates presupposition when antecedent entails it.

                                          When A(p) = P(q), filtering implication has trivial presupposition.

                                          Create a presuppositionless proposition from a BProp.

                                          Equations
                                          Instances For

                                            Create a tautological presupposition.

                                            Equations
                                            Instances For

                                              Create a contradictory presupposition.

                                              Equations
                                              Instances For

                                                Create a presupposition failure (never defined).

                                                Equations
                                                Instances For

                                                  ofBProp creates presuppositionless propositions.

                                                  theorem Core.Presupposition.PrProp.ofBProp_assertion {W : Type u_1} (p : BProp W) (w : W) :
                                                  (ofBProp p).assertion w = p w

                                                  ofBProp preserves assertion.

                                                  theorem Core.Presupposition.PrProp.eval_neg {W : Type u_1} (p : PrProp W) (w : W) :
                                                  p.neg.eval w = (p.eval w).neg

                                                  Negation evaluation.

                                                  theorem Core.Presupposition.PrProp.eval_and {W : Type u_1} (p q : PrProp W) (w : W) (hp : p.presup w = true) (hq : q.presup w = true) :
                                                  (p.and q).eval w = (p.eval w).meet (q.eval w)

                                                  Classical conjunction evaluation (both defined).

                                                  Filtering implication when antecedent false: result is true.

                                                  theorem Core.Presupposition.PrProp.eval_impFilter_antecedent_true {W : Type u_1} (p q : PrProp W) (w : W) (hp : p.presup w = true) (ha : p.assertion w = true) (hq : q.presup w = true) :

                                                  Filtering implication when antecedent true: depends on consequent.

                                                  theorem Core.Presupposition.PrProp.eval_xor {W : Type u_1} (p q : PrProp W) (w : W) (hp : p.presup w = true) (hq : q.presup w = true) :
                                                  (p.xor q).eval w = (p.eval w).xor (q.eval w)

                                                  Exclusive disjunction evaluation matches Truth3.xor when both defined.

                                                  theorem Core.Presupposition.PrProp.eval_xor_no_filter {W : Type u_1} (p q : PrProp W) (w : W) (hq : q.presup w = false) :

                                                  Exclusive disjunction never filters: when either presupposition fails, the result is undefined. @cite{wang-davidson-2026}

                                                  Strong entailment: p entails q at all worlds where both are defined.

                                                  Equations
                                                  Instances For

                                                    Strawson entailment: p entails q at worlds where p is defined and true.

                                                    Equations
                                                    Instances For

                                                      Strawson equivalence: mutual Strawson entailment.

                                                      Equations
                                                      Instances For

                                                        Flexible accommodation disjunction.

                                                        Each disjunct is evaluated only against worlds where its own presupposition holds. The overall presupposition is the disjunction of the individual presuppositions. This handles conflicting presuppositions (p ∧ q = ⊥): standard disjunction and filtering disjunction both fail for this case, but flexible accommodation correctly predicts presupposition p ∨ q and allows the disjunction to be false.

                                                        Formally, this is the static counterpart of Yagi's dynamic update: s[φ ∨ ψ] = s[χ][φ] ∪ s[ω][ψ], where s[χ] ∪ s[ω] = s When presuppositions conflict, χ = ¬q and ω = ¬p, giving pointwise: (p(w) ∧ φ(w)) ∨ (q(w) ∧ ψ(w))

                                                        Equations
                                                        Instances For
                                                          theorem Core.Presupposition.PrProp.orFlex_eq_or_when_both_defined {W : Type u_1} (p q : PrProp W) (w : W) (hp : p.presup w = true) (hq : q.presup w = true) :
                                                          (p.orFlex q).assertion w = (p.or q).assertion w

                                                          orFlex reduces to standard disjunction when both presuppositions hold.

                                                          theorem Core.Presupposition.PrProp.orFlex_presup_weaker {W : Type u_1} (p q : PrProp W) (w : W) (h : (p.or q).presup w = true) :

                                                          orFlex presupposition is weaker than or's (p ∨ q vs p ∧ q).

                                                          Presupposition projection: get the presupposition as a classical proposition.

                                                          Equations
                                                          Instances For

                                                            Assertion extraction: get the assertion as a classical proposition.

                                                            Equations
                                                            Instances For
                                                              @[reducible, inline]

                                                              Alias for presup under the Belnap reading: whether the proposition is assertive at w (asserts something, vs nonassertive/silent).

                                                              Equations
                                                              Instances For

                                                                Belnap's conditional assertion (A/B): assert B on condition A.

                                                                Assertive_w iff A is true at w; what is asserted = B. @cite{belnap-1970}, (3): "(A/B) is assertive_w just in case A is true_w. (A/B)_w = B_w."

                                                                Equations
                                                                Instances For

                                                                  Belnap conjunction: assertive iff at least one conjunct is assertive. What it asserts = conjunction of assertive conjuncts' content.

                                                                  @cite{belnap-1970}, (8). Contrast with classical PrProp.and (both must be defined) and filtering PrProp.andFilter (left-to-right).

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

                                                                    Belnap disjunction: assertive iff at least one disjunct is assertive. What it asserts = disjunction of assertive disjuncts' content.

                                                                    @cite{belnap-1970}, (9).

                                                                    Equations
                                                                    • One or more equations did not get rendered due to their size.
                                                                    Instances For
                                                                      theorem Core.Presupposition.PrProp.eval_andBelnap {W : Type u_1} (p q : PrProp W) (w : W) :
                                                                      (p.andBelnap q).eval w = (p.eval w).meetBelnap (q.eval w)

                                                                      Belnap conjunction evaluates to Truth3.meetBelnap pointwise.

                                                                      theorem Core.Presupposition.PrProp.eval_orBelnap {W : Type u_1} (p q : PrProp W) (w : W) :
                                                                      (p.orBelnap q).eval w = (p.eval w).joinBelnap (q.eval w)

                                                                      Belnap disjunction evaluates to Truth3.joinBelnap pointwise.

                                                                      Convert a three-valued proposition to a PrProp.

                                                                      Inverse of PrProp.eval: defined ↔ value ≠ indet, assertion ↔ value = true.

                                                                      Equations
                                                                      Instances For

                                                                        Prop3 → PrProp → Prop3 round-trip is the identity.