Documentation

Linglib.Theories.Syntax.Minimalist.NestedAgree

Nested Agree @cite{amato-2025} #

A configuration on a Minimalist SyntacticObject: a single head bears two (or more) ordered probes that share a goal-head, and each post-initial probe's search domain is restricted to the daughters of the shared goal. The matryoshka structure is derived from cCommandsIn (the Minimalist substrate), not stipulated.

Configuration #

A NestedAgreeConfig packages:

  1. stack : OrderedProbeStack — ordered probes; head of list = first.
  2. root : SyntacticObject — the tree under consideration.
  3. probingHead : SyntacticObject — the head bearing the probes.
  4. goalHead : SyntacticObject — the shared goal targeted under MME.
  5. validGoal : SyntacticObject → Boollexical primitive: which subtrees carry active φ-features. Defective v of unaccusatives gets false; this is what blocks π-Agree in @cite{amato-2025}'s §3.4.2 unaccusative analysis.

initialDomain, daughters, searchDomain are derived via cCommandsIn and reflexive containment, filtered by validGoal. The matryoshka claim — post-initial domains restricted to the goal's daughters — is structural, not axiomatic. Consequently IsNestedAgreeConfig is non-vacuous: it requires goalHead to be both c-commanded by probingHead in root and phi-active.

Cross-domain applications #

Italian aux selection (§3) is formalized at Phenomena/AuxiliaryVerbs/Studies/Amato2025.lean. Other Amato 2025 §4 case studies (Icelandic DAT-NOM, Lak perfective, Spanish VOS, Bulgarian wh, ditransitives) are deferred — their consumers will construct SyntacticObject trees and validGoal predicates the same way.

Architecture #

Sits at Layer 2 (compositional Agree pattern), built on the Layer-1 substrate (SyntacticObject, cCommandsIn, containsOrEq, subtrees) imported transitively via Probe. Predicates are Prop with [Decidable] instances; runStack returns Option SyntacticObject.

Sibling mechanisms in Theories/Syntax/Minimalism/ #

Theories/Syntax/Minimalism/CyclicAgree.lean (@cite{bejar-rezac-2009}) and LongDistanceAgree.lean (@cite{szabolcsi-2009}) are sibling Layer-2 patterns. All three address "what does a probe do beyond its first operation," but the answers differ:

The three are conceptually orthogonal mechanisms for serial probing. A unified theory of probe behavior would treat them as alternatives in the design space; we keep them as independent Layer-2 patterns that consumers select by phenomenon.

@[reducible, inline]

An ordered list of probes on a single head. The list order encodes the feature-checking order: head of list = first probe.

Equations
Instances For

    A Nested Agree configuration on a Minimalist SyntacticObject.

    • Ordered probes on the probing head.

    • The root tree under consideration.

    • probingHead : SyntacticObject

      The head bearing the probes (e.g. Perf in Italian aux selection).

    • goalHead : SyntacticObject

      The shared goal head every probe targets under maximized matching (e.g. v in Italian aux selection).

    • validGoal : SyntacticObjectBool

      Lexical primitive: which subtrees carry active φ-features. Defective v of unaccusatives gets false. Distinct from any derivational fact about whether Agree succeeded.

    Instances For

      Number of probes in the stack.

      Equations
      Instances For

        Probe 0's c-command domain, filtered by phi-activity. Derived from cCommandsIn (Minimalist c-command on SyntacticObject).

        subtrees returns Multiset (post-Phase-1.0; MCB-faithful per Def 1.2.2), so the filtered domain is also Multiset. Membership checks (goalHeadinitialDomain) work identically to the prior List flavor.

        Equations
        Instances For

          The shared goal's daughters: the goal itself plus everything it c-commands, filtered by phi-activity. The reflexive inclusion of goalHead is required by maximized matching — every post-initial probe must be able to find the goal again.

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

            Search domain at probe i: derived from the structural primitives. The matryoshka claim is encoded definitionally — searchDomain (i+1) = daughters for all i ≥ 0.

            Equations
            Instances For

              A bona fide Nested Agree configuration: the shared goal lies in probe 0's c-command domain and is phi-active. Non-vacuous: derives a structural claim about root (via cCommandsIn) plus the lexical primitive (validGoal). When phi-Agree fails (unaccusative v has validGoal = false), this predicate is correctly false — the formal expression of @cite{amato-2025}'s "the chain breaks down at π-Agree."

              Equations
              Instances For

                Run probe i against its derived search domain. Returns the shared goal when visible at index i, else none.

                Equations
                Instances For
                  theorem Minimalist.NestedAgree.runStack_some_iff (c : NestedAgreeConfig) (i : ) :
                  (runStack c i).isSome = true i < c.length c.goalHead c.searchDomain i
                  @[simp]

                  Post-initial search domains equal daughters by definition.

                  A well-formed configuration's goal lies in its own daughters (reflexive inclusion + phi-active). Used in the apparent-minimality theorem.

                  theorem Minimalist.NestedAgree.apparent_intervener_excluded (c : NestedAgreeConfig) (i : ) (δ : SyntacticObject) (hVisible : δ c.initialDomain) (hOut : δc.daughters) :
                  δ c.searchDomain 0 δc.searchDomain (i + 1)

                  A subtree visible to probe 0 but outside daughters is excluded from every post-initial probe's search domain. Strict-truncation content in the conclusion's ∈ ∧ ∉ shape.

                  theorem Minimalist.NestedAgree.apparent_minimality_not_actual (c : NestedAgreeConfig) (h : IsNestedAgreeConfig c) (i : ) (δ : SyntacticObject) (hOut : δc.daughters) :
                  runStack c (i + 1) some δ

                  A subtree outside the goal's daughters cannot be returned by any post-initial probe — runStack only ever produces the (well- formedness-guaranteed) goalHead, which by goalHead_mem_daughters is inside its own daughters.

                  Standard linear-Spec configuration builder #

                  The four landed Amato 2025 case studies (Italian aux, Icelandic DAT-NOM, Lak perfective, Bulgarian wh) all share a structural template: a 4-leaf binary tree [probe-head [intervener [mid goal]]] with a 2-probe stack on the head. The builder below extracts this template so consumers don't repeat it.

                  Consumers vary in:

                  The common shape — a single ProbeProfile used twice, a 4-leaf linear tree, the 2-probe stack — is captured by standardConfig.

                  def Minimalist.NestedAgree.standardLinearTree (probeHd intervener midNode terminal : LIToken) :

                  Standard 4-leaf linear-Spec tree: [probeHd [intervener [midNode terminal]]]. Shared template across the landed Amato 2025 case studies.

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    def Minimalist.NestedAgree.standardConfig (probeProfile : ProbeProfile) (probeHd intervener midNode terminal goalHd : LIToken) (vg : SyntacticObjectBool) :

                    A NestedAgreeConfig over the standard linear tree, with a 2-probe stack on probeHd. The goalHd selects which leaf serves as the shared goal under maximized matching.

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

                      A 2-probe stack on a Perf+vP SyntacticObject #

                      Tree: Perf [DPsubj [v DPobj]]. Probe 0 (Infl-Agree) targets v; probe 1 (π-Agree) is restricted by Nested Agree to v's c-command domain (reflexively including v). The apparent intervener DPsubj is in Perf's c-command but not in v's, so it is structurally excluded from probe 1 — encoding @cite{amato-2025}'s resolution of the apparent minimality violation.

                      validGoal is true everywhere here (transitive case); the unaccusative case (validGoal (.leaf aV) = false) is the one tested in Phenomena/AuxiliaryVerbs/Studies/Amato2025.lean.

                      Italian-style 2-probe configuration constructed via standardConfig.

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

                        DPsubj is in probe 0's c-command (Perf c-commands DPsubj) but not in probe 1's truncated domain (v doesn't c-command DPsubj). Real strict-truncation content from the Minimalist c-command primitive.