Helper: does sel stack contain category?
Equations
- Minimalism.selContains sel c = List.any sel fun (x : Minimalism.Cat) => x == c
Instances For
Helper: check if option cat matches any in sel stack
Equations
- Minimalism.selMatchesOpt sel (some c) = Minimalism.selContains sel c
- Minimalism.selMatchesOpt sel none = false
Instances For
Get the category of an SO by finding the projecting head
This must match the logic in label
Get the LI of an SO (the projecting head)
X selects Y iff X's selectional requirements include Y's category
Selection is what triggers projection: the selector projects. When V[D] merges with DP, V selects D, so V projects.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Propositional version of selection
Equations
- Minimalism.selects selector selected = (Minimalism.selectsB selector selected = true)
Instances For
Equations
The label of an SO - determined by which element projects
- For an LI token: its lexical item
- For a set {X, Y}: the label of whichever element selects the other
"The label of X is the label of the projecting element"
Equations
- One or more equations did not get rendered due to their size.
- Minimalism.label (Minimalism.SyntacticObject.leaf tok) = some tok.item
Instances For
Get the category from the label
Equations
- Minimalism.labelCat so = Option.map (fun (x : Minimalism.LexicalItem) => x.outerCat) (Minimalism.label so)
Instances For
Two SOs have the same label
Equations
- Minimalism.sameLabel x y = (Minimalism.label x = Minimalism.label y ∧ Minimalism.label x ≠ none)
Instances For
Equations
- Minimalism.sameLabelB x y = match Minimalism.label x, Minimalism.label y with | some lx, some ly => lx.features == ly.features | x, x_1 => false
Instances For
Equations
X projects in Y iff X's label = Y's label and X is immediately contained in Y
Equations
Instances For
Equations
- Minimalism.projectsInB x (Minimalism.SyntacticObject.leaf tok) = false
- Minimalism.projectsInB x (a.node b) = ((x == a || x == b) && Minimalism.sameLabelB x (a.node b))
Instances For
Equations
X projects iff X projects in some containing SO
Equations
- Minimalism.projects x root = ∃ (y : Minimalism.SyntacticObject), Minimalism.containsOrEq root y ∧ Minimalism.projectsIn x y
Instances For
X is minimal in Y iff X is a term of Y and X doesn't contain anything
From Harizanov: "A head is thus a strictly minimal element, one that does not contain anything (and is therefore an LI)"
+min = is a leaf/LI
Equations
- Minimalism.isMinimalIn (Minimalism.SyntacticObject.leaf tok) y = (Minimalism.isTermOf (Minimalism.SyntacticObject.leaf tok) y ∧ True)
- Minimalism.isMinimalIn (a.node b) y = (Minimalism.isTermOf (a.node b) y ∧ False)
Instances For
X is maximal in Y iff X is a term of Y and X doesn't project in anything in Y
+max = X is at the top of its projection chain (nothing contains X with same label)
From Harizanov: a phrase is +max, meaning it's a maximal projection
Equations
- Minimalism.isMaximalIn x y = (Minimalism.isTermOf x y ∧ ¬∃ (z : Minimalism.SyntacticObject), Minimalism.isTermOf z y ∧ Minimalism.projectsIn x z)
Instances For
A head in Y: +minimal AND -maximal
From Harizanov (22b): "A head is an SO that is both +min and −max"
This means: X is an LI (doesn't contain anything) AND X projects (is contained by something with same label).
Footnote: "a head is an LI which projects"
Equations
- Minimalism.isHeadIn x y = (Minimalism.isMinimalIn x y ∧ ¬Minimalism.isMaximalIn x y)
Instances For
A phrase in Y: +maximal
From Harizanov (22a): "A phrase is an SO that is +max (and ±min)"
A phrase is a maximal projection - at the top of its projection chain.
Equations
Instances For
An LI that doesn't project: +minimal AND +maximal
This is an LI that is simultaneously at the bottom (is a leaf) and top (doesn't project) of its chain. Not a "head" per (22b).
Equations
Instances For
A verb "eat" that selects D (needs an object)
Equations
- Minimalism.verbEat = { item := Minimalism.LexicalItem.simple Minimalism.Cat.V [Minimalism.Cat.D], id := 1 }
Instances For
A noun "pizza" with no selectional requirements
Equations
- Minimalism.nounPizza = { item := Minimalism.LexicalItem.simple Minimalism.Cat.N [], id := 2 }
Instances For
A determiner "the" that selects N
Equations
- Minimalism.detThe = { item := Minimalism.LexicalItem.simple Minimalism.Cat.D [Minimalism.Cat.N], id := 3 }
Instances For
Build: [D the] merges with [N pizza] → D projects (D selects N)
Equations
Instances For
Build: [V eat] merges with [DP the pizza] → V projects (V selects D)
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
- Minimalism.instReprTreePos.repr Minimalism.TreePos.here prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Minimalism.TreePos.here")).group prec✝
Instances For
Equations
- Minimalism.instReprTreePos = { reprPrec := Minimalism.instReprTreePos.repr }
Equations
- Minimalism.instDecidableEqTreePos.decEq Minimalism.TreePos.here Minimalism.TreePos.here = isTrue ⋯
- Minimalism.instDecidableEqTreePos.decEq Minimalism.TreePos.here a.left = isFalse ⋯
- Minimalism.instDecidableEqTreePos.decEq Minimalism.TreePos.here a.right = isFalse ⋯
- Minimalism.instDecidableEqTreePos.decEq a.left Minimalism.TreePos.here = isFalse ⋯
- Minimalism.instDecidableEqTreePos.decEq a.left b.left = if h : a = b then h ▸ have inst := Minimalism.instDecidableEqTreePos.decEq a a; isTrue ⋯ else isFalse ⋯
- Minimalism.instDecidableEqTreePos.decEq a.left a_1.right = isFalse ⋯
- Minimalism.instDecidableEqTreePos.decEq a.right Minimalism.TreePos.here = isFalse ⋯
- Minimalism.instDecidableEqTreePos.decEq a.right a_1.left = isFalse ⋯
- Minimalism.instDecidableEqTreePos.decEq a.right b.right = if h : a = b then h ▸ have inst := Minimalism.instDecidableEqTreePos.decEq a a; isTrue ⋯ else isFalse ⋯
Instances For
Get the SO at a given position (if it exists)
Equations
- Minimalism.atPosition x✝ Minimalism.TreePos.here = some x✝
- Minimalism.atPosition (Minimalism.SyntacticObject.leaf a) a_1.left = none
- Minimalism.atPosition (Minimalism.SyntacticObject.leaf a) a_1.right = none
- Minimalism.atPosition (a.node a_1) p.left = Minimalism.atPosition a p
- Minimalism.atPosition (a.node b) p.right = Minimalism.atPosition b p
Instances For
The parent position (one step up toward root)
Equations
Instances For
Get the parent SO of a position
Equations
- Minimalism.parentSO root pos = match Minimalism.parentPos pos with | none => none | some pp => Minimalism.atPosition root pp
Instances For
Get the sibling SO at a position
Equations
- One or more equations did not get rendered due to their size.
Instances For
X projects AT POSITION p in root iff:
- X is at position p
- The parent at p has the same label as X
This is position-specific: checks projection only at this occurrence
Equations
- One or more equations did not get rendered due to their size.
Instances For
X is maximal AT POSITION p in root iff:
- X is at position p
- X does NOT project at position p (parent has different label or is root)
This captures Harizanov's "maximal in its derived position"
Equations
- Minimalism.isMaximalAtPosition x root pos = (Minimalism.atPosition root pos = some x ∧ ¬Minimalism.projectsAtPosition x root pos)
Instances For
X is a specifier at position p iff:
- X is at position p
- X is maximal at p (doesn't project)
- X's sibling DOES project (the sibling is the "head" of the phrase)
Equations
- One or more equations did not get rendered due to their size.
Instances For
Find positions where x occurs in root
Equations
Instances For
Equations
- Minimalism.findPositions.go x (Minimalism.SyntacticObject.leaf tok) pos acc = if (Minimalism.SyntacticObject.leaf tok == x) = true then pos :: acc else acc
- Minimalism.findPositions.go x (a.node b) pos acc = Minimalism.findPositions.go x b pos.right (Minimalism.findPositions.go x a pos.left (if (a.node b == x) = true then pos :: acc else acc))
Instances For
The derived position in head-to-specifier movement is the specifier position. In {X, Y} where Y is the target (projects), X is at the LEFT (Spec) position
Instances For
Free Relative Labeling Conflict (@cite{mueller-2013} §2.1) #
Müller argues that Chomsky's labeling rules (2008:145) yield contradictory results for free relative clauses like "what you wrote":
- Rule 14a: In {H, α}, H an LI, H is the label → label = D (the pronoun)
- The selection-based algorithm (implementing 14b logic) → label = V (the clause)
This is underdetermined: the same structure is labeled DP when used as an object ("I read what you wrote") and CP when used as a complement of wonder ("I wonder what you wrote"). Chomsky (2013:47) acknowledges "many open questions" about free relative labeling.
Simplification: The SO freeRelSO models the surface structure without
explicitly representing Internal Merge. The gap gapFR has a different token
ID from whatFR rather than being a literal copy. The labeling conflict is
independent of how the gap is represented.
Chomsky (2008:145) rule 14a: In {H, α} where H is a lexical item, H is the label. When one daughter is an LI, its category is the label.
Equations
- One or more equations did not get rendered due to their size.
- Minimalism.labelRule14a (Minimalism.SyntacticObject.leaf tok) = some tok.item.outerCat
Instances For
"what" — a wh-pronoun (category D, no selectional features).
Equations
- Minimalism.whatFR = { item := Minimalism.LexicalItem.simple Minimalism.Cat.D [], id := 100 }
Instances For
"wrote" — a transitive verb (category V, selects D).
Equations
- Minimalism.wroteFR = { item := Minimalism.LexicalItem.simple Minimalism.Cat.V [Minimalism.Cat.D], id := 101 }
Instances For
Object gap in D position (trace of "what").
Equations
- Minimalism.gapFR = Minimalism.SyntacticObject.leaf { item := Minimalism.LexicalItem.simple Minimalism.Cat.D [], id := 10100 }
Instances For
VP with gap: [wrote ___].
Equations
Instances For
Free relative SO: {what, [wrote ___]}. "what" has been internally merged (moved from object position).
Equations
Instances For
Rule 14a labels the free relative as D (the pronoun "what" is an LI).
Rules 14a and 14b conflict for free relatives: one gives D, the other V.
This is Müller's central argument against Chomsky's labeling algorithm. Free relatives like "what you wrote" function as DPs in object position ("I read what you wrote") and as CPs in complement-of-wonder position ("I wonder what you wrote") — but neither labeling rule can derive both labels from the same structure.
Coordination Labeling Failure (@cite{mueller-2013} §2.1) #
When two phrases are coordinated ({DP₁, DP₂}), neither daughter is an LI (rule 14a fails) and neither selects the other (rule 14b fails). Chomsky (2013:46) stipulates a special case: when both daughters share a label, that shared label is the result. Müller argues this is an ad hoc fix that undermines the generality of the labeling algorithm.
A second determiner "a" (category D, selects N).
Equations
- Minimalism.detA_coord = { item := Minimalism.LexicalItem.simple Minimalism.Cat.D [Minimalism.Cat.N], id := 102 }
Instances For
"book" (category N, no selectional features).
Equations
- Minimalism.nounBook = { item := Minimalism.LexicalItem.simple Minimalism.Cat.N [], id := 103 }
Instances For
Second DP: {a, book}.
Equations
Instances For
Coordinated structure: {theDP, aBookDP} — two phrases, neither is an LI.
Instances For
Rule 14a fails for coordination: neither daughter is an LI.
The selection-based algorithm gives D, but only because it falls through to the "both phrases" tie-breaking case — not because of a principled labeling mechanism. Neither phrase selects the other.