Documentation

Linglib.Core.Nominal.Maximality

Maximality and Coppock–Beaver Factorization #

@cite{sharvy-1980} @cite{kriz-2015} @cite{coppock-beaver-2015} @cite{russell-1905}

Predicate operators consumed by the NominalKind interpretation function in Core/Nominal/Interpret.lean. All operators live over Core.Logic.Intensional.Frame.Denot so they slot directly into the IL stack.

What this module provides #

Design notes #

@cite{coppock-beaver-2015}'s Existence component. Asserted, not presupposed, in their factorization of the Russellian iota.

Equations
Instances For

    @cite{coppock-beaver-2015}'s Uniqueness component. Presupposed (rather than asserted) on their account; this is the projection contrast that distinguishes "the King of France isn't bald" (uniqueness presupposed) from a plain Russellian negation (uniqueness in scope of negation).

    Equations
    Instances For

      The classical Russellian condition: ∃!x. P x. By construction the conjunction of @cite{coppock-beaver-2015}'s two components.

      Equations
      Instances For

        Russellian existence-and-uniqueness is exactly the conjunction of Coppock–Beaver Existence and Uniqueness. By definition.

        Existence and Uniqueness are logically independent. The empty predicate λ _ => False satisfies Uniqueness (vacuously) but not Existence — @cite{coppock-beaver-2015}'s key motivating data.

        The order-free unique-element selector: returns the witness when there is exactly one P-satisfier. Order-free version usable when no preorder is declared on F.Entity.

        Equations
        Instances For

          russellIota returns some exactly when Russellian existence-and- uniqueness holds.

          The witness returned by russellIota satisfies the predicate.

          theorem Core.Nominal.russellIota_witness_unique {F : Logic.Intensional.Frame} (P : F.Denot Logic.Intensional.Ty.et) (e₁ e₂ : F.Entity) (h₁ : russellIota P = some e₁) (h₂ : russellIota P = some e₂) :
          e₁ = e₂

          Two witnesses returned by russellIota (over the same predicate) must coincide. By Uniqueness.

          def Core.Nominal.russellIotaList {E : Type u_1} (domain : List E) (P : EBool) :
          Option E

          Computable list-based Russellian iota: returns the unique witness when domain.filter P is a singleton, none otherwise. This is the concrete operational counterpart to russellIota and the canonical referent selector used by Core.Presupposition.presupOfReferent.

          Equations
          Instances For
            theorem Core.Nominal.russellIotaList_eq_some_iff {E : Type u_1} (domain : List E) (P : EBool) (e : E) :
            russellIotaList domain P = some e List.filter P domain = [e]

            russellIotaList returns some e iff domain.filter P is the singleton [e]. By definition, modulo the match reduction.

            @cite{sharvy-1980}: an entity e is maximal among the P-satisfiers when e satisfies P and dominates every other P-satisfier under . For singular count nouns the order is flat (only e ≤ e) so maximality coincides with Russellian uniqueness; for plurals (with @cite{link-1983}'s join semilattice) maximality returns the sum of all atoms.

            Equations
            Instances For
              theorem Core.Nominal.isMaximal_unique {F : Logic.Intensional.Frame} [PartialOrder F.Entity] (P : F.Denot Logic.Intensional.Ty.et) (e₁ e₂ : F.Entity) (h₁ : IsMaximal P e₁) (h₂ : IsMaximal P e₂) :
              e₁ = e₂

              Sharvy maximality is unique: at most one entity is IsMaximal P under a partial order. Antisymmetry collapses two maxima into one.

              noncomputable def Core.Nominal.sharvyMax {F : Logic.Intensional.Frame} [PartialOrder F.Entity] (P : F.Denot Logic.Intensional.Ty.et) :
              Option F.Entity

              The Sharvy maximal-element selector. Returns the unique maximal P-satisfier when one exists; none otherwise (no satisfier, or no upper bound among the satisfiers).

              Equations
              Instances For
                theorem Core.Nominal.sharvyMax_isSome_iff_isMaximal {F : Logic.Intensional.Frame} [PartialOrder F.Entity] (P : F.Denot Logic.Intensional.Ty.et) :
                (sharvyMax P).isSome = true (e : F.Entity), IsMaximal P e

                sharvyMax returns some exactly when a maximal P-satisfier exists.

                The witness returned by sharvyMax is maximal.

                theorem Core.Nominal.sharvyMax_witness_satisfies {F : Logic.Intensional.Frame} [PartialOrder F.Entity] (P : F.Denot Logic.Intensional.Ty.et) (e : F.Entity) (h : sharvyMax P = some e) :
                P e

                The witness returned by sharvyMax satisfies P.

                @cite{kriz-2015}: a scope predicate S is homogeneous on the P-satisfiers when it holds either of all of them or of none of them. This is what licenses "the boys are tall" — Križ argues uniformity is presupposed, so partial-truth cases (some boys tall, others not) yield presupposition failure rather than False.

                Equations
                Instances For

                  Homogeneity is symmetric in its two failure modes (uniformly-S vs uniformly-¬S). Both yield well-defined truth values; only the split case is presupposition failure. By definition.

                  Russellian uniqueness implies Križ homogeneity (vacuously beyond the unique witness): if there is exactly one P-satisfier, then any S is trivially uniform on the (singleton) extension of P.