Coordinate Agreement Resolution #
@cite{corbett-2000} @cite{adamson-anagnostopoulou-2025} @cite{carstens-2026} @cite{harbour-2014} @cite{link-1983}
When DPs are conjoined, &P must bear phi-features for agreement. Each phi-dimension resolves conjuncts' features using a distinct operation:
- Number (@cite{corbett-2000} §6.3, @cite{harbour-2014}): mereological join — canonically sg + sg → du (atom ⊔ atom = pair), coarsened to the available categories in the target number system (du → pl in {sg, pl} systems like English)
- Gender (@cite{adamson-anagnostopoulou-2025}, @cite{carstens-2026}):
intersection — shared i-features survive (via
GenderResolution.resolve) - Person (@cite{noyer-1997}): hierarchy — most marked person wins
Despite different operations, all three share a common architecture:
- Percolation: only i(nterpretable) features enter resolution
- Resolution: apply the dimension-specific operation
- Default: if resolution yields nothing, apply a language-specific default
A key structural asymmetry: number and person resolution always succeed (conjoined DPs always have some number and person), while gender resolution can fail (empty intersection → language-specific default).
Number resolution — lattice grounding #
Number resolution is derived from the join-semilattice of individuals (@cite{link-1983}) via @cite{harbour-2014}'s feature geometry:
canonicalResolvecomputes the finest category from the lattice joincoarsenTomaps it to the available categories in a number systemnumberResolveIncomposes the two
Relation to existing modules #
FeatureRecursion.lean:HarbourConfig.surfaceCategoriesprovides the set of available number categories.numberResolveConfigcomposes canonical resolution with coarsening to a Harbour configuration.GenderResolution.lean: compositional endpoint for gender resolution.Corbett2000.lean: definessemanticResolve(=canonicalResolvewithout the MIN/AUG branch, coarsened inline).Carstens2026.lean: instantiates the Bantu gender system and connects all three resolution levels.
A resolution operation for a single phi-feature dimension.
Person and number each have their own algebraic structure for
combining feature values from conjoined DPs. Gender uses
GenderResolution.resolve directly (multi-feature intersection).
resolve f₁ f₂ combines two percolated (interpretable) feature
values and returns the resolved value, or none if resolution fails.
- resolve : F → F → Option F
Instances For
Lattice-Grounded Number Resolution #
@cite{harbour-2014} @cite{corbett-2000} @cite{link-1983}
Number resolution for conjoined DPs is grounded in the join-semilattice of individuals (@cite{link-1983}). The referent of "X and Y" is the mereological sum x ⊔ y, and the sum's number category is determined by its lattice position (@cite{harbour-2014} §4):
- atom ⊔ atom (disjoint) = pair → dual ([−atomic, +minimal])
- atom ⊔ pair (disjoint) = triple → trial (minimal in plural region)
- pair ⊔ pair (disjoint) = 4+ → greater plural (non-minimal in plural)
- anything ⊔ non-minimal non-atom = non-minimal → plural
This CANONICAL resolution gives the finest possible category. Languages then coarsen the result to their available categories:
- In a {sg, pl} system (English): du coarsens to pl → sg + sg → pl
- In a {sg, du, pl} system (Slovene): du is available → sg + sg → du
- In a {sg, du, trial, greaterPl} system: sg + du → trial
The coarsening is the formal content of @cite{corbett-2000} §6.3: "the result depends on which number values the language has."
Canonical number resolution: the finest category for the mereological sum of two referents, derived from two lattice-theoretic principles (@cite{harbour-2014}):
Cardinality addition (for determinate categories): |A ⊔ B| = |A| + |B| for disjoint referent sets A, B. The sum is mapped back to the finest determinate category via
Category.fromCard.- sg(1) + sg(1) = 2 → du
- sg(1) + du(2) = 3 → trial
- du(2) + du(2) = 4 → greaterPlural
MIN/AUG lattice join (for [±minimal] systems without [±atomic]): In a 2-level lattice {minimal, augmented}, the join of any two distinct elements exceeds the minimal. Since coordination requires disjoint referents, the result is always augmented.
Catch-all: Categories without exact cardinality or MIN/AUG membership (plural, paucal, greaterPlural, etc.) resolve to plural — the default non-singular category.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Canonical resolution is commutative: x ⊔ y = y ⊔ x.
Coarsen a category to the nearest available one in a number system.
Categories not present in the system map to their semantic superordinate — the broader category whose referents include the absent category's referents.
Equations
- One or more equations did not get rendered due to their size.
- Minimalist.Agreement.CoordinateResolution.coarsenTo system c = if system.contains c = true then c else c
Instances For
System-parameterized number resolution: canonical lattice join, coarsened to the available categories in the target system.
This derives resolution rules from two independent components:
- Lattice join: sg + sg → du (canonical)
- Coarsening: du → pl in a {sg, pl} system
Equations
- One or more equations did not get rendered due to their size.
Instances For
Number resolution operation for a given number system.
Equations
- Minimalist.Agreement.CoordinateResolution.numberOp system = { resolve := Minimalist.Agreement.CoordinateResolution.numberResolveIn system }
Instances For
numberResolveIn with the system from a HarbourConfig.
Equations
Instances For
The canonical resolution is verified against a concrete 3-atom powerset lattice. Atoms: {a}=1, {b}=2, {c}=4. Pairs: {a,b}=3, {a,c}=5, {b,c}=6. Triple: {a,b,c}=7. Join = bitwise OR.
`Features.Number.latticeToFeatures` classifies elements by lattice
position: atoms → singular, minimal non-atoms → dual, non-minimal
non-atoms → plural.
Atom 1 ⊔ Atom 2 = 3, which is dual (minimal non-atom).
Lattice grounding: canonicalResolve sg sg = du.
Atom 4 ⊔ Pair 3 = 7, which is plural (non-minimal non-atom).
Lattice grounding: canonicalResolve sg du = trial (plural in
base system, trial with recursion).
The derived canonicalResolve agrees with the powerset lattice:
join in the concrete lattice, then classify via latticeToFeatures,
matches canonicalResolve applied to the classified inputs.
- atom(1) is singular, atom(2) is singular → join=3 is dual
- atom(1) is singular, pair(6) is dual → join=7 is plural (= trial with recursion)
This is the structural proof that canonicalResolve is the lattice join
pushed through latticeToFeatures, not a stipulation.
In a {sg, pl} system (English): sg + sg → pl. Canonical du coarsened to plural.
In a {sg, du, pl} system (Slovene): sg + sg → du. Canonical du is available, no coarsening.
In a {sg, du, pl} system: sg + du → pl (triple = plural without recursion).
In a {sg, du, trial, greaterPl} system (Larike): sg + du → trial.
In a {sg, du, trial, greaterPl} system: sg + sg → du.
In a {min, aug} system (Winnebago): min + min → aug.
Resolution Closure #
Number resolution is closed under every well-formed number system
generated by @cite{harbour-2014}'s feature recursion: for any two
categories a, b in a system S, the resolved category
coarsenTo S (canonicalResolve a b) is also in S.
This is a non-trivial structural property — canonicalResolve can
produce categories not in the target system (e.g., du from sg + sg
in a {sg, pl} system), but coarsenTo always maps the result back to
an available category. The theorem verifies this for all 15 Table 3
entries (12 distinct configs, covering 2–5 value systems).
Resolution closure: for every Harbour 2014 Table 3 system, resolving any two categories from the system produces a category in the system.
Person resolution: most marked wins (@cite{noyer-1997}).
1st > 2nd > 3rd. The person with the higher prominence rank determines the resolved person on &P. This follows from person features being privative: [+participant] subsumes [−participant], and [+author] subsumes [−author]. Resolution always succeeds.
Equations
- Minimalist.Agreement.CoordinateResolution.personResolve Features.Prominence.PersonLevel.first x✝ = some Features.Prominence.PersonLevel.first
- Minimalist.Agreement.CoordinateResolution.personResolve x✝ Features.Prominence.PersonLevel.first = some Features.Prominence.PersonLevel.first
- Minimalist.Agreement.CoordinateResolution.personResolve Features.Prominence.PersonLevel.second x✝ = some Features.Prominence.PersonLevel.second
- Minimalist.Agreement.CoordinateResolution.personResolve x✝ Features.Prominence.PersonLevel.second = some Features.Prominence.PersonLevel.second
- Minimalist.Agreement.CoordinateResolution.personResolve Features.Prominence.PersonLevel.third Features.Prominence.PersonLevel.third = some Features.Prominence.PersonLevel.third
Instances For
Person resolution operation.
Equations
Instances For
Percolation: extract the feature value iff interpretable.
u-features are excluded from the resolution calculus (@cite{adamson-anagnostopoulou-2025}, @cite{carstens-2026}).
Equations
- Minimalist.Agreement.CoordinateResolution.percolate a = if (a.interp == Minimalist.Interpretability.interpretable) = true then some a.value else none
Instances For
Resolve two annotated features: percolate, then apply the operation.
Both features must be interpretable for resolution to proceed.
If either is uninterpretable, resolution yields none (default).
Equations
- One or more equations did not get rendered due to their size.
Instances For
Number resolution always succeeds for any system.
Person resolution always succeeds.
Gender resolution with singleton interpretable bundles succeeds iff features match — the only dimension that can fail, triggering default agreement.
Number resolution is commutative for any system.
Person resolution is commutative (both directions yield max).
The structural asymmetry: number and person always resolve successfully, but gender can fail. This explains why default agreement is a gender phenomenon, not a number or person one.
A phi-feature bundle for a single conjunct DP.
- gender : GenderResolution.FeatureBundle G
Instances For
Resolved phi-features for a conjoined DP (&P).
- person : Option Features.Prominence.PersonLevel
- number : Option Features.Number.Category
- gender : Option (List G)
Instances For
Resolve all phi-features for two conjoined DPs.
Each dimension is resolved independently:
- Number: mereological join coarsened to
system(numberOp) - Person: hierarchy (
personOp) - Gender:
GenderResolution.resolve(percolation + intersection)
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
1st + 3rd → 1st: first person is highest on the hierarchy.
1st + 2nd → 1st: first person outranks second.
3rd + 3rd → 3rd: full DPs are always third person.