Documentation

Linglib.Semantics.Presupposition.Defs

Partial Propositions #

Partial propositions — propositions that may be undefined at some evaluation points. References: [Hei83], [Bel70], [BS22].

Main declarations #

The connective families on PartialProp live in Semantics.Presupposition.Basic (classical, filtering, entailment) and Semantics.Presupposition.Trivalent (rival trivalent families).

Implementation notes #

PartialProp W is parametric over the evaluation point. Common instantiations: PartialProp World (classical possible worlds), PartialProp (Possibility W ℕ E) (dynamic world-assignment pairs).

open Classical is in scope at the namespace level because most theorems case-split on Prop-valued fields. Mathlib uses the same idiom in logic-heavy files such as Mathlib/Order/Filter/Basic.lean.

Todo #

structure Semantics.Presupposition.PartialValue (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.

PartialValue W α generalizes presuppositional propositions: the presupposition is W → Prop, and the at-issue content is any type — a truth value (Bool), a degree (), a measure, etc.

Linguistic motivation: many presupposition triggers return non-boolean values. The revised per entry ([BS22], eq. 43) returns a presupposed pure number (). Definite descriptions return presupposed entities. PartialValue handles all of these uniformly.

  • presup : WProp

    The presupposition (must hold for definedness).

  • value : Wα

    The at-issue content (value).

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

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

    Equations
    Instances For
      def Semantics.Presupposition.PartialValue.toPart {W : Type u_1} {α : Type u_2} (pv : PartialValue W α) :
      WPart α

      The mathlib rendering: pointwise, a presupposed value is a Part-valued function, the presupposition as domain. PartialValue is the total-representative presentation — the record carries a value everywhere (no proof-carrying Part.get); toPart forgets the values outside the presupposition.

      Equations
      Instances For
        theorem Semantics.Presupposition.PartialValue.toPart_surjective {W : Type u_1} {α : Type u_2} [Inhabited α] :
        Function.Surjective toPart

        Every Part-valued function has a total representative: toPart is surjective, so the two presentations differ only by the (linguistically inert) values outside the presupposition.

        PartialProp: Prop-based partial propositions #

        A presuppositional proposition: assertion + presupposition.

        Fields are Prop-valued following the Mathlib convention. Construct directly with { presup := ..., assertion := ... }; for finite worlds with DecidableEq, the predicates are auto-decidable.

        • presup : WProp

          The presupposition (must hold for definedness).

        • assertion : WProp

          The at-issue content (assertion).

        Instances For
          theorem Semantics.Presupposition.PartialProp.ext {W : Type u_1} {x y : PartialProp W} (presup : x.presup = y.presup) (assertion : x.assertion = y.assertion) :
          x = y

          Constructors #

          Create a presuppositionless proposition from a W → Prop.

          Equations
          Instances For

            Convert a three-valued proposition to a PartialProp. Inverse of PartialProp.eval: defined iff value ≠ indet, assertion iff value = true.

            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. [Bel70], (3): "(A/B) is assertive_w just in case A is true_w. (A/B)_w = B_w."

              Equations
              Instances For

                Satisfaction relations #

                Full satisfaction relation: both presupposition and assertion hold.

                Argument order (w : W) (p : PartialProp W) supports updateFromSat: updateFromSat PartialProp.holds p gives the full CCP (presupposition test + assertion filter).

                Equations
                Instances For

                  Definedness relation: presupposition holds at the evaluation point.

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

                  Equations
                  Instances For

                    Constants #

                    Create a tautological presupposition.

                    Equations
                    Instances For

                      Create a contradictory presupposition.

                      Equations
                      Instances For

                        Create a presupposition failure (never defined).

                        Equations
                        Instances For

                          Evaluation #

                          Evaluate a presuppositional proposition to three-valued truth. Noncomputable because it decides Prop-valued presupposition and assertion via classical logic.

                          Equations
                          Instances For

                            The simp-normal interface to eval: consumers reason through the three value characterizations rather than the classical if-nest.

                            @[simp]
                            @[simp]

                            Evaluation is defined iff presupposition holds.

                            Round-trip: Prop3PartialProp #

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

                            theorem Semantics.Presupposition.PartialProp.eval_surjective {W : Type u_1} :
                            Function.Surjective eval

                            eval is surjective — every three-valued proposition has a total representative, ofProp3 being a section.

                            theorem Semantics.Presupposition.PartialProp.eval_eq_eval_iff {W : Type u_1} (p q : PartialProp W) :
                            p.eval = q.eval ∀ (w : W), (p.presup w q.presup w) (p.presup w(p.assertion w q.assertion w))

                            eval identifies exactly agreement on definedness and, where defined, on assertion: PartialProp is the total-representative presentation of Prop3 W, carrying (linguistically inert) assertion values outside the presupposition that eval forgets — so ofProp3eval is not the identity, only evalofProp3 is (eval_ofProp3).