Link 1983: The Logical Analysis of Plurals and Mass Terms #
Link's model structure for the ontology of plurals and mass terms:
a complete (complementary) join semi-lattice without bottom element
E of individuals, with a designated subset of atoms (singular
objects); a join semi-lattice D of portions of matter; and a
materialization homomorphism h : E → D connecting them. The
two-level structure separates individual part (the lattice ordering
on E) from material part (induced by h).
(The "complete atomic Boolean algebra" framing common in subsequent literature — e.g. [Lan00], [Cha17] — is a later simplification, not Link 1983's actual ontology; see [Kri89] pp.77, 91 for the original reading.)
Main declarations #
star,properPlural,IsDistr,Inv— Link's predicate operators.Materialization,mPart,mEquiv— the constitution relation.pred_iff_star_of_atom,star_has_base_part,distr_atom_part— Link's theorems on the closure operator.
Implementation notes #
Link's * IS Mereology.AlgClosure; Link's cumulative reference IS
Mereology.CUM; Link's atom IS Mereology.Atom. The notation in this
file (star, IsDistr, etc.) is preserved for paper-faithful
legibility but is definitionally identical to the Semantics/Mereology.lean
substrate. Materialization homomorphism Materialization corresponds to
mathlib's SupHom and could be folded into it (Todo).
| Link | Definition | Linglib |
|---|---|---|
*P | closure of P under ⊔ᵢ | Mereology.AlgClosure |
⊕P | *P ∧ ¬At (proper plural) | properPlural |
IsDistr(P) | ∀x. P x → At x | IsDistr |
Inv(P) | closed under m-equivalent substitution | Inv |
Todo #
Materializationcould bemathlib'sSupHom(aIsSumHom-carrying bundled function); the bespoke struct adds no fields beyond the hom property.- Bridge to
Distributivity.distMaximal: the Finset-side operator is the join-prime atom specialisation ofdistr_atom_part. Currently prose-only (§6 below); a formaldistMaximal_iff_star_atomstheorem requires aligningFinset AtomwithType*-lattice carriers.
Link's predicate operators #
*P: Link's star operator — plural closure under join.
‖*P‖ is the complete ⊔ᵢ-subsemilattice generated by ‖P‖.
This IS Mereology.AlgClosure.
Equations
Instances For
⊕P: the proper plural predicate (D.12).
⊕Pa ↔ *Pa ∧ ¬At a.
If P = child', then ⊕P = children': non-atomic sums of
child-individuals.
Equations
- Semantics.Plurality.Algebra.properPlural P x = (Mereology.AlgClosure P x ∧ ¬Mereology.Atom x)
Instances For
IsDistr(P): P is a distributive predicate (D.19).
Distributive predicates are true of atoms only.
Common nouns like "child" and intransitive verbs like "die"
are distributive. Collective predicates like "gather" are not.
Equations
- Semantics.Plurality.Algebra.IsDistr P = ∀ (x : E), P x → Mereology.Atom x
Instances For
Inv(P): P is an invariant predicate (D.21).
Invariant predicates are closed under substitution of
materially equivalent individuals. Spatio-temporal predicates
like "be-on-the-table" are invariant: "the cards are on
the table" iff "the deck of cards is on the table."
Equations
- Semantics.Plurality.Algebra.Inv h P = ∀ (x y : E), h x = h y → (P x ↔ P y)
Instances For
ᴰP: Link's D operator ([Lin87b] eq. 48, p. 171):
converts a (possibly non-distributive) predicate P into the
distributive predicate that holds of x iff every atomic part of
x satisfies P. Link's formulation ᴰVP := λx∀y[y*Πx → VP(y)]
where y*Πx is "y is an atomic i-part of x", here
Atom y ∧ y ≤ x.
Companion to star: where star P = AlgClosure P extends a
predicate UPWARD (closure under join), D P extends it DOWNWARD
to atomic parts. [Cha19a] eq. (12) recapitulates
this definition and uses it as the canonical VP-level
distributivity operator.
Equations
- Semantics.Plurality.Algebra.D P x = ∀ y ≤ x, Mereology.Atom y → P y
Instances For
D of a P-atom is just P itself.
ᴰᴶᴿVP: Link's DJR operator ([Lin87b] eq. 56, p. 173):
the each-other operator. Converts a binary predicate VP (the
verb relation) into a unary predicate that holds of x iff every
distinct pair of atomic parts of x stands in VP. Link's
formulation ᴰᴶᴿVP(x) := ∀y∀z[y, z*Πx ∧ y ≠ z → VP(y, z)].
This is the lattice-level reciprocity operator: DJR VP x IS the
strong-reciprocity condition on VP over the atomic parts of x,
just as D P x is the strong-distributivity condition on P. The
Finset-level analog is Plurality.Reciprocal.StrongReciprocity.
Equations
- Semantics.Plurality.Algebra.DJR VP x = ∀ y ≤ x, ∀ z ≤ x, Mereology.Atom y → Mereology.Atom z → y ≠ z → VP y z
Instances For
The constitution relation #
Link's materialization (D.22): a join-homomorphism E → M
from individuals to their material constitution. Defined as an
abbreviation for mathlib's SupHom E M to inherit the bundled
sup-preserving function API; the alias preserves the paper-faithful
name used throughout [Lin83].
Equations
- Semantics.Plurality.Algebra.Materialization E M = SupHom E M
Instances For
Material part (m-part) relation (D.23): x ≤ₘ y ↔ h(x) ≤ h(y).
"The portion of matter constituting x is part of the portion
constituting y." Coarser than individual part (≤ᵢ).
Equations
- Semantics.Plurality.Algebra.mPart mat x y = (mat x ≤ mat y)
Instances For
Material equivalence (D.24): x ~ y ↔ h(x) = h(y).
"x and y are made of the same stuff."
Equations
- Semantics.Plurality.Algebra.mEquiv mat x y = (mat x = mat y)
Instances For
T.2: Individual part implies material part.
a Π b → a ⊤ b. Follows from monotonicity of h.
T.4 (partial): Material equivalence is an equivalence relation.
Material equivalence ↔ mutual material part.
Invariant predicates respect material equivalence by definition.
Link's theorems #
T.7: P ⊆ *P — every predicate is contained in its plural closure.
T.11: CUM(*P) — *P is always cumulative.
If *P(x) and *P(y) then *P(x ⊔ y). This is the formal
content of Link's "homogeneous reference" property.
T.8 (backward): For atoms, *P implies P.
An atom cannot arise as a proper join (since a ≤ a ⊔ b
forces a = a ⊔ b for atoms), so the only way
AlgClosure P x can hold for an atom is via the base case.
T.8: At x → (Px ↔ *Px) — for atoms, P and *P coincide.
T.6: Distributive predicates and proper plurals are disjoint. If P is distributive (true of atoms only), then no P-individual is a proper plural (non-atomic).
Contrapositive of T.6: proper plurals of distributive predicates are NOT in P itself.
Distributive inference (join-prime atoms) #
Atoms are join-prime: if an atom is below a join, it is below
one of the joinands. This holds in Boolean algebras and
distributive lattices, and follows from Link's relative-
complementarity assumption on E.
Equations
- Semantics.Plurality.Algebra.AtomJoinPrime E = ∀ (a : E), Mereology.Atom a → ∀ (x y : E), a ≤ x ⊔ y → a ≤ x ∨ a ≤ y
Instances For
Link's distributive inference:
If P is distributive and *P(x), then every atom below x
satisfies P.
"John, Paul, George, and Ringo are pop stars" → *popStar(j⊕p⊕g⊕r)
"Paul is a pop star" → popStar(p)
Requires atoms to be join-prime (holds in Link's Boolean algebra).
Predicate classification #
If P is distributive, then ⊕P extends P with genuinely new entities: the join of two distinct P-atoms is a proper plural.
CUM for the proper plural ⊕P: sums of proper plurals are proper plurals.
Connection to Finset-based distributivity #
Link's IsDistr(P) (P applies to atoms only) is the mereological
foundation for distMaximal in Distributivity.lean. The Finset-based
distMaximal P x w = ∀a ∈ x. P(a)(w) corresponds to Link's distributive
inference (distr_atom_part): if P is distributive, distributing to
every atom-part is correct. The connection is structural — Link works
with a lattice E and atoms; distMaximal works with Finset Atom.
The pointwise correspondence:
- Link's atoms
A ⊆ E= the typeAtominDistributivity.lean - Link's
≤ᵢ(individual part) = Finset membershipa ∈ x - Link's
*P(x)(plural closure) = "the members ofxall satisfyP" IsDistr(P) ∧ *P(x)→∀a atom-part-of x. P(a)=distMaximal P x w
The formal bridge is proved in Distributivity.lean:
distMaximal_iff_star_atoms (star form) and distMaximal_iff_forall_atom
(atom form). It runs through mathlib's IsAtom, not the bespoke Atom
above: over an OrderBot carrier like Finset Atom the bespoke
Atom x := ∀ y ≤ x, y = x degenerates to {⊥} (only ∅ satisfies it, since
∅ ≤ x ∧ ∅ ≠ x for nonempty x), so distr_atom_part does not instantiate
at the free model. IsAtom excludes ⊥, so the atoms are the singletons
(Finset.isAtom_iff).
Restatement of distr_atom_part under the star alias, anticipating
the Finset-side distMaximal_forces_all consumer.