Documentation

Linglib.Features.Number.Basic

Grammatical number — the canonical value space #

[Cor00] [Har14a] [Gre63] [Cys09]

Number is the canonical grammatical-number type: [Cor00]'s analytical inventory of number values, the vocabulary in which systems, agreement, resolution, and semantics are stated. The UD tagset (UD.Number) is the realization vocabulary — the surface morphology a value projects to via Number.toUD (the analogue of Pronoun.toWord) and is ingested from via Number.fromUD at the corpus boundary. Values UD cannot tag (general, minimal, augmented, unitAugmented) realize as none; conversely UD.Number.Inv/.Coll/.Count are morphological form-categories that are not values of the count-number system, and have no Number preimage. The quadral is deliberately excluded: [Cor00] reanalyzes apparent quadrals (Sursurunga, Tangga) as paucals.

Values are classified along two orthogonal dimensions ([Cor00]):

Main declarations #

Implementation notes #

The [Har14a] feature decomposition and its lattice grounding live in Features/Number/Decomposition.lean; coordinate resolution in Features/Number/Resolve.lean; the HasNumber capability mixin in Features/Number/Capabilities.lean.

inductive Number :

Grammatical number: [Cor00]'s analytical inventory of number values. The canonical type — UD.Number is its surface realization vocabulary (Number.toUD/Number.fromUD).

  • general : Number

    Non-committal to cardinality; outside the number system (Bayso lúban 'lion(s)', Japanese inu 'dog(s)'). Not to be conflated with non-countability: a general form is a value-noncommittal form of a noun that has number, whereas a non-countable noun lacks the contrast altogether — a countability-class fact, not a number value ([Gri18]; Studies/Grimm2018.lean).

  • singular : Number

    Exactly one ([+atomic, +minimal]).

  • dual : Number

    Exactly two ([−atomic, +minimal]).

  • trial : Number

    Exactly three (recursive [+minimal] on the plural region).

  • paucal : Number

    A few — indeterminate boundary ([−additive]).

  • plural : Number

    More than one — the residual value ([−atomic] or [+additive]).

  • greaterPaucal : Number

    Indeterminate, larger than paucal (recursive [−additive]).

  • greaterPlural : Number

    Abundance / totality (recursive [−minimal] on the plural region).

  • minimal : Number

    [+minimal] without [±atomic] — atoms and minimal non-atoms; distinct from singular.

  • augmented : Number

    [−minimal] without [±atomic] — the complement of minimal.

  • unitAugmented : Number

    Recursive [+minimal] on the augmented region — minimal non-minimal; distinct from dual.

  • globalPlural : Number

    Recursive [+additive] on a [+additive] region (tentative in [Har14a]).

Instances For
    @[implicit_reducible]
    instance instDecidableEqNumber :
    DecidableEq Number
    Equations
    def instReprNumber.repr :
    NumberStd.Format
    Equations
    Instances For
      @[implicit_reducible]
      instance instReprNumber :
      Repr Number
      Equations
      @[implicit_reducible]
      instance instFintypeNumber :
      Fintype Number
      Equations

      Classification predicates #

      A number value is determinate iff its cardinality boundary is fixed. Minimal and unit augmented are indeterminate: they depend on the composition of the group, not a fixed cardinality.

      Equations
      Instances For
        @[implicit_reducible]
        Equations
        • One or more equations did not get rendered due to their size.

        A number value participates in the number system (is not general).

        Equations
        Instances For
          @[implicit_reducible]
          Equations
          • One or more equations did not get rendered due to their size.
          def Number.exactCard :
          NumberOption

          Exact referent-set cardinality for determinate number values.

          Singular denotes exactly 1 individual (atom), dual exactly 2 (pair), trial exactly 3 (triple). All other values have indeterminate or context-dependent cardinality and return none.

          Used by Number.resolve to derive coordinate resolution from cardinality addition: |A ⊔ B| = |A| + |B| for disjoint sets.

          Equations
          Instances For

            Whether a value belongs to the [±minimal] number system (without [±atomic]). In such systems, minimal = atoms ∪ minimal non-atoms, and augmented = everything else.

            Equations
            Instances For
              @[implicit_reducible]
              Equations
              • One or more equations did not get rendered due to their size.
              def Number.fromCard :
              Number

              Map a referent-set cardinality back to the finest determinate value. 1 → singular, 2 → dual, 3 → trial; sums of 4+ have no determinate value and fall to the residual plural (greater plural is an abundance value in [Cor00]'s sense, not "four or more").

              Equations
              Instances For

                fromCard inverts exactCard for determinate values.

                Realization: the UD bridge #

                def Number.toUD :
                NumberOption UD.Number

                Realize a number value as a UD morphological tag (general has no UD equivalent; minimal, augmented, and unit augmented cannot be tagged).

                Equations
                Instances For

                  Ingest a UD morphological tag as a number value (partial).

                  Seven core values round-trip cleanly. Three UD tags have no analytical equivalent:

                  • Inv (inverse number): marks the unexpected number for a given noun — plural for some nouns, singular for others. Not a fixed cardinality.
                  • Coll (collective): denotes a group-as-unit (Russian листва 'foliage'), distinct from general number, which is non-committal to cardinality.
                  • Count (count form): a special form after numerals (Hungarian, Welsh), not equivalent to singular (exactly one).
                  Equations
                  Instances For

                    Round-trip: fromUDtoUD = id for all in-system values with a UD tag.

                    The markedness order #

                    a ≤ b means b presupposes a: every number system containing b also contains a — the implicational hierarchy of [Gre63] and [Cor00] §2.3. The order is derived, not stipulated: the values generated by any well-formed Harbour configuration form a lower set in this order (Minimalist.Phi.Recursion.categories_isLowerSet, from [Har14a]'s feature geometry).

                    Three independent branches:

                    [±atomic] branch:    trial    greaterPlural
                                           |        /
                                          dual     /
                                           |      /
                                       singular  /
                                           |    /
                                        plural
                    
                    [±minimal] branch:       unitAugmented
                                                  |
                                              augmented
                                                  |
                                               minimal
                    
                    Approximative branch:    greaterPaucal    globalPlural
                                                  |               |
                                                paucal          plural
                    

                    The [±atomic] branch and [±minimal] branch are independent: singular and minimal never cooccur. Plural spans both. general is isolated (incomparable with all in-system values).

                    This typological order is one of three markedness notions on number and must not be conflated with the others: the specification order on the Harbour decomposition (Features.ContainmentPair.specLevel: sg > du > pl, linear) and semantic markedness ([Sau03], which rides on specification). On the sg/pl pair the two orders disagree — here sg and pl are incomparable; under specification sg > pl.

                    @[implicit_reducible]
                    instance Number.instLE :
                    Equations
                    @[implicit_reducible]
                    instance Number.instDecidableRelLe :
                    DecidableRel fun (x1 x2 : Number) => x1 x2
                    Equations
                    @[implicit_reducible]
                    instance Number.instPartialOrder :
                    PartialOrder Number
                    Equations
                    • One or more equations did not get rendered due to their size.

                    Number opposition stages ([Cys09], Fig 10.8) #

                    inductive Number.Stage :

                    Number opposition stages ([Cys09], Fig 10.8): a coarsening of the number values into a four-step hierarchy of typological richness, from no number marking (N1) to full number marking with restricted groups (N3/N4). Linearly ordered by richness.

                    • N1 : Stage

                      Undifferentiated number marking (singular = group unmarked).

                    • N2 : Stage

                      Singular vs group (basic number opposition).

                    • N3 : Stage

                      Restricted group (dual/trial) distinguished from unrestricted.

                    • N4 : Stage

                      Small group (paucal) additionally distinguished.

                    Instances For
                      @[implicit_reducible]
                      instance Number.instDecidableEqStage :
                      DecidableEq Stage
                      Equations
                      def Number.instReprStage.repr :
                      StageStd.Format
                      Equations
                      Instances For
                        @[implicit_reducible]
                        Equations

                        Numeric embedding into ℕ preserving the richness order.

                        Equations
                        Instances For
                          theorem Number.Stage.toNat_le_toNat {a b : Stage} :
                          a b a.toNat b.toNat

                          The order on Stage is the toNat order.

                          Number systems ([Cor00] §2.3) #

                          structure Number.System :

                          A number system: the values available in a language, which are obligatory vs facultative, and whether general number exists ([Cor00] §2.3). Per-language instances live with the studies and Fragments that record them.

                          • name : String
                          • values : List Number

                            Values available within the number system.

                          • hasGeneral : Bool

                            Whether the language has general number (a form outside the system).

                          • facultative : List Number

                            Values whose use is optional (facultative).

                          Instances For
                            def Number.instDecidableEqSystem.decEq (x✝ x✝¹ : System) :
                            Decidable (x✝ = x✝¹)
                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For
                              def Number.System.size (ns : System) :

                              Number of values in the system.

                              Equations
                              Instances For

                                Whether a value is obligatory (present and not facultative).

                                Equations
                                Instances For
                                  @[implicit_reducible]
                                  instance Number.System.instDecidableIsObligatory (ns : System) (v : Number) :
                                  Decidable (ns.IsObligatory v)
                                  Equations

                                  Implicational universals ([Gre63], [Cor00] §2.3.1) #

                                  Trial implies dual ([Har14a] Table 1: TR → DU).

                                  Equations
                                  Instances For

                                    Dual implies singular ([Har14a] Table 1: DU → SG).

                                    Equations
                                    Instances For

                                      Singular implies plural ([Har14a] Table 1: SG → PL).

                                      Equations
                                      Instances For

                                        Dual implies plural ([Gre66], [Cor00] §2.3.1; the composition of DU → SG and SG → PL).

                                        Equations
                                        Instances For

                                          Minimal implies augmented or plural ([Har14a] Table 1: MIN → AUG/PL).

                                          Equations
                                          Instances For

                                            Paucal implies plural ([Har14a] Table 1: PC → PL).

                                            Equations
                                            Instances For

                                              Greater paucal implies paucal ([Har14a] Table 1: GR.PC → PC).

                                              Equations
                                              Instances For

                                                Greater plural implies plural or augmented ([Har14a] Table 1: GR.PL → PL/AUG) — disjunctive, so it is a System predicate, not a markedness-order edge.

                                                Equations
                                                Instances For

                                                  Plural implies singular or minimal ([Har14a] Table 1: PL → SG/MIN). Plural requires a "base" value — either singular (from [±atomic]) or minimal (from [±minimal]).

                                                  Equations
                                                  Instances For

                                                    Augmented implies minimal ([Har14a] Table 1: AUG → MIN).

                                                    Equations
                                                    Instances For

                                                      Unit augmented implies augmented ([Har14a] Table 1: U.AUG → AUG).

                                                      Equations
                                                      Instances For
                                                        @[implicit_reducible]
                                                        Equations
                                                        @[implicit_reducible]
                                                        Equations
                                                        @[implicit_reducible]
                                                        Equations
                                                        @[implicit_reducible]
                                                        Equations
                                                        @[implicit_reducible]
                                                        Equations
                                                        @[implicit_reducible]
                                                        Equations
                                                        @[implicit_reducible]
                                                        Equations

                                                        A well-formed number system satisfies all implicational universals ([Har14a] Table 1). Any Fragment-recorded system discharges this by decide.

                                                        Equations
                                                        • One or more equations did not get rendered due to their size.
                                                        Instances For
                                                          @[implicit_reducible]
                                                          Equations

                                                          The [Cys09] stage a system realizes, by value count: 0–1 values → N1 (undifferentiated), 2 → N2 (basic opposition), 3 → N3 (restricted group), 4+ → N4 (paucal additionally).

                                                          Equations
                                                          Instances For