Documentation

Linglib.Syntax.Minimalist.Agree.Basic

Agree (Minimalist Feature Checking) #

Formalization of Agree following [Cho00] and [Adg03].

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 — a Probe.outcome of unvalued, tolerated per [Pre14] Ch. 5), see Probe/Basic.lean. For the Case Filter, see CaseFilter.lean.

Satisfaction Conditions #

Standard Agree assumes a probe is satisfied by finding a matching valued feature. [Dea24] and [Kei19] 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.closestGoalB (root probe goal : SyntacticObject) (pred : SyntacticObjectBool) :
                      Bool

                      Decidable tree presentation of Probe.search-locality (Probe.search_eq_some_iff_closest, pred playing Probe.vis): goal is pred-matching and c-commanded by probe, with no pred-matching node c-commanded by probe c-commanding goal.

                      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 [Kei19]'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 ([AP25]). 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.applyAgree (probeFeats goalFeats : FeatureBundle) (ftype : FeatureVal) :

                          Apply Agree: value the probe's feature from the goal. Matching is by dimension (ftype.dimension), so a probe with [uPerson:_] is valued by a goal with [Person:3rd] — the placeholder value is irrelevant. If the goal has a valued feature at the dimension and the probe's slot there is unvalued, the probe's slot is set to that value.

                          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 Person 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
                                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

                                    Matrix C features: [uQ, EPP]

                                    Equations
                                    • One or more equations did not get rendered due to their size.
                                    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 : ∀ (t : FeatureType), t FeatureType.casefb t = Features.FeatureSlot.absent) :
                                            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

                                              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
                                                  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 frozen in a phase interior (Phase.Impenetrable, MCB eq 1.14.3). The strength parameter is load-bearing: strong/weak apply the PIC block, while linearizationBound ([SCD26]) drops it (locality is then enforced by Cyclic Linearization, not phasehood).

                                                  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

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

                                                          Equations
                                                          Instances For

                                                            The φ-probe: relativized search ([BR03]/[Pre14]) for a goal bearing a valued ftype feature.

                                                            Equations
                                                            Instances For
                                                              theorem Minimalist.applyAgree_is_phi_transmit (probeFeats : FeatureBundle) (ftype : FeatureVal) {goals : List FeatureBundle} {gf : FeatureBundle} (h : (phiProbe ftype).search goals = some gf) :
                                                              (phiProbe ftype).transmit (fun (g pf : FeatureBundle) => (applyAgree pf g ftype).getD pf) probeFeats goals = (applyAgree probeFeats gf ftype).getD probeFeats

                                                              applyAgree is the φ goal→probe transmission. A φ-Agree is Probe.transmit of the φ-probe with the valuation applyAgree: search the goal sequence for a ftype-bearing goal, then value the probe's features from it. This recognizes the standalone applyAgree as the transmission step of the unified Agree operation (Probe/Transmission.lean), rather than a parallel mechanism. (The probe→goal direction — dependent case — and a full clause's worth of valuations are folds of transmits: the composition axis, not a single transmit.)