Documentation

Linglib.Theories.Syntax.Minimalist.Agree

Agree (Minimalist Feature Checking) #

Formalization of Agree following @cite{chomsky-2000} and @cite{adger-2003}.

The Agree Operation #

Agree is the mechanism by which features are checked/valued:

  1. A probe (head with unvalued feature) searches its c-command domain
  2. It finds the closest goal (element with matching valued feature)
  3. The probe's feature is valued by copying from the goal
  4. Both features are then checked (and may delete at PF/LF)

Architecture #

This file contains the Agree operation and its structural conditions (locality, activity, phase-boundedness, defective intervention). For the feature types (PhiFeature, FeatureVal, etc.), see Features.lean. For the failure model (what happens when Agree fails), see ObligatoryOperations.lean. For the Case Filter, see CaseFilter.lean.

Satisfaction Conditions #

Standard Agree assumes a probe is satisfied by finding a matching valued feature. @cite{deal-2024} and @cite{keine-2019} argue for richer conditions:

This captures e.g. Mam's Infl probe, which has satisfaction condition [SAT: φ or Voice_TR] — it stops when it finds either matching φ-features OR transitive Voice, whichever comes first.

Extended LI with grammatical features

This extends Harizanov's LI with Agree-relevant features. The original ⟨CAT, SEL⟩ handles selection; this adds φ, Case, etc.

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

      Create an extended LI from a simple LI

      Equations
      Instances For

        Is this LI a probe (has unvalued features)?

        Equations
        Instances For

          Is this LI a potential goal for a given feature type?

          Equations
          Instances For

            A probe-goal pair for Agree

            Instances For

              The probe c-commands the goal within a given tree

              Equations
              Instances For

                The goal has the relevant valued feature

                Equations
                Instances For

                  The probe has the relevant unvalued feature

                  Equations
                  Instances For

                    Valid Agree: probe c-commands goal (in tree), probe has unvalued, goal has valued

                    Equations
                    Instances For
                      def Minimalist.intervenes (root probe x goal : SyntacticObject) (xFeatures : FeatureBundle) (ftype : FeatureVal) :

                      X intervenes between probe and goal (within tree root) iff:

                      • probe c-commands X
                      • X c-commands goal
                      • X has a matching valued feature
                      Equations
                      Instances For

                        Goal is the closest matching goal for probe.

                        Caveat: this definition existentially quantifies over feature bundles (∃ xFeats), meaning ANY structurally intervening node blocks regardless of its actual features. This is strictly stronger than necessary — a V° with no phi-features would block a phi-probe. For derivations that need to distinguish nodes by their actual features, use closestGoalWith (propositional, with feature assignment) or closestGoalB (boolean, with matching predicate).

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

                          A feature assignment maps each syntactic object in a tree to its actual feature bundle.

                          Equations
                          Instances For

                            Goal is the closest matching goal for probe, given a feature assignment that determines each node's actual features.

                            Compared to closestGoal: the existential ∃ xFeats is replaced by fa x, so only nodes whose ACTUAL features match can intervene. This correctly models Agree: a V° (no phi-features) should not block T°'s phi-probe even if V° is structurally between T° and the subject DP. closestGoal is strictly stronger (see closestGoal_implies_closestGoalWith).

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

                              closestGoal (existential over features) implies closestGoalWith (fixed feature assignment): if no node with ANY features intervenes, then no node with its ACTUAL features intervenes.

                              def Minimalist.closestGoalB (root probe goal : SyntacticObject) (pred : SyntacticObjectBool) :
                              Bool

                              Boolean closest-goal check: is goal the closest node matching pred in probe's c-command domain within root?

                              This is the computational counterpart of closestGoalWith, using decidable cCommandsIn and a matching predicate. pred determines which nodes are potential goals/interveners — typically a category check (e.g., "is this node D-bearing?").

                              1. probe c-commands goal
                              2. goal matches the predicate
                              3. No other matching node is both c-commanded by probe AND c-commands goal (= no intervener)
                              Equations
                              • One or more equations did not get rendered due to their size.
                              Instances For
                                @[implicit_reducible]
                                instance Minimalist.instDecidableIsHorizonLeafFor (horizonCat : Cat) (n : SyntacticObject) :
                                Decidable (Minimalist.isHorizonLeafFor✝ horizonCat n)
                                Equations
                                • One or more equations did not get rendered due to their size.
                                def Minimalist.behindHorizonB (root probe target : SyntacticObject) (horizonCat : Cat) :
                                Bool

                                Is target behind a horizon of category horizonCat relative to probe in tree root?

                                A leaf head n of category horizonCat creates a horizon: its c-command domain is opaque to the probe. target is behind the horizon iff there exists a leaf n with category horizonCat such that:

                                1. probe c-commands n (n is in probe's search domain)
                                2. n c-commands target (target is in n's opaque domain)

                                This captures @cite{keine-2019}'s horizon mechanism: the probe cannot see past a head of the horizon category. Elements that are c-commanded by the horizon head are invisible to the probe.

                                Example: N° is a horizon for wh-probes (@cite{aissen-polian-2025}). In [DP D° [PossP Psr N°]], N° c-commands Psr (they are sisters), so wh-probes on C° cannot reach Psr. But D° is a sister of PossP, NOT c-commanded by N°, so the whole DP remains visible for pied-piping.

                                Equations
                                • One or more equations did not get rendered due to their size.
                                Instances For
                                  def Minimalist.valueFeature (unvalued valued : GramFeature) :

                                  Value an unvalued feature by copying from a valued one

                                  Equations
                                  Instances For
                                    def Minimalist.applyAgree (probeFeats goalFeats : FeatureBundle) (ftype : FeatureVal) :

                                    Apply Agree: value the probe's feature from the goal. Uses sameType for matching, so a probe with [uPerson:_] will be valued by a goal with [Person:3rd] — the placeholder value is irrelevant, only the feature type matters.

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

                                      T-Agree: T probes for φ-features on subject DP

                                      T has [uφ], subject DP has [φ] → T gets valued φ. The .third value on person probes is a conventional placeholder — sameType ignores the specific PersonLevel value, matching any .person _ against any .person _.

                                      Instances For

                                        C-Agree: C probes for [Q] feature

                                        C has [uQ], interrogative element has [+Q] → question is licensed

                                        Instances For

                                          EPP triggers movement to specifier

                                          When a head has [EPP], Agree is not enough - the goal must MOVE to the specifier position of the agreeing head.

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

                                            T-to-C movement is triggered by [uQ] + [EPP] on C

                                            In matrix questions:

                                            • C has [uQ, EPP]
                                            • T has [+Q] (in some analyses) or movement satisfies EPP
                                            • T moves to C (head movement)
                                            Equations
                                            Instances For

                                              Embedded C features: [uQ] only (satisfied by wh-movement)

                                              Equations
                                              Instances For

                                                Embedded C does not trigger T-to-C

                                                Is a feature bundle active? (has at least one unvalued feature)

                                                An element is active iff it has at least one unvalued feature. Typically, DPs are active when they have unvalued Case.

                                                Equations
                                                Instances For

                                                  An element needs Case (has unvalued Case feature)

                                                  Equations
                                                  Instances For

                                                    An element has valued Case

                                                    Equations
                                                    Instances For
                                                      theorem Minimalist.activity_via_case (fb : FeatureBundle) (h : (List.all fb fun (f : GramFeature) => match f.featureType with | FeatureVal.case a => true | x => false) = true) :
                                                      isActive fb = true needsCase fb = true

                                                      Activity is typically determined by Case: A DP is active iff it lacks Case

                                                      When a feature bundle contains only Case features, the bundle is active (has unvalued features) iff it needs Case (has unvalued Case).

                                                      A goal that satisfies the Activity Condition

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

                                                          Create an ActiveGoal if the features are indeed active

                                                          Equations
                                                          Instances For

                                                            Valid Agree with Activity Condition

                                                            Agree requires:

                                                            1. Probe c-commands goal (within tree)
                                                            2. Probe has unvalued feature
                                                            3. Goal has matching valued feature
                                                            4. Goal is ACTIVE (has some unvalued feature)
                                                            Equations
                                                            Instances For

                                                              Multiple Agree: a probe agreeing with a list of goals

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

                                                                  Is Multiple Agree valid? Each goal must be c-commanded by probe (within tree)

                                                                  Equations
                                                                  Instances For

                                                                    Apply Multiple Agree: value probe's feature, mark all goals

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

                                                                      A defective element: has some matching features but incomplete set

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

                                                                          Does X defectively intervene between probe and goal (within tree root)?

                                                                          X defectively intervenes if:

                                                                          • X is between probe and goal (c-command wise)
                                                                          • X has matching features
                                                                          • X is defective (can't be a full goal)
                                                                          Equations
                                                                          • One or more equations did not get rendered due to their size.
                                                                          Instances For
                                                                            def Minimalist.validAgreeWithPIC (strength : PICStrength) (phases : List Phase) (rel : AgreeRelation) (root : SyntacticObject) :

                                                                            Valid Agree with Phase Impenetrability Condition.

                                                                            Agree is blocked if the goal is inside a phase complement (and thus inaccessible under PIC). The strength parameter selects the PIC variant (PIC₁ vs PIC₂); see PICStrength. It is not yet consumed by phaseImpenetrable itself but is retained on the Agree-level interface so that derivational variants can wire it in without breaking call sites.

                                                                            Equations
                                                                            Instances For
                                                                              def Minimalist.fullAgree (strength : PICStrength) (phases : List Phase) (rel : AgreeRelation) (root : SyntacticObject) :

                                                                              PIC-bounded Agree with Activity Condition.

                                                                              The full Agree constraint: probe c-commands goal, feature matching holds, goal is active, AND no intervening phase boundary blocks the relation. See validAgreeWithPIC for the role of strength.

                                                                              Equations
                                                                              Instances For

                                                                                Fin-Agree: Fin probes for [±finite] on its complement (TP).

                                                                                Equations
                                                                                Instances For

                                                                                  Force-Fin-Agree: Force/C probes for clause-type features on Fin.

                                                                                  Equations
                                                                                  Instances For

                                                                                    Neg-Agree: Neg probes for [±neg], licensing sentential negation.

                                                                                    Equations
                                                                                    Instances For

                                                                                      Rel-Agree: Rel probes for [±rel], licensing relative clause formation.

                                                                                      Equations
                                                                                      Instances For

                                                                                        How a probe's search can be terminated.

                                                                                        Standard Agree assumes a probe is satisfied only by finding a matching
                                                                                        valued feature (simple feature match). @cite{deal-2024} argues for richer
                                                                                        conditions to capture e.g. Mam's Infl probe, which is satisfied by
                                                                                        EITHER matching φ-features OR encountering transitive Voice:
                                                                                        
                                                                                        **Mam example** (@cite{scott-2023}, via @cite{deal-2024}):
                                                                                        - Infl carries [uφ] with satisfaction [SAT: φ or Voice_TR]
                                                                                        - Intransitive: probe passes through (no Voice_TR) → finds S → real φ-agreement
                                                                                        - Transitive: probe encounters Voice_TR → satisfied without copying φ → default "∅"
                                                                                        
                                                                                        This turns the Mam bridge's prose account into a computable derivation:
                                                                                        ```
                                                                                        def mamInflSatisfaction : SatisfactionCond :=
                                                                                        

                                                                                        .disjunctive [.featureMatch (.phi (.person.third)),.headEncounter.v] ```

                                                                                        • featureMatch : FeatureValSatisfactionCond

                                                                                          Standard: probe is satisfied by finding a matching valued feature.

                                                                                        • disjunctive : List SatisfactionCondSatisfactionCond

                                                                                          Disjunctive: probe is satisfied by ANY of these conditions. Models @cite{deal-2024}'s interaction-based probes.

                                                                                        • headEncounter : CatSatisfactionCond

                                                                                          Head encounter: probe is satisfied by encountering a head of this category, even without feature matching. The probe stops but copies no features — yielding the Elsewhere (default) exponent at PF.

                                                                                        Instances For

                                                                                          Check whether a satisfaction condition is met.

                                                                                          fb is the feature bundle of the element the probe encounters. ctx is the syntactic category of that element (if it's a head). Returns true if the probe should stop searching.

                                                                                          Equations
                                                                                          Instances For

                                                                                            Did the probe copy features, or just stop?

                                                                                            When satisfied by feature match, the probe copies features (→ real agreement). When satisfied by head encounter, no features are copied (→ default/Elsewhere). For disjunctive conditions, feature copying occurs iff the first satisfied condition is a feature match.

                                                                                            Equations
                                                                                            Instances For

                                                                                              Mam's Infl probe satisfaction condition: satisfied by EITHER matching φ-features OR encountering transitive Voice.

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

                                                                                                Intransitive environment: the probe encounters a DP with φ-features (no Voice_TR in the way). Feature match is satisfied → real agreement.

                                                                                                Transitive environment: the probe encounters Voice_TR (category.v). Head encounter is satisfied → probe stops without copying features.

                                                                                                In the transitive case, no features are copied — yielding default.