Documentation

Linglib.Theories.Semantics.PIP.Basic

Plural Intensional Presuppositional Predicate Calculus (PIP) #

@cite{keshet-abney-2024} @cite{brasoveanu-2010} @cite{stone-1997}Core types for @cite{keshet-abney-2024}'s PIP system, which extends first-order predicate calculus with set abstraction, plural assignments, formula labels, and world-subscripted predicates to handle intensional anaphora uniformly.

The Core Innovation #

Pronouns carry descriptive content (the formula that introduced their antecedent), not stored entity values. This enables anaphora to entities introduced under modal operators, where no actual entity exists in the evaluation world.

Encoding Strategy #

PIP is natively a static, truth-conditional system: formulas denote truth values relative to a model, plural assignment set G, and evaluation world w*. Our formalization encodes PIP as a dynamic update system over the generic intensional context type IContext W E (in Dynamic/Core/Intensional.lean), which is a legitimate approach: @cite{brasoveanu-2010} shows the equivalence between plural predicate calculi and dynamic plural logics. The key properties (label monotonicity, external/local variable distinction) are faithfully preserved.

PIP's Five Constructs (paper item 17) #

  1. Unselective closure with bracketed [x] (local) vs unbracketed x (external)
  2. Summation Σxφ: set-forming over individuals
  3. Formula labels X ≡ φ: tautological abbreviatory definitions
  4. World subscripts P_w(x): predicates evaluated at specific worlds
  5. Presuppositions φ|ψ: assert φ, presuppose ψ

Key Types #

TypeDescription
FLabelFormula label index (paper's X in X ≡ φ)
Description W EDescriptive content associated with a label
Discourse W EInformation state + label registry
PUpdate W EDiscourse-level update (dynamic encoding of PIP formulas)
@[reducible, inline]
abbrev Semantics.PIP.BAccessRel (W : Type u_1) :
Type u_1

Local Bool-valued accessibility for PIP's computational modal evaluation. PIP's modal operators use Bool predicates throughout for List.all/List.any computation; this is not the parallel-universe pattern (we are not shadowing Prop infrastructure with Bool versions), it is a legitimate Bool-internal framework over which PIP's discourse-update operators compute. The Prop-valued Core.Logic.Intensional.AccessRel is the canonical type for Kripke-style modal logic; PIP needs the Bool variant for its List.all/List.any truth-value pipeline. Lifted to Prop via fun a b => R a b = true when bridging to boxR/diamondR.

Equations
Instances For

    Formula label: an index for tracking descriptive content.

    In PIP, X ≡ φ defines X as an abbreviation for formula φ. This definition is a tautology (always true) and can be "floated" to the top of any discourse. Our encoding models this as a registry entry that persists monotonically through all operators.

    • idx :
    Instances For
      def Semantics.PIP.instDecidableEqFLabel.decEq (x✝ x✝¹ : FLabel) :
      Decidable (x✝ = x✝¹)
      Equations
      Instances For
        def Semantics.PIP.instReprFLabel.repr :
        FLabelStd.Format
        Equations
        • Semantics.PIP.instReprFLabel.repr x✝ prec✝ = Std.Format.bracket "{ " (Std.Format.nil ++ Std.Format.text "idx" ++ Std.Format.text " := " ++ (Std.Format.nest 7 (repr x✝.idx)).group) " }"
        Instances For
          Equations
          Instances For
            structure Semantics.PIP.Description (W : Type u_1) (E : Type u_2) :
            Type (max u_1 u_2)

            A description: the descriptive content associated with a formula label.

            Records which variable is being described and the predicate that constrains it. When a pronoun carries label α, retrieval evaluates the description's predicate to find the intended referent.

            Instances For
              def Semantics.PIP.LabelStore (W : Type u_1) (E : Type u_2) :
              Type (max u_2 u_1)

              A label store maps formula labels to their descriptive content.

              Labels accumulate monotonically as discourse proceeds — they are never retracted by negation, modals, or other operators. This monotonicity is what enables cross-modal and cross-negation anaphora.

              Equations
              Instances For
                def Semantics.PIP.LabelStore.empty {W : Type u_1} {E : Type u_2} :

                Empty label store: no labels registered.

                Equations
                Instances For
                  def Semantics.PIP.LabelStore.register {W : Type u_1} {E : Type u_2} (s : LabelStore W E) (α : FLabel) (d : Description W E) :

                  Register a label with its description.

                  Equations
                  • s.register α d β = if β = α then some d else s β
                  Instances For
                    def Semantics.PIP.LabelStore.lookup {W : Type u_1} {E : Type u_2} (s : LabelStore W E) (α : FLabel) :
                    Option (Description W E)

                    Look up a label.

                    Equations
                    Instances For
                      def Semantics.PIP.LabelStore.registered {W : Type u_1} {E : Type u_2} (s : LabelStore W E) (α : FLabel) :
                      Bool

                      A label is registered iff its lookup is not none.

                      Equations
                      Instances For
                        theorem Semantics.PIP.LabelStore.register_preserves {W : Type u_1} {E : Type u_2} (s : LabelStore W E) (α β : FLabel) (d : Description W E) (hne : β α) :
                        s.register α d β = s β

                        Registration is monotonic: registering a new label preserves old ones.

                        structure Semantics.PIP.Discourse (W : Type u_1) (E : Type u_2) :
                        Type (max u_1 u_2)

                        A PIP discourse state: information state + label registry.

                        The discourse state separates two orthogonal concerns:

                        1. Info: the set of live assignment-world pairs (epistemic state)
                        2. Labels: the accumulated descriptive content registry

                        This separation is key: negation and modals affect info but not labels, which is why labels survive these operators and enable cross-boundary anaphora.

                        Instances For
                          def Semantics.PIP.Discourse.initial {W : Type u_1} {E : Type u_2} :

                          Initial discourse: all possibilities, no labels.

                          Equations
                          Instances For
                            def Semantics.PIP.Discourse.empty {W : Type u_1} {E : Type u_2} :

                            Empty discourse: contradiction.

                            Equations
                            Instances For
                              def Semantics.PIP.Discourse.consistent {W : Type u_1} {E : Type u_2} (d : Discourse W E) :

                              Is the discourse consistent (non-empty info state)?

                              Equations
                              Instances For

                                Update only the info state, preserving labels.

                                Equations
                                Instances For
                                  def Semantics.PIP.Discourse.addLabel {W : Type u_1} {E : Type u_2} (d : Discourse W E) (α : FLabel) (desc : Description W E) :

                                  Register a new label, preserving info state.

                                  Equations
                                  Instances For
                                    def Semantics.PIP.PUpdate (W : Type u_1) (E : Type u_2) :
                                    Type (max u_2 u_1)

                                    A PIP update: discourse-to-discourse transformer.

                                    In PIP's native formulation, formulas are truth-conditional (not updates). Our dynamic encoding represents PIP formulas as discourse transformers, following the @cite{brasoveanu-2010} equivalence. The key invariant: labels are monotonically accumulated (never retracted), mirroring PIP's property that formula-label definitions X ≡ φ are tautologies that float freely.

                                    Equations
                                    Instances For
                                      def Semantics.PIP.presuppose {W : Type u_1} {E : Type u_2} (pred : Dynamic.Core.ICDRTAssignment W EWBool) :

                                      Presupposition operator ∂: a definedness condition.

                                      ⟦∂φ⟧ filters the information state to pairs where φ holds. If the result is empty, the utterance is undefined (presupposition failure).

                                      In PIP, presuppositions are used for:

                                      1. Definite descriptions (DEF_α presupposes α is registered)
                                      2. Pronominal anaphora (presupposes antecedent is accessible)
                                      Equations
                                      Instances For
                                        def Semantics.PIP.retrieveDef {W : Type u_1} {E : Type u_2} (α : FLabel) :

                                        DEF_α: retrieve the entity satisfying the description labeled α.

                                        Given label α and the current discourse state:

                                        1. Look up α's description (variable v, predicate P)
                                        2. Filter to assignments where g(v) is a real entity (not ⋆)
                                        3. Filter to assignments where P(g, w) holds

                                        The presupposition is that α is registered and yields a real entity. This is the mechanism by which pronouns get their reference: the pronoun carries label α, and DEF_α retrieves "the x such that P(x)" from the label store.

                                        Equations
                                        • One or more equations did not get rendered due to their size.
                                        Instances For
                                          def Semantics.PIP.pluralTruth {W : Type u_1} {E : Type u_2} (c : Dynamic.Core.IContext W E) (w : W) (pred : Dynamic.Core.ICDRTAssignment W EWBool) :

                                          PIP truth relative to a world and a plural context.

                                          A predicate P holds at world w in context c iff P(g, w) = true for ALL assignments g paired with w in c.

                                          This "plural" evaluation is what gives PIP its power: different assignments may bind different entities to the same variable, and truth requires the predicate to hold across all of them.

                                          Equations
                                          Instances For

                                            Variable binding mode: how a variable was introduced.

                                            • Local: Bound by a quantifier in the same clause. Both the individual variable and its restrictor are in scope.
                                            • External: Bound from an enclosing scope. In modal contexts, the world variable is external (introduced by the modal operator).

                                            This distinction falls out naturally from PIP's semantics without stipulation: under quantifiers, the bound variable is local; under modals, the world variable is external because it's quantified by the modal from outside the scope of any indefinites.

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

                                                A bound variable record: tracks how a variable was introduced.

                                                Instances For
                                                  def Semantics.PIP.instReprBoundVar.repr :
                                                  BoundVarStd.Format
                                                  Equations
                                                  • One or more equations did not get rendered due to their size.
                                                  Instances For

                                                    Summation: Σxφ = ⋃{g(x) : g ∈ G, ⟦φ⟧^{M,{g},w*} = 1}

                                                    Collects entity values across assignments satisfying a predicate. For "Every farmer bought a donkey. They paid a lot for them.", "them" = Σx(donkey(x)).

                                                    This is a core PIP operation (paper items 25–27), not study-specific. GQ arguments in PIP take two summation terms: restrictor and scope.

                                                    Equations
                                                    Instances For

                                                      Summation without filtering: collects all values of variable v.

                                                      Equations
                                                      Instances For

                                                        Unfiltered summation equals trivially filtered summation.

                                                        theorem Semantics.PIP.summation_nonempty {W : Type u_1} {E : Type u_2} (c : Dynamic.Core.IContext W E) (v : Dynamic.Core.IVar) (gw : Dynamic.Core.ICDRTAssignment W E × W) (h : gw c) :
                                                        (gw.1v⟧ᵢ) gw.2 summationValues c v

                                                        Any assignment in a non-empty context contributes to summation.