Documentation

Linglib.Features.Number.Resolve

Number resolution #

[Cor00] [Har14a] [Lin83]

The single canonical number-resolution operation: when two number-bearing referents combine (conjoined DPs, resolved agreement), the result is derived from the join-semilattice of individuals ([Lin83]) via [Har14a]'s feature geometry, then coarsened to the values the language's number system makes available — the formal content of [Cor00] §6.3: "the result depends on which number values the language has."

Consumers: Studies/Carstens2026.lean calls resolveIn as the number dimension of its coordinate φ-resolution; Studies/Corbett2000.lean states the book's resolution data over its language systems.

Canonical resolution #

Canonical number resolution: the finest value for the mereological sum of two referents, derived from two lattice-theoretic principles. The resolution data are [Cor00] §6.3 (resolved dual in Slovene/Sorbian); the value lattice they are derived from is [Lin83]/[Har14a]:

  1. Cardinality addition (for determinate values): |A ⊔ B| = |A| + |B| for disjoint referent sets A, B. The sum is mapped back to the finest determinate value via Number.fromCard.

    • sg(1) + sg(1) = 2 → du
    • sg(1) + du(2) = 3 → trial
    • du(2) + du(2) = 4 → plural (no determinate value for sums ≥ 4)
  2. 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.

  3. Catch-all: values without exact cardinality or MIN/AUG membership (plural, paucal, greaterPlural, etc.) resolve to plural — the default non-singular value.

Equations
Instances For
    theorem Number.resolve_comm (a b : Number) :
    a.resolve b = b.resolve a

    Canonical resolution is commutative: x ⊔ y = y ⊔ x.

    theorem Number.resolve_assoc (a b c : Number) :
    (a.resolve b).resolve c = a.resolve (b.resolve c)

    Canonical resolution is associative: sums of three or more referents resolve the same under any bracketing (cardinalities ≥ 4 all collapse to the residual plural, which absorbs).

    Coarsening to a system #

    def Number.coarsenTo (system : List Number) (c : Number) :

    Coarsen a value to the nearest available one in a number system.

    Values not present in the system map to their semantic superordinate — the broader value whose referents include the absent value's referents.

    The superordinate map is hand-specified: it is not monotone in the markedness order (Number.instPartialOrder), whose direction is implicational (b presupposes a), not referent-containment. By construction it returns a value in system (or the input unchanged), so resolveIn is closed over every [Har14a] Table 3 system.

    Equations
    Instances For
      def Number.resolveIn (system : List Number) (a b : Number) :

      System-parameterized number resolution: canonical lattice join, coarsened to the available values in the target system.

      This derives resolution rules from two independent components:

      1. Lattice join: sg + sg → du (canonical)
      2. Coarsening: du → pl in a {sg, pl} system
      Equations
      Instances For
        theorem Number.resolveIn_comm (system : List Number) (a b : Number) :
        resolveIn system a b = resolveIn system b a

        System-parameterized resolution is commutative.

        Resolution typed by a Number.System: resolve in the system's values.

        Equations
        Instances For

          Lattice verification #

          The canonical resolution is verified against the 3-atom powerset lattice (Number.ps3: nonempty subsets of Fin 3, join = union). Number.latticeToFeatures classifies elements by lattice position; resolve is the union pushed through the classification.

          Atom ⊔ atom is a pair, which is dual (minimal non-atom). Lattice grounding: resolve sg sg = du.

          Atom ⊔ pair is the triple, which is plural (non-minimal non-atom). Lattice grounding: resolve sg du = trial (plural in the base system, trial with recursion).

          The derived resolve agrees with the powerset lattice: join in the concrete lattice, then classify via latticeToFeatures, matches resolve applied to the classified inputs — the structural proof that resolve is the lattice join pushed through the classification, not a stipulation.

          System-dependent predictions #

          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.