Consonantal Roots #
Single source of truth for the Semitic-style notion of a consonantal root: an ordered melody of segments stored independently of vocalization or template.
The segment type α is parametric. Studies of Tarifit Berber may instantiate
α := Phonology.Sonority.Class (sonority-class roots, used by
[AZ25b]); studies of Hebrew or Amharic typically instantiate
α := String for IPA symbols.
Theory-laden questions about the cognitive reality of roots
(e.g. Ussishkin 2000, Bat-El 2003) are orthogonal to the data type itself —
Root is a sequence; what status linguistic theory gives that sequence is a
separate matter, parameterized at the study level.
Namespace separation #
Morphology.Root (this file): a consonantal melody, a morphological
primitive (the underlying form of a morpheme).
The root-level Root (Semantics/Lexical/Roots/Basic.lean):
a bundle of LexEntailment atoms in the [BKG20]
sense — same English word, different concept.
Root.Profile (Semantics/Lexical/Roots/Profile.lean): semantic
quality dimensions on a verb root — orthogonal to both.
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 α
Instances For
Equations
- Morphology.instReprRoot = { reprPrec := Morphology.instReprRoot.repr }
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Morphology.instDecidableEqRoot.decEq { segments := a } { segments := b } = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
Instances For
Position i is nonfinal (some position strictly past it exists).
Used by *Misalignment ([Fau26] (2)).
Equations
- r.isNonfinal i = decide (i + 1 < r.arity)
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
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