Documentation

Linglib.Semantics.Plurality.NumberFeatures

The feature decomposition of number #

Harbour decomposes the three basic number values into two features, [±atomic] and [±minimal]. A bundle is the set of its positive features, and it passes the containment filter when they form a lower set of the chain minimal < atomic, so the three values are the chain's initial segments. For number the filter follows from the semantics: an atom is minimal in every region excluding the null individual (Number.singular_subset_minimal), so [+atomic, −minimal] corresponds to no number, as Harbour observes. Lattice elements are classified by the regions of Harbour's features (Semantics/Plurality/Number.lean).

Main definitions #

Main results #

Implementation notes #

Harbour argues that the features are bivalent, a privative encoding collapsing values such as unit augmented and minimal; a bundle here is the set of positive values of a bivalent valuation, the negative values being its complement. The examples use the powerset lattice Finset (Fin n) on its nonempty subsets, whose atoms are the singletons.

References #

The feature bundle #

inductive Number.Feature :

Harbour's two number features, atomicity depending on minimality.

  • minimal : Feature

    [minimal] holds of a referent minimal in its region.

  • atomic : Feature

    [atomic] holds of an atom.

Instances For
    @[instance_reducible]
    Equations
    def Number.instReprFeature.repr :
    Feature → ℕ → Std.Format
    Equations
    Instances For
      @[instance_reducible]
      Equations
      @[instance_reducible]
      Equations

      Feature.rank places minimal below atomic on the dependency chain.

      Equations
      Instances For
        @[reducible, inline]

        A number feature bundle is the set of its positive features.

        Equations
        Instances For

          The singular is [+atomic, +minimal], the whole chain.

          Equations
          Instances For

            The dual is [−atomic, +minimal], the chain below atomic.

            Equations
            Instances For

              The plural is [−atomic, −minimal], the empty bundle.

              Equations
              Instances For

                The number value a bundle realizes; the ill-formed [+atomic, −minimal] realizes none.

                Equations
                Instances For

                  The bundle of a basic number value; the values that need feature recursion or additivity have none.

                  Equations
                  Instances For
                    theorem Number.card_wellFormed :
                    Fintype.card { nf : Features // IsLowerSet ↑nf } = 3

                    Exactly three bundles pass the containment filter, the three basic number values.

                    theorem Number.toNumber_isSome_iff (f : Features) :
                    f.toNumber.isSome = true ↔ IsLowerSet ↑f
                    theorem Number.ofNumber_toNumber (f : Features) :
                    IsLowerSet ↑f → f.toNumber.bind Features.ofNumber = some f
                    theorem Number.toNumber_ofNumber (n : Number) (f : Features) :
                    Features.ofNumber n = some f → f.toNumber = some n

                    Classification by lattice position #

                    def Number.latticeToFeatures {D : Type u_1} [SemilatticeSup D] [Fintype D] [DecidableLE D] (P : D → Prop) [DecidablePred P] (x : D) :

                    A lattice element realizes, in the region P, the singular on the atoms of P, the dual on its minimal non-atoms, and the plural on the rest.

                    Equations
                    Instances For
                      theorem Number.latticeToFeatures_wellFormed {D : Type u_1} [SemilatticeSup D] [Fintype D] [DecidableLE D] (P : D → Prop) [DecidablePred P] (x : D) :
                      IsLowerSet ↑(latticeToFeatures P x)

                      Classification never produces the ill-formed cell.

                      @[reducible, inline]
                      abbrev Number.dualPredOnLattice {D : Type u_1} [SemilatticeSup D] (domain P : D → Prop) (x : D) :

                      The dual as a predicate modifier holds of x when P x and x has exactly two atomic parts, being a minimal non-atom of the region domain ([JBG+25] (39)).

                      Equations
                      Instances For
                        theorem Number.dualPredOnLattice_iff {D : Type u_1} [SemilatticeSup D] [Fintype D] [DecidableLE D] (domain : D → Prop) [DecidablePred domain] (P : D → Prop) (x : D) :
                        dualPredOnLattice domain P x ↔ P x ∧ latticeToFeatures domain x = dualF

                        The dual predicate modifier is the restriction of P to the elements classified dualF.

                        The powerset lattice #

                        def Number.ps3 (s : Finset (Fin 3)) :

                        The nonempty subsets of Fin 3, a lattice with three atoms.

                        Equations
                        Instances For
                          @[instance_reducible]
                          Equations