Documentation

Linglib.Semantics.Entailment.AntiAdditivity

The DE < anti-additive < anti-morphic hierarchy #

[Ica12]'s function classes (his Definition 1.7, after [Hoe83] and Zwarts; cf. [Chi13] §1.4.3, [Lad80]): additive, multiplicative, anti-additive, and anti-multiplicative functions, stated in equational form over semilattices and instantiated at context functions (Set W → Set W') and generalized quantifiers (Set E → Prop). Following Icard, the plain properties are the binary equations; the IsCompletely* refinements add his unit conditions (adopted for non-trivial linguistic domains, his §1.1).

Main declarations #

The property family ([Ica12] Definition 1.7) #

def Entailment.IsAdditive {α : Type u_1} {β : Type u_2} [SemilatticeSup α] [SemilatticeSup β] (f : αβ) :

Additive: f (p ⊔ q) = f p ⊔ f q.

Equations
Instances For
    def Entailment.IsMultiplicative {α : Type u_1} {β : Type u_2} [SemilatticeInf α] [SemilatticeInf β] (f : αβ) :

    Multiplicative: f (p ⊓ q) = f p ⊓ f q.

    Equations
    Instances For
      def Entailment.IsAntiAdditive {α : Type u_1} {β : Type u_2} [SemilatticeSup α] [SemilatticeInf β] (f : αβ) :

      Anti-additive: f (p ⊔ q) = f p ⊓ f q. Polymorphic in domain and codomain — needed e.g. for [Hoe83]'s S-comparative, anti-additive as a function Set Degree → Set Individual.

      Equations
      Instances For
        def Entailment.IsAntiMultiplicative {α : Type u_1} {β : Type u_2} [SemilatticeInf α] [SemilatticeSup β] (f : αβ) :

        Anti-multiplicative: f (p ⊓ q) = f p ⊔ f q.

        Equations
        Instances For
          def Entailment.IsAntiMorphic {α : Type u_1} {β : Type u_2} [Lattice α] [Lattice β] (f : αβ) :

          Anti-morphic: anti-additive and anti-multiplicative — Zwarts's class of sentential negation, the superstrong-NPI licensors.

          Equations
          Instances For

            Completely-variants ([Ica12] Definition 1.7) #

            Icard: "by P we mean completely P" for linguistic application — the unit conditions amount to assuming non-trivial domains.

            def Entailment.IsCompletelyAdditive {α : Type u_1} {β : Type u_2} [SemilatticeSup α] [OrderTop α] [SemilatticeSup β] [OrderTop β] (f : αβ) :

            Completely additive: additive and f ⊤ = ⊤.

            Equations
            Instances For
              def Entailment.IsCompletelyMultiplicative {α : Type u_1} {β : Type u_2} [SemilatticeInf α] [OrderBot α] [SemilatticeInf β] [OrderBot β] (f : αβ) :

              Completely multiplicative: multiplicative and f ⊥ = ⊥.

              Equations
              Instances For
                def Entailment.IsCompletelyAntiAdditive {α : Type u_1} {β : Type u_2} [SemilatticeSup α] [OrderTop α] [SemilatticeInf β] [OrderBot β] (f : αβ) :

                Completely anti-additive: anti-additive and f ⊤ = ⊥.

                Equations
                Instances For
                  def Entailment.IsCompletelyAntiMultiplicative {α : Type u_1} {β : Type u_2} [SemilatticeInf α] [OrderBot α] [SemilatticeSup β] [OrderTop β] (f : αβ) :

                  Completely anti-multiplicative: anti-multiplicative and f ⊥ = ⊤.

                  Equations
                  Instances For

                    Monotonicity consequences #

                    Each class refines monotonicity or antitonicity ([Ica12] Def. 1.7's closing remark).

                    theorem Entailment.IsAdditive.monotone {α : Type u_1} {β : Type u_2} [SemilatticeSup α] [SemilatticeSup β] {f : αβ} (h : IsAdditive f) :
                    Monotone f

                    Additive implies monotone.

                    theorem Entailment.IsMultiplicative.monotone {α : Type u_1} {β : Type u_2} [SemilatticeInf α] [SemilatticeInf β] {f : αβ} (h : IsMultiplicative f) :
                    Monotone f

                    Multiplicative implies monotone.

                    theorem Entailment.IsAntiAdditive.antitone {α : Type u_1} {β : Type u_2} [SemilatticeSup α] [SemilatticeInf β] {f : αβ} (h : IsAntiAdditive f) :
                    Antitone f

                    Anti-additive implies antitone ([Hoe83] Fact 4).

                    theorem Entailment.IsAntiMultiplicative.antitone {α : Type u_1} {β : Type u_2} [SemilatticeInf α] [SemilatticeSup β] {f : αβ} (h : IsAntiMultiplicative f) :
                    Antitone f

                    Anti-multiplicative implies antitone.

                    theorem Entailment.IsAntiMorphic.antiAdditive {α : Type u_1} {β : Type u_2} [Lattice α] [Lattice β] {f : αβ} (h : IsAntiMorphic f) :

                    Anti-morphic implies anti-additive.

                    theorem Entailment.IsAntiMorphic.antiMultiplicative {α : Type u_1} {β : Type u_2} [Lattice α] [Lattice β] {f : αβ} (h : IsAntiMorphic f) :

                    Anti-morphic implies anti-multiplicative.

                    theorem Entailment.IsAntiMorphic.antitone {α : Type u_1} {β : Type u_2} [Lattice α] [Lattice β] {f : αβ} (h : IsAntiMorphic f) :
                    Antitone f

                    Anti-morphic implies antitone.

                    mathlib hom-hierarchy bridges #

                    The function classes are the unbundled predicates for mathlib's bundled lattice homs: an additive function is a SupHom, a multiplicative one an InfHom. The anti-classes are the same notions read into the order dual — anti-additivity is additivity composed with toDual (De Morgan duality), so the .antitone consequences are the duals of the .monotone ones.

                    def Entailment.IsAdditive.toSupHom {α : Type u_1} {β : Type u_2} [SemilatticeSup α] [SemilatticeSup β] {f : αβ} (h : IsAdditive f) :
                    SupHom α β

                    An additive function bundles as a SupHom.

                    Equations
                    • h.toSupHom = { toFun := f, map_sup' := h }
                    Instances For
                      def Entailment.IsMultiplicative.toInfHom {α : Type u_1} {β : Type u_2} [SemilatticeInf α] [SemilatticeInf β] {f : αβ} (h : IsMultiplicative f) :
                      InfHom α β

                      A multiplicative function bundles as an InfHom.

                      Equations
                      • h.toInfHom = { toFun := f, map_inf' := h }
                      Instances For
                        theorem Entailment.isAntiAdditive_iff_isAdditive_toDual {α : Type u_1} {β : Type u_2} [SemilatticeSup α] [SemilatticeInf β] {f : αβ} :
                        IsAntiAdditive f IsAdditive (OrderDual.toDual f)

                        De Morgan duality: anti-additivity is additivity into the order dual — f sends joins to meets iff toDual ∘ f preserves joins.

                        Pointwise bridges #

                        The equational properties at the Set and GQ instances, in the membership forms consumers destructure.

                        theorem Entailment.isAntiAdditive_iff_mem {γ : Type u_1} {δ : Type u_2} {f : Set γSet δ} :
                        IsAntiAdditive f ∀ (p q : Set γ) (x : δ), x f (p q) x f p x f q
                        theorem Entailment.isAntiMultiplicative_iff_mem {γ : Type u_1} {δ : Type u_2} {f : Set γSet δ} :
                        IsAntiMultiplicative f ∀ (p q : Set γ) (x : δ), x f (p q) x f p x f q
                        theorem Entailment.isAntiAdditive_iff_gq {γ : Type u_1} {f : Set γProp} :
                        IsAntiAdditive f ∀ (p q : Set γ), f (p q) f p f q

                        The GQ-typed instance (f : Set γ → Prop, Prop as a complete lattice): anti-additivity is the familiar f (p ∪ q) ↔ f p ∧ f q.

                        Toy-World witnesses and NPI licensing thresholds #

                        theorem Entailment.isAntiAdditive_forall_mem {α : Type u_1} {β : Type u_2} (P : αβProp) :
                        IsAntiAdditive fun (X : Set α) (y : β) => xX, P x y

                        Any function of the form fun X y => ∀ x ∈ X, P x y is anti-additive in X. npComparative and Comparison.gt.overSet ([Hoe83]) instantiate this with P x y := μ x < μ y and P d y := d < μ y respectively.

                        Negation is anti-additive.

                        Negation is anti-morphic.

                        def Entailment.no' (restr scope : Set World) :
                        Set World

                        "No A is B" = ∀x. A(x) → ¬B(x).

                        Equations
                        Instances For

                          "No student ___" with fixed restrictor.

                          Equations
                          Instances For

                            "No" is DE in scope.

                            def Entailment.atMost (n : ) (restr scope : Set World) :

                            "At most n A's are B" - true if at most n worlds satisfy both. Uses an existential over a sublist witness so the def is decidable only when the predicates are decidable, but stays in Prop.

                            Equations
                            Instances For
                              theorem Entailment.atMost_mono (n : ) (restr p q : Set World) (hpq : ∀ (w : World), p wq w) (h : atMost n restr q) :
                              atMost n restr p

                              Monotonicity: if p ⊆ q (entailment) and q has at most n witnesses, so does p.

                              "At most 2 students ___" with fixed restrictor.

                              Equations
                              Instances For

                                "At most n" is DE in scope.

                                "At most 1 student ___" with fixed restrictor.

                                Equations
                                Instances For

                                  "At most n" is not anti-additive (counterexample): the strictness witness for DE ⊊ anti-additive.

                                  Weak NPI licensing: requires DE.

                                  Equations
                                  Instances For

                                    Strong NPI licensing: requires anti-additivity.

                                    Equations
                                    Instances For

                                      Superstrong NPI licensing ([Ica12] §4, after Zwarts): requires anti-morphicity — a tad bit under not but not under no.

                                      Equations
                                      Instances For

                                        DEStrength ↔ proof hierarchy ([Ica12] §4) #

                                        DEStrengthProof predicateExample licensor
                                        .weakIsDEfew, at most n
                                        .antiAdditiveIsAntiAdditiveno, nobody, without
                                        .antiMorphicIsAntiMorphicnot, never