Clause Spine: Fine-Grained Clause Size #
@cite{elkins-torrence-brown-2026} @cite{grimshaw-2005} @cite{wurmbrand-2014}
ComplementSize (ExtendedProjection/Basic.lean) classifies clausal complements
by their highest functional head, which works well for tense-Agree transparency
and CTP classification. But it can't distinguish VoiceP from ApplP, since both
have fValue = 1. Languages like Mam need this
distinction: =(y)a' appears when Voice⁰ is projected but not when only Appl⁰ is.
ClauseSpine records the full list of projected heads, enabling per-head
projection queries.
A clause spine: the ordered sequence of functional heads projected in a
clause, from lowest (V) to highest (e.g., C). Unlike ComplementSize,
which records only the highest head, ClauseSpine records every projected
head, enabling per-head queries.
Example: a transitive clause with Voice projects [V, Appl, v, Voice], while an infinitival without Voice projects [V, Appl].
- projectedHeads : List Cat
Projected heads, ordered bottom-up (V first, highest last). Non-empty: every clause projects at least a lexical head.
- nonempty : self.projectedHeads ≠ []
The spine is non-empty
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Minimalist.instReprClauseSpine = { reprPrec := Minimalist.instReprClauseSpine.repr }
Does this spine project a given functional head?
Equations
- spine.projects c = spine.projectedHeads.any fun (x : Minimalist.Cat) => x == c
Instances For
The highest head in the spine (always exists by nonempty invariant).
Equations
- spine.highestHead = match spine.projectedHeads.getLast? with | some c => c | none => Minimalist.Cat.V
Instances For
The lowest (lexical) head in the spine.
Equations
- spine.lowestHead = match spine.projectedHeads.head? with | some c => c | none => Minimalist.Cat.V
Instances For
ApplP-sized clause: [V, Appl]. Infinitival complement without Voice. In Mam, this is the size of infinitival complements where =(y)a' is impossible — Voice is not projected, so there is no host for [oblique].
Equations
- Minimalist.ClauseSpine.applP = { projectedHeads := [Minimalist.Cat.V, Minimalist.Cat.Appl], nonempty := Minimalist.ClauseSpine.applP._proof_1 }
Instances For
Bare VP: [V]. Minimal clause — just the lexical verb. In Mam, this is the size of infinitival complements: the embedded clause is just VP, lacking Voice, Appl, v.
Equations
- Minimalist.ClauseSpine.bareVP = { projectedHeads := [Minimalist.Cat.V], nonempty := Minimalist.ClauseSpine.bareVP._proof_1 }
Instances For
vP-sized clause: [V, v]. Light verb shell without Voice or Appl.
Equations
- Minimalist.ClauseSpine.vP = { projectedHeads := [Minimalist.Cat.V, Minimalist.Cat.v], nonempty := Minimalist.ClauseSpine.vP._proof_1 }
Instances For
VoiceP-sized clause: [V, Appl, v, Voice]. Projects Voice head. In Mam, this is the size of "aspectless" complements — Voice is projected, so [oblique] can be hosted, and =(y)a' is obligatory on oblique extraction.
Equations
- Minimalist.ClauseSpine.voiceP = { projectedHeads := [Minimalist.Cat.V, Minimalist.Cat.Appl, Minimalist.Cat.v, Minimalist.Cat.Voice], nonempty := Minimalist.ClauseSpine.voiceP._proof_1 }
Instances For
TP-sized clause: [V, Appl, v, Voice, T]. Full inflectional domain.
Equations
- One or more equations did not get rendered due to their size.
Instances For
CP-sized clause: [V, Appl, v, Voice, T, C]. Full finite clause.
Equations
- One or more equations did not get rendered due to their size.
Instances For
NmlzP-sized clause: [V, Appl, v, Voice, T, Nmlz]. Hindi nominalized clause. @cite{keine-2020} ch. 2: NmlzP is a distinct clause type from CP — their transparency profiles are incomparable (NmlzP blocks Ā but not wh; CP blocks wh but not Ā in Hindi).
Equations
- One or more equations did not get rendered due to their size.
Instances For
ForceP-sized clause: [V, Appl, v, Voice, T, C, Force]. German V2 clause. @cite{keine-2020} ch. 4: V2 clauses in German are structurally larger than V-final (CP) clauses — they project ForceP above CP.
Equations
- One or more equations did not get rendered due to their size.
Instances For
VoiceP projects Voice.
ApplP does not project Voice. This is the key distinction that
ComplementSize cannot capture (both have fValue = 1 as highest head).
CP projects Voice (inherited from the full spine).
Bare VP does not project Voice.
Bare VP does not project Appl.
vP does not project Voice.
ApplP projects Appl.
NmlzP projects Nmlz but not C.
CP projects C but not Nmlz.
ForceP projects Force and C.
VoiceP and ApplP have the same fValue for their highest head, showing why ComplementSize can't distinguish them.
The F-level of a clause spine: the fValue of its highest projected
head. This bridges ClauseSpine (concrete head list) to
ExtendedProjection's F-value hierarchy, enabling
@cite{keine-2019}'s transparency calculations.
Example: ClauseSpine.cP.fLevel = 6 (C is F6),
ClauseSpine.tP.fLevel = 2 (T is F2).
Equations
- spine.fLevel = Minimalist.fValue spine.highestHead
Instances For
NmlzP-sized clauses are F3 (same as FinP).
ForceP-sized clauses are F6 (same as CP in fValue, but structurally larger).
Spine sizes are ordered: ApplP < vP < VoiceP < TP < CP < ForceP. NmlzP has the same size as CP (both have 6 projected heads).
NmlzP and CP have the same number of projected heads — their difference is in WHICH heads are projected, not how many.