Minimalist Analysis of Subject-Auxiliary Inversion #
Inversion-specific constraints and licensing, plus the underlying clause structure (positions, dominance, structural precedence).
The Analysis #
Matrix questions have [+Q] on C, which triggers T-to-C movement. Embedded questions have [+Q] satisfied by the embedding verb or wh-movement, so T-to-C doesn't occur.
This derives the word order asymmetry:
- Matrix: T-to-C → T precedes subject
- Embedded: no T-to-C → subject precedes T
Equations
- Minimalist.instReprPosition = { reprPrec := Minimalist.instReprPosition.repr }
Equations
- Minimalist.instReprPosition.repr Minimalist.Position.specCP prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Minimalist.Position.specCP")).group prec✝
- Minimalist.instReprPosition.repr Minimalist.Position.headC prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Minimalist.Position.headC")).group prec✝
- Minimalist.instReprPosition.repr Minimalist.Position.specTP prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Minimalist.Position.specTP")).group prec✝
- Minimalist.instReprPosition.repr Minimalist.Position.headT prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Minimalist.Position.headT")).group prec✝
- Minimalist.instReprPosition.repr Minimalist.Position.specvP prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Minimalist.Position.specvP")).group prec✝
- Minimalist.instReprPosition.repr Minimalist.Position.headv prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Minimalist.Position.headv")).group prec✝
- Minimalist.instReprPosition.repr Minimalist.Position.headV prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Minimalist.Position.headV")).group prec✝
Instances For
Equations
- Minimalist.instDecidableEqPosition x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
- Minimalist.dominates Minimalist.Position.specCP x✝ = (x✝ != Minimalist.Position.specCP)
- Minimalist.dominates Minimalist.Position.headC x✝ = (x✝ != Minimalist.Position.specCP && x✝ != Minimalist.Position.headC)
- Minimalist.dominates Minimalist.Position.specTP x✝ = (x✝ == Minimalist.Position.specvP || x✝ == Minimalist.Position.headv || x✝ == Minimalist.Position.headV)
- Minimalist.dominates Minimalist.Position.headT x✝ = (x✝ == Minimalist.Position.specvP || x✝ == Minimalist.Position.headv || x✝ == Minimalist.Position.headV)
- Minimalist.dominates Minimalist.Position.specvP x✝ = (x✝ == Minimalist.Position.headv || x✝ == Minimalist.Position.headV)
- Minimalist.dominates Minimalist.Position.headv Minimalist.Position.headV = true
- Minimalist.dominates x✝¹ x✝ = false
Instances For
Structural precedence in English (Spec-Head-Complement order)
Equations
- Minimalist.structurallyPrecedes Minimalist.Position.specCP Minimalist.Position.headC = true
- Minimalist.structurallyPrecedes Minimalist.Position.specCP Minimalist.Position.specTP = true
- Minimalist.structurallyPrecedes Minimalist.Position.specCP Minimalist.Position.headT = true
- Minimalist.structurallyPrecedes Minimalist.Position.specCP Minimalist.Position.specvP = true
- Minimalist.structurallyPrecedes Minimalist.Position.specCP Minimalist.Position.headv = true
- Minimalist.structurallyPrecedes Minimalist.Position.specCP Minimalist.Position.headV = true
- Minimalist.structurallyPrecedes Minimalist.Position.headC Minimalist.Position.specTP = true
- Minimalist.structurallyPrecedes Minimalist.Position.headC Minimalist.Position.headT = true
- Minimalist.structurallyPrecedes Minimalist.Position.headC Minimalist.Position.specvP = true
- Minimalist.structurallyPrecedes Minimalist.Position.headC Minimalist.Position.headv = true
- Minimalist.structurallyPrecedes Minimalist.Position.headC Minimalist.Position.headV = true
- Minimalist.structurallyPrecedes Minimalist.Position.specTP Minimalist.Position.headT = true
- Minimalist.structurallyPrecedes Minimalist.Position.specTP Minimalist.Position.specvP = true
- Minimalist.structurallyPrecedes Minimalist.Position.specTP Minimalist.Position.headv = true
- Minimalist.structurallyPrecedes Minimalist.Position.specTP Minimalist.Position.headV = true
- Minimalist.structurallyPrecedes Minimalist.Position.headT Minimalist.Position.specvP = true
- Minimalist.structurallyPrecedes Minimalist.Position.headT Minimalist.Position.headv = true
- Minimalist.structurallyPrecedes Minimalist.Position.headT Minimalist.Position.headV = true
- Minimalist.structurallyPrecedes Minimalist.Position.specvP Minimalist.Position.headv = true
- Minimalist.structurallyPrecedes Minimalist.Position.specvP Minimalist.Position.headV = true
- Minimalist.structurallyPrecedes Minimalist.Position.headv Minimalist.Position.headV = true
- Minimalist.structurallyPrecedes x✝¹ x✝ = false
Instances For
- base : Position → HeadPosition
- movedTo : Position → HeadPosition
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Minimalist.instReprHeadPosition = { reprPrec := Minimalist.instReprHeadPosition.repr }
Equations
- Minimalist.instDecidableEqHeadPosition.decEq (Minimalist.HeadPosition.base a) (Minimalist.HeadPosition.base b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
- Minimalist.instDecidableEqHeadPosition.decEq (Minimalist.HeadPosition.base a) (Minimalist.HeadPosition.movedTo a_1) = isFalse ⋯
- Minimalist.instDecidableEqHeadPosition.decEq (Minimalist.HeadPosition.movedTo a) (Minimalist.HeadPosition.base a_1) = isFalse ⋯
- Minimalist.instDecidableEqHeadPosition.decEq (Minimalist.HeadPosition.movedTo a) (Minimalist.HeadPosition.movedTo b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
Instances For
Equations
- Minimalist.instReprTPosition = { reprPrec := Minimalist.instReprTPosition.repr }
Equations
- Minimalist.instReprTPosition.repr Minimalist.TPosition.inT prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Minimalist.TPosition.inT")).group prec✝
- Minimalist.instReprTPosition.repr Minimalist.TPosition.inC prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Minimalist.TPosition.inC")).group prec✝
Instances For
Equations
- Minimalist.instDecidableEqTPosition x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
Instances For
Equations
Instances For
Matrix questions trigger T-to-C movement (to check [+Q] on C)
Equations
- Minimalist.matrixTriggersTToC ct tPos = (ct = Features.ClauseForm.matrixQuestion → tPos = Minimalist.TPosition.inC)
Instances For
Embedded questions don't trigger T-to-C (C's [+Q] is checked otherwise)
Equations
- Minimalist.embeddedNoTToC ct tPos = (ct = Features.ClauseForm.embeddedQuestion → tPos = Minimalist.TPosition.inT)
Instances For
Matrix questions have T before subject (via T-to-C)
Embedded questions have subject before T (no T-to-C)
A clause: words + structural info
- words : List Word
- tPosition : TPosition
- clauseType : Features.ClauseForm
Instances For
Word order must match the structural prediction
Equations
- One or more equations did not get rendered due to their size.
Instances For
Well-formed clause
Equations
Instances For
A word sequence is licensed for a clause type if some T-position works
Equations
- Minimalist.licenses ws ct = ∃ (tPos : Minimalist.TPosition), Minimalist.wellFormed { words := ws, tPosition := tPos, clauseType := ct }
Instances For
Matrix questions with T-first word order are licensed
Matrix questions with subject-first are NOT licensed
Embedded questions with subject-first are licensed
Embedded questions with T-first are NOT licensed