Documentation

Linglib.Studies.Amato2025.NestedAgree

Nested Agree [Ama25] #

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 [Ama25]'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 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 Syntax/Minimalism/ #

Syntax/Minimalism/CyclicAgree.lean ([BR09]) and Long-Distance Agree ([Sza09], Studies/Allotey2021.lean) 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.

    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
        • One or more equations did not get rendered due to their size.
        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 [Ama25]'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 Amato2025.NestedAgree.runStack_some_iff (c : NestedAgreeConfig) (i : ) :
                  (runStack c i).isSome = true i < c.length c.goalHead c.searchDomain i

                  The goal-seeking probe: visible exactly at the shared goal. Nested Agree's locality lives in searchDomain; the probe itself just seeks the goal.

                  Equations
                  Instances For

                    The Nested-Agree licensing fact in the licensing API: probe i licenses the shared goal iff the goal is in probe i's domain.

                    @[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 Amato2025.NestedAgree.apparent_intervener_excluded (c : NestedAgreeConfig) (i : ) (δ : Minimalist.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.

                    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 Probe.Profile used twice, a 4-leaf linear tree, the 2-probe stack — is captured by standardConfig.

                    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 Amato2025.NestedAgree.standardConfig (probeProfile : Minimalist.Probe.Profile) (probeHd intervener midNode terminal goalHd : Minimalist.LIToken) (vg : Minimalist.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 [Ama25]'s resolution of the apparent minimality violation.

                        validGoal is true everywhere here (transitive case); the unaccusative case (validGoal (SO.lexLeaf aV) = false) is the one tested in 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.