A numeration entry: a lexical item with a count (how many times it can be used)
The count allows the same LI to appear multiple times in a derivation. E.g., "John said John left" uses 'John' twice.
- item : ExtendedLI
- count : ℕ
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
A numeration is a collection of LIs available for the derivation
- entries : List NumerationEntry
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Empty numeration
Instances For
Add an LI to the numeration
Equations
Instances For
Check if numeration is exhausted (all counts = 0)
Instances For
Check if numeration contains a given LI
Equations
Instances For
Total items remaining in numeration
Equations
- n.totalCount = List.foldl (fun (acc : ℕ) (e : Minimalism.NumerationEntry) => acc + e.count) 0 n.entries
Instances For
The workspace contains the active syntactic objects being combined
At any point in a derivation, the workspace contains:
- SOs that have been built so far
- LIs that have been selected but not yet merged
- objects : List SyntacticObject
- nextId : ℕ
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Minimalism.instReprWorkspace = { reprPrec := Minimalism.instReprWorkspace.repr }
Empty workspace
Instances For
Check if workspace contains a single object (derivation complete condition)
Equations
- w.isSingleton = (w.objects.length == 1)
Instances For
Result of a select operation
- numeration : Numeration
- workspace : Workspace
- selected : SyntacticObject
Instances For
Select: Move an LI from numeration to workspace
This operation:
- Finds the LI in the numeration
- Decrements its count
- Creates a token and adds it to the workspace
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
- Minimalism.select.findAndDecrement li [] acc = none
Instances For
What triggers Merge? In Minimalism, uninterpretable features drive operations
- selection : Cat → MergeTrigger
- epp : MergeTrigger
- theta : MergeTrigger
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Minimalism.instDecidableEqMergeTrigger.decEq (Minimalism.MergeTrigger.selection a) (Minimalism.MergeTrigger.selection b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
- Minimalism.instDecidableEqMergeTrigger.decEq (Minimalism.MergeTrigger.selection a) Minimalism.MergeTrigger.epp = isFalse ⋯
- Minimalism.instDecidableEqMergeTrigger.decEq (Minimalism.MergeTrigger.selection a) Minimalism.MergeTrigger.theta = isFalse ⋯
- Minimalism.instDecidableEqMergeTrigger.decEq Minimalism.MergeTrigger.epp (Minimalism.MergeTrigger.selection a) = isFalse ⋯
- Minimalism.instDecidableEqMergeTrigger.decEq Minimalism.MergeTrigger.epp Minimalism.MergeTrigger.epp = isTrue ⋯
- Minimalism.instDecidableEqMergeTrigger.decEq Minimalism.MergeTrigger.epp Minimalism.MergeTrigger.theta = isFalse Minimalism.instDecidableEqMergeTrigger.decEq._proof_6
- Minimalism.instDecidableEqMergeTrigger.decEq Minimalism.MergeTrigger.theta (Minimalism.MergeTrigger.selection a) = isFalse ⋯
- Minimalism.instDecidableEqMergeTrigger.decEq Minimalism.MergeTrigger.theta Minimalism.MergeTrigger.epp = isFalse Minimalism.instDecidableEqMergeTrigger.decEq._proof_8
- Minimalism.instDecidableEqMergeTrigger.decEq Minimalism.MergeTrigger.theta Minimalism.MergeTrigger.theta = isTrue ⋯
Instances For
Check if an LI needs to merge (has unsatisfied selectional features)
Equations
Instances For
Get the category that an LI selects (if any)
Equations
Instances For
External Merge: combine two separate SOs from the workspace
This is feature-driven: we merge when there's a selectional relationship
- selector : SyntacticObject
- selected : SyntacticObject
- trigger : MergeTrigger
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Apply external merge to the workspace
Equations
- One or more equations did not get rendered due to their size.
Instances For
Check if external merge is valid (selector selects the selected)
Equations
Instances For
Internal Merge: re-merge an SO already in the structure (movement)
This handles cases where an element moves to a new position
- target : SyntacticObject
- mover : SyntacticObject
- trigger : MergeTrigger
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Check if mover is contained in target
Equations
Instances For
Equations
- Minimalism.moverInTarget.checkContains op (Minimalism.SyntacticObject.leaf a) = if (Minimalism.SyntacticObject.leaf a == op.mover) = true then true else false
- Minimalism.moverInTarget.checkContains op (a.node b) = if (a.node b == op.mover) = true then true else Minimalism.moverInTarget.checkContains op a || Minimalism.moverInTarget.checkContains op b
Instances For
Apply internal merge to workspace
Equations
- One or more equations did not get rendered due to their size.
Instances For
A derivation state captures everything needed to continue a derivation.
features maps token IDs to their current feature bundles, tracking
feature state across Agree operations. Populated by selectStep
(which registers an LI's features under its token ID) and modified
by agreeStep (which values the probe's features from the goal).
- numeration : Numeration
- workspace : Workspace
- features : List (ℕ × FeatureBundle)
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Initial state from a numeration
Equations
- Minimalism.DerivationState.init n = { numeration := n, workspace := Minimalism.Workspace.empty }
Instances For
Is the derivation complete?
A derivation is complete when:
- The numeration is exhausted (all items used)
- The workspace contains exactly one SO
Equations
- s.isComplete = (s.numeration.exhausted && s.workspace.isSingleton)
Instances For
Get the derived structure if complete
Instances For
An Agree operation between a probe and a goal, identified by token ID.
Records which feature type is being checked, enabling the derivation trace to track feature valuation step by step.
- probeId : ℕ
- goalId : ℕ
- feature : FeatureVal
Instances For
Equations
- Minimalism.instReprAgreeOp = { reprPrec := Minimalism.instReprAgreeOp.repr }
Equations
- One or more equations did not get rendered due to their size.
Instances For
Look up the current feature bundle for a token by ID.
Equations
- Minimalism.lookupFeatures fs id = Option.map Prod.snd (List.find? (fun (p : ℕ × Minimalism.FeatureBundle) => p.fst == id) fs)
Instances For
Update the feature bundle for a token by ID.
Equations
Instances For
A single step in a derivation
- selectStep : ExtendedLI → DerivationStep
- externalMergeStep : ExternalMergeOp → DerivationStep
- internalMergeStep : InternalMergeOp → DerivationStep
- transferStep : SyntacticObject → DerivationStep
- agreeStep : AgreeOp → DerivationStep
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Apply a derivation step to a state
Equations
- One or more equations did not get rendered due to their size.
- Minimalism.applyStep s (Minimalism.DerivationStep.transferStep a) = some s
Instances For
A derivation is a sequence of steps from initial state to completion
- initial : Numeration
- steps : List DerivationStep
- final : DerivationState
Instances For
Execute a list of steps from an initial numeration
Equations
- Minimalism.executeSteps n steps = List.foldlM (fun (s : Minimalism.DerivationState) (step : Minimalism.DerivationStep) => Minimalism.applyStep s step) (Minimalism.DerivationState.init n) steps
Instances For
Intermediate workspace state after the first k steps.
Analogous to Derivation.stageAt but for the workspace model.
Returns none if any step in the prefix fails.
Equations
- Minimalism.workspaceStageAt n steps k = Minimalism.executeSteps n (List.take k steps)
Instances For
Look up a token's feature state at a given derivation stage.
Equations
- Minimalism.featureStateAt n steps k tokenId = match Minimalism.workspaceStageAt n steps k with | some state => Minimalism.lookupFeatures state.features tokenId | none => none
Instances For
Extract the final syntactic object from a completed derivation.
Equations
- fd.resultTree = fd.final.workspace.getResult
Instances For
A workspace FullDerivation agrees with a core Derivation when both
produce the same final tree. This connects the feature-driven workspace
model to the step-by-step tree-building model.
Equations
- fd.agreesWithDerivation d = (fd.resultTree = some d.final)
Instances For
Example: Numeration for "the cat"
Equations
- One or more equations did not get rendered due to their size.
Instances For
A Minimalist grammar specifies the lexicon as a list of extended LIs.
- lexicon : List ExtendedLI
Instances For
Minimalist derivations link a formal derivation to a clause type.
- deriv : FullDerivation
- clauseType : ClauseType
Instances For
Minimalism Grammar instance.
Derivations are formal FullDerivations from Workspace.lean.
Realization checks that the phonological yield matches.
Equations
- One or more equations did not get rendered due to their size.