Documentation

Linglib.Semantics.Dynamic.PLA.Quantifiers

@[reducible, inline]
abbrev Semantics.Dynamic.PLA.GQRel (α : Type u_1) :
Type u_1

A Generalized quantifier relation: determines truth based on two sets.

GQRel α = Set α → Set α → Prop

Examples:

  • every A B = A ⊆ B
  • some A B = (A ∩ B).Nonempty
  • no A B = A ∩ B = ∅
Equations
Instances For

    Every: All A's are B's

    Equations
    Instances For

      Some: At least one A is a B

      Equations
      Instances For

        No: No A is a B

        Equations
        Instances For
          def Semantics.Dynamic.PLA.GQRel.most {α : Type u_1} [Fintype α] :

          Most: More than half of the A's are B's (requires finite)

          Equations
          Instances For
            def Semantics.Dynamic.PLA.GQRel.atLeast {α : Type u_1} (n : ) :

            At least n: At least n A's are B's

            Equations
            Instances For
              def Semantics.Dynamic.PLA.GQRel.exactly {α : Type u_1} [Fintype α] (n : ) :

              Exactly n: Exactly n A's are B's

              Equations
              Instances For

                A quantifier is conservative if D(A)(B) ↔ D(A)(A ∩ B).

                This is the key semantic universal: determiners only care about the A's when determining the relation to B.

                "Every student passed" ↔ "Every student is a student who passed"

                Equations
                Instances For

                  A quantifier is upward monotone in the second argument if D(A)(B) and B ⊆ C implies D(A)(C).

                  Equations
                  • D.IsUpwardMono = ∀ (A B C : Set α), B CD A BD A C
                  Instances For

                    A quantifier is downward monotone in the second argument if D(A)(B) and C ⊆ B implies D(A)(C).

                    Equations
                    Instances For

                      A quantifier is truthful (has existential import) if D(A)(B) implies A ∩ B ≠ ∅.

                      Truthful quantifiers: some, every (presuppositionally), most Non-truthful: no, at most n

                      Equations
                      • D.IsTruthful = ∀ (A B : Set α), D A B(A B).Nonempty
                      Instances For

                        Note: every is only truthful if we assume existential presupposition. Standard logic treats "every A is B" as vacuously true when A = ∅.

                        Bridge to Quantification #

                        PLA's GQRel α = Set α → Set α → Prop and Core's GQ α = (α → Prop) → (α → Prop) → Prop carry the same content (Set α is defined as α → Prop). The property predicates align via the A ∩ B = {x | A x ∧ B x} set-vs-predicate shift. toCoreGQ is the canonical bridge; the bridges below let PLA consumers cash in Core's [BC81] / [PW06] / [vB84] theorems instead of reproving them.

                        Bridge: a GQRel viewed as a Quantification.GQ.

                        Equations
                        Instances For

                          A GQRel is conservative iff its Core.GQ projection is.

                          A GQRel is scope-upward-monotone iff its Core.GQ projection is.

                          A GQRel is scope-downward-monotone iff its Core.GQ projection is.

                          @[reducible, inline]

                          A witness function selects, for each entity in the restrictor satisfying some condition, a witnessing entity.

                          For "Every farmer who owns a donkey beats it":

                          • For each farmer f who owns a donkey, wit f is a donkey that f owns

                          This is [Dek12]'s solution to donkey anaphora with universal quantifiers.

                          Equations
                          Instances For
                            def Semantics.Dynamic.PLA.ValidWitness {α : Type u_1} (R : ααProp) (A B : Set α) (wit : WitnessFn α) :

                            A witness function is valid for sets A and R if: for all x ∈ A, the witness wit(x) is related to x by R.

                            For "owns a donkey": valid_witness owns farmers donkeys wit means ∀ f ∈ farmers, owns f (wit f) ∧ wit f ∈ donkeys

                            Equations
                            Instances For
                              theorem Semantics.Dynamic.PLA.truthful_has_witness {α : Type u_1} [Nonempty α] (D : GQRel α) (hT : D.IsTruthful) (A B : Set α) (h : D A B) :
                              xA B, True

                              Truthful existence: For truthful quantifiers, if D(A)(B) holds, there exists a valid witness function.

                              This is the key to dynamic binding: truthful quantifiers "export" witnesses that can be referenced anaphorically.

                              def Semantics.Dynamic.PLA.Formula.gqUpdate {E : Type u_1} [Nonempty E] (M : Model E) (D : GQRel E) (x : VarIdx) (φ ψ : Formula) :

                              Dynamic quantifier update: Dx(φ)(ψ) where D is a generalized quantifier.

                              Semantics: D(restrictor)(scope) where:

                              • restrictor = {e | M, g[x↦e], ê ⊨ φ}
                              • scope = {e | M, g[x↦e], ê ⊨ ψ}

                              This generalizes ∃x.φ (which is some(univ)(φ)).

                              Equations
                              • One or more equations did not get rendered due to their size.
                              Instances For
                                theorem Semantics.Dynamic.PLA.exists_as_gq {E : Type u_1} [Nonempty E] (M : Model E) (x : VarIdx) (φ : Formula) (s : InfoState E) :
                                Formula.update M (Formula.exists_ x φ) s = {p : Assignment E × WitnessSeq E | p s ∃ (e : E), Formula.sat M (p.1[x e]) p.2 φ}

                                Standard existential is some(univ)(φ), but we use the standard definition which also updates the assignment.

                                def Semantics.Dynamic.PLA.Formula.forallGQ {E : Type u_1} [Nonempty E] (M : Model E) (x : VarIdx) (φ : Formula) :

                                Universal quantifier as GQ: ∀x.φ = every(univ)(φ)

                                Equations
                                Instances For
                                  def Semantics.Dynamic.PLA.donkeyUpdate {E : Type u_1} (M : Model E) (farmer donkey : VarIdx) (pron_it : PronIdx) (owns beats : String) :

                                  Donkey update: For "Every farmer who owns a donkey beats it".

                                  This captures the dependency between the universally quantified farmer and the existentially introduced donkey.

                                  We need to track, for each farmer f, which donkey witnesses the "owns a donkey" part, and that donkey is what "it" refers to.

                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  Instances For
                                    def Semantics.Dynamic.PLA.etypeApproach {E : Type u_1} (M : Model E) (farmer donkey owns beats : String) :

                                    The E-type approach (Evans): pronouns pick out the unique/salient entity.

                                    For "Every farmer who owns a donkey beats it": "it" = the unique donkey that the farmer owns (if unique), or a contextually salient one (if multiple).

                                    This differs from the witness-function approach in requiring uniqueness or salience.

                                    Equations
                                    • One or more equations did not get rendered due to their size.
                                    Instances For
                                      theorem Semantics.Dynamic.PLA.gqUpdate_eliminative {E : Type u_1} [Nonempty E] (M : Model E) (D : GQRel E) (x : VarIdx) (φ ψ : Formula) (s : InfoState E) :
                                      Formula.gqUpdate M D x φ ψ s s

                                      GQ updates are eliminative: They never add possibilities.

                                      theorem Semantics.Dynamic.PLA.gqUpdate_conservative {E : Type u_1} [Nonempty E] (M : Model E) (D : GQRel E) (hC : D.IsConservative) (x : VarIdx) (φ ψ : Formula) (s : InfoState E) (p : Poss E) :
                                      p Formula.gqUpdate M D x φ ψ s p s D {e : E | Formula.sat M (p.1[x e]) p.2 φ} {e : E | Formula.sat M (p.1[x e]) p.2 φ Formula.sat M (p.1[x e]) p.2 ψ}

                                      Conservativity transfers: If D is conservative, so is the dynamic version (in a suitable sense).

                                      theorem Semantics.Dynamic.PLA.indefinite_wide_scope {E : Type u_1} [Nonempty E] (M : Model E) (x : VarIdx) (φ ψ : Formula) (s : InfoState E) (p : Poss E) :
                                      p Formula.update M (Formula.exists_ x φ) s∃ (e : E), Formula.sat M (p.1[x e]) p.2 φ

                                      Indefinites take wide scope (in dynamic semantics).

                                      "If a farmer owns a donkey, he beats it." The indefinites "a farmer" and "a donkey" can bind pronouns in the consequent.

                                      This is modeled by having the existential update extend the assignment globally, not just locally.

                                      theorem Semantics.Dynamic.PLA.universal_no_export {E : Type u_1} [Nonempty E] (M : Model E) (x : VarIdx) (φ : Formula) (s : InfoState E) :
                                      Formula.forallGQ M x φ s s

                                      Universals don't export: "Every farmer owns a donkey" doesn't make "the donkey" available for subsequent anaphora (without special mechanisms).