Documentation

Linglib.Theories.Syntax.Minimalism.Core.Features

Feature Infrastructure for Minimalist Agree #

@cite{adger-2003} @cite{chomsky-2000} @cite{chomsky-2001} @cite{alok-2020} @cite{alok-bhalla-2026} @cite{lobeck-1995} @cite{panagiotidis-2015} @cite{pollock-1989}

Phi-features, case values, and feature bundles — the shared infrastructure underlying all Agree-based operations. Extracted from Agree.lean to separate the feature types (what can be checked) from the Agree operation (how checking works) and the failure model (what happens when checking fails; see ObligatoryOperations.lean).

Design Decision: PersonLevel replaces Nat #

PhiFeature.person uses Core.Prominence.PersonLevel (.first |.second |.third) rather than a raw Nat. This eliminates the possibility of meaningless person values (e.g., person 47) and grounds the feature inventory in the same canonical type used across the library:

For unvalued (probe) features, the value is irrelevant — FeatureVal.sameType matches any .person _ against any .person _ and any .number _ against any .number _, ignoring specific values. Use .person .third and .number .sg as conventional placeholders for probes.

Phi-features (agreement features).

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

      Case values used in the Agree system.

      This is the Minimalism-internal case type, covering the 8 values needed for Agree-based case assignment. For the full cross-linguistic inventory, see Core.Case.

      Instances For
        Equations
        Instances For

          Convert a Minimalist CaseVal to the theory-neutral Core.Case.

          obl (oblique) is a Minimalism-internal category, not a specific case in @cite{blake-1994}'s typology. We map it to dat as the highest-ranked peripheral case — this is an approximation, since "oblique" in Minimalism is a cover term for non-core cases, most commonly dative-like.

          Equations
          Instances For

            Honorific level: social ordering between speaker and referent. Relational, not absolute. ⟦iHON⟧ = λx. S_i ≺ x, where ≺ encodes social hierarchy.

            Instances For

              Feature values that can be checked via Agree

              Instances For
                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.
                  Instances For

                    Do two feature values have the same type, ignoring specific values?

                    This is the correct matching predicate for Agree: a probe with [uPerson] should match any goal with [Person:x], regardless of the specific person value x. In contrast, DecidableEq (==) compares both type and value, which is wrong for Agree matching where the probe carries a placeholder value.

                    Equations
                    Instances For

                      A grammatical feature: either valued or unvalued

                      • Valued (interpretable): contributes to meaning, can be a goal
                      • Unvalued (uninterpretable): must be checked, acts as probe
                      Instances For
                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For

                          Get the feature type (ignoring valued/unvalued distinction)

                          Equations
                          Instances For

                            Do two features match in type? (for Agree) Delegates to FeatureVal.sameType, ignoring specific values.

                            Equations
                            Instances For
                              @[reducible, inline]

                              A feature bundle: list of grammatical features

                              Equations
                              Instances For

                                Does the bundle have an unvalued feature of a given type? Uses sameType so that e.g. [uPerson:] matches ftype [Person:].

                                Equations
                                Instances For

                                  Does the bundle have a valued feature of a given type? Uses sameType so that e.g. [Person:3] matches ftype [Person:_].

                                  Equations
                                  Instances For

                                    Get the valued feature of a given type (if present). Uses sameType for type-level matching.

                                    Equations
                                    Instances For