Documentation

Linglib.Semantics.Plurality.Basic

Plurality — Shared substrate #

[KS21b] [HRSW25]

Substrate primitives shared across all theoretical accounts of plural predication in this directory: a tolerance relation on Finset Atom (controlling exception tolerance), the basic distribution operators distMaximal/allSatisfy/someSatisfy/noneSatisfy, and their decidability instances. Specialised operators (distTolerant, trivalent K&S apparatus, Bar-Lev existPL, etc.) live in sibling files.

Main declarations #

Implementation notes #

This file sits under namespace Semantics.Plurality (the directory umbrella) rather than Semantics.Plurality.Basic (filename pattern). Consumers open Semantics.Plurality for substrate access; specific theoretical accounts (Distributivity, Trivalent, Implicature, Cumulativity, …) live under sub-namespaces and are opened separately.

Tolerance relations #

structure Semantics.Plurality.Tolerance (Atom : Type u_3) [DecidableEq Atom] :
Type u_3

A tolerance relation determines which sub-pluralities count as "similar enough" to the whole for current conversational purposes.

Formally: is reflexive and respects mereological structure.

  • rel : Finset AtomFinset AtomProp

    y ⪯ x: y is similar enough to x.

  • decRel (x y : Finset Atom) : Decidable (self.rel x y)

    Decidability of the tolerance relation.

  • refl (x : Finset Atom) : self.rel x x

    Reflexivity.

  • sub (x y : Finset Atom) : self.rel x yx y

    Tolerance implies sub-plurality.

Instances For
    @[implicit_reducible]
    instance Semantics.Plurality.Tolerance.instDecidableRel {Atom : Type u_3} [DecidableEq Atom] (tol : Tolerance Atom) (x y : Finset Atom) :
    Decidable (tol.rel x y)

    Per-Tolerance decidability instance for the relation.

    Equations
    def Semantics.Plurality.Tolerance.identity {Atom : Type u_1} [DecidableEq Atom] :

    Identity tolerance: only x ⪯ x (forces maximal reading).

    Equations
    Instances For
      def Semantics.Plurality.Tolerance.trivial {Atom : Type u_1} [DecidableEq Atom] :

      Trivial tolerance: any sub-plurality is tolerated (allows existential reading). [KS21b] call this the trivial tolerance — the relation is just sub-pluralityhood, with no further restriction.

      Equations
      Instances For

        Basic plural predicates #

        def Semantics.Plurality.distMaximal {Atom : Type u_1} {W : Type u_2} (P : AtomWProp) [(a : Atom) → (w : W) → Decidable (P a w)] (x : Finset Atom) (w : W) :

        Maximal distributive: ⟦each P⟧(x) = ∀ a ∈ x, P a. The semantics of English each, German jeder.

        Equations
        Instances For
          @[implicit_reducible]
          instance Semantics.Plurality.distMaximal.instDecidable {Atom : Type u_1} {W : Type u_2} (P : AtomWProp) [(a : Atom) → (w : W) → Decidable (P a w)] (x : Finset Atom) (w : W) :
          Decidable (distMaximal P x w)
          Equations
          def Semantics.Plurality.allSatisfy {Atom : Type u_1} {W : Type u_2} (P : AtomWProp) [(a : Atom) → (w : W) → Decidable (P a w)] (x : Finset Atom) (w : W) :

          All atoms in x satisfy P at w. Alias of distMaximal — kept under its K&S-paper-faithful name for legibility in study files; consumers may use either.

          Equations
          Instances For
            @[implicit_reducible]
            instance Semantics.Plurality.allSatisfy.instDecidable {Atom : Type u_1} {W : Type u_2} (P : AtomWProp) [(a : Atom) → (w : W) → Decidable (P a w)] (x : Finset Atom) (w : W) :
            Decidable (allSatisfy P x w)
            Equations
            def Semantics.Plurality.someSatisfy {Atom : Type u_1} {W : Type u_2} (P : AtomWProp) [(a : Atom) → (w : W) → Decidable (P a w)] (x : Finset Atom) (w : W) :

            Some atom in x satisfies P at w.

            Equations
            Instances For
              @[implicit_reducible]
              instance Semantics.Plurality.someSatisfy.instDecidable {Atom : Type u_1} {W : Type u_2} (P : AtomWProp) [(a : Atom) → (w : W) → Decidable (P a w)] (x : Finset Atom) (w : W) :
              Decidable (someSatisfy P x w)
              Equations
              def Semantics.Plurality.noneSatisfy {Atom : Type u_1} {W : Type u_2} (P : AtomWProp) [(a : Atom) → (w : W) → Decidable (P a w)] (x : Finset Atom) (w : W) :

              No atom in x satisfies P at w.

              Equations
              Instances For
                @[implicit_reducible]
                instance Semantics.Plurality.noneSatisfy.instDecidable {Atom : Type u_1} {W : Type u_2} (P : AtomWProp) [(a : Atom) → (w : W) → Decidable (P a w)] (x : Finset Atom) (w : W) :
                Decidable (noneSatisfy P x w)
                Equations