Consonantal roots #
A consonantal root is an ordered melody of segments stored independently
of vocalization or template — the nonconcatenative counterpart of a linear
Morph. The segment type α is parametric: sonority-class roots instantiate
α := Phonology.Sonority.Class ([AZ25b]), IPA-symbol roots
α := String. Debates over the cognitive reality of roots are orthogonal to
the data type — what status a theory gives the sequence is parameterized at
the study level. In autosegmental terms a root is an unlinked melody on the
consonantal tier; the canonical injection into
Phonology/Autosegmental/Melody.lean awaits its first root-and-pattern
consumer, as does a vocalism sibling (the same melody shape on the vowel
tier).
Namespace separation #
Owner-relative roots coexist: the top-level root is a contentful morph
(Morphology/Root/Basic.lean, under whose definition consonantal skeletons
are explicitly not roots); Morphology.ConsonantalRoot (this file) is the
consonantal melody; Morphology.DM.Root is the abstract acategorial
terminal; Panagiotidis2015.RootFamily records a category-neutral lexical
root with its category-stamped derivatives; Verb.Root
(Semantics/Verb/Root/) is the lexical-semantic root. No identification
between them is substrate — homs live in the studies that assert them.
A consonantal root: an ordered list of segments. Polymorphic in the segment type so that fragments may pick the granularity they need (sonority class, IPA symbol, full feature matrix).
- segments : List α
The root segments, in order.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Morphology.instReprConsonantalRoot = { reprPrec := Morphology.instReprConsonantalRoot.repr }
Equations
- Morphology.instDecidableEqConsonantalRoot.decEq { segments := a } { segments := b } = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
Instances For
The number of root segments.
Instances For
Position i is the final root position.
Instances For
Equations
Position i is nonfinal (some position strictly past it exists).
Used by *Misalignment ([Fau26] (2)).
Equations
- r.IsNonfinal i = (i + 1 < r.arity)
Instances For
Equations
A root with exactly two segments (e.g. √qt → QaTaT-template biradicals in Hebrew, [McC81]).
Instances For
A root with exactly three segments (the unmarked Semitic case).
Equations
- r.Triradical = (r.arity = 3)
Instances For
A root with exactly four segments (e.g. quadriliteral verbs).
Equations
- r.Quadriradical = (r.arity = 4)
Instances For
The segment at position i, if in range.
Instances For
Root-level OCP ([McC81], [Fau26]): a consonantal root has no two
adjacent identical segments. Segment-level and theory-neutral — it commits to no
tier projection or feature decomposition (stronger tier-relative variants go
through OCP.IsCleanOn). Definitionally the segment tier being
OCP.IsClean.
Equations
- r.IsOCPClean = OCP.IsClean r.segments