Faust and Lampitelli (2026): Guttural syneresis in Tigrinya and Tigre #
In Tigrinya and Tigre a low vowel in an open syllable before a guttural is syncopated, as in [sɨmʕ-i] from /s_mʌʕ-i/, the way /i/ is before /j/. Faust and Lampitelli explain this by Element Theory: gutturals and low vowels share the element |A|, and two adjacent |A|s fuse into one. The analysis runs in Strict CV with the lateral relations of Government Phonology, by fusion, dissociation and epenthesis applied in the order "rules apply" gives, which makes syneresis opaque in several forms. In the feature system the gutturals are no natural class, so the analysis needs the element.
Main statements #
not_isNaturalClass_gutturals: the four gutturals are no natural class of Tigrinya's consonants in the PHOIBLE features.rows_derived: every attested form of the paper's paradigms is a realization of the derivation of its underlying form.rows_unpredicted: the forms whose retained position the analysis does not predict.
Implementation notes #
- The analysis runs over the paper's transcription, and its vowels and gutturals are the
paper's;
fragment_rootsshows that its roots, read as segments, are the Tigrinya and Tigre fragments' roots. - A form is a list of CV units; templates are positions (radical, geminable radical, fixed segment) with nuclei, instantiated by a fragment root. Gutturals do not geminate (§2.1), so a geminable position holding a guttural is a single unit ((12): -sʌʔɨl).
- The prefixes tɨ- and mɨ- carry empty nuclei realized by epenthesis, as in the paper's underlying forms (t_-, m_-); the causative ʔʌ- is lexical (19c).
- Among the realizations of a run of empty nuclei the analysis takes the Ethiosemitic option C▪C_C▪C (37a): reading left to right, a nucleus after a silent one is realized.
- Trans-guttural harmony "can, but does not have to apply" (§2.1), so
realizationslists every option androws_derivedasks that each attested form be among them. Realization does not feed fusion again, the paper's first way out of the loop of (37b–d). - The postvocalic spirantization of b ([nɨβaħ], (10b)) is outside the analysis; β is read as b.
- Not derived: the |I|-syneresis of (8)–(9) and the ejective asymmetry of fn. 8.
References #
Vowels and gutturals #
Equations
- FaustLampitelli2026.instDecidableEqVowel x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- FaustLampitelli2026.instReprVowel = { reprPrec := FaustLampitelli2026.instReprVowel.repr }
Equations
- One or more equations did not get rendered due to their size.
v.segment is the vowel v in the Tigrinya fragment.
Equations
- FaustLampitelli2026.Vowel.a.segment = Tigrinya.Phonology.a
- FaustLampitelli2026.Vowel.aBare.segment = Tigrinya.Phonology.«ʌ»
- FaustLampitelli2026.Vowel.i.segment = Tigrinya.Phonology.i
- FaustLampitelli2026.Vowel.u.segment = Tigrinya.Phonology.u
- FaustLampitelli2026.Vowel.e.segment = Tigrinya.Phonology.e
- FaustLampitelli2026.Vowel.o.segment = Tigrinya.Phonology.o
- FaustLampitelli2026.Vowel.weak.segment = Tigrinya.Phonology.«ɨ»
Instances For
The low vowels are [a] and [ʌ].
Equations
- FaustLampitelli2026.Vowel.a.IsLow = True
- FaustLampitelli2026.Vowel.aBare.IsLow = True
- x✝.IsLow = False
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- FaustLampitelli2026.instDecidableEqGuttural x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
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.
Guttural.ofIPA? s is the guttural the IPA symbol s writes, if any.
Equations
- FaustLampitelli2026.Guttural.ofIPA? "ʔ" = some FaustLampitelli2026.Guttural.glottalStop
- FaustLampitelli2026.Guttural.ofIPA? "h" = some FaustLampitelli2026.Guttural.h
- FaustLampitelli2026.Guttural.ofIPA? "ʕ" = some FaustLampitelli2026.Guttural.pharyngealVoiced
- FaustLampitelli2026.Guttural.ofIPA? "ħ" = some FaustLampitelli2026.Guttural.pharyngealVoiceless
- FaustLampitelli2026.Guttural.ofIPA? x✝ = none
Instances For
The pharyngeals are [ʕ] and [ħ].
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
In the feature system the gutturals are no natural class of Tigrinya's consonants, since what the glottals and the pharyngeals share also describes the dorsal obstruents. Element Theory groups them by their |A| (20).
Element-theoretic representations (20)–(22) #
vowelET v is the melody of the vowel v (21)–(22). [ʌ] is |A| and [a] headed |A|, the mid
vowels combine |A| with |I| or |U|, and the weak vowel is the realization of an empty nucleus.
Equations
- FaustLampitelli2026.vowelET FaustLampitelli2026.Vowel.a = ElementTheory.MR.headedSimplex ElementTheory.Element.A
- FaustLampitelli2026.vowelET FaustLampitelli2026.Vowel.aBare = ElementTheory.MR.simplex ElementTheory.Element.A
- FaustLampitelli2026.vowelET FaustLampitelli2026.Vowel.i = ElementTheory.MR.headedSimplex ElementTheory.Element.I
- FaustLampitelli2026.vowelET FaustLampitelli2026.Vowel.u = ElementTheory.MR.headedSimplex ElementTheory.Element.U
- FaustLampitelli2026.vowelET FaustLampitelli2026.Vowel.e = ElementTheory.MR.headedSimplex ElementTheory.Element.I ⊔ ElementTheory.MR.simplex ElementTheory.Element.A
- FaustLampitelli2026.vowelET FaustLampitelli2026.Vowel.o = ElementTheory.MR.headedSimplex ElementTheory.Element.U ⊔ ElementTheory.MR.simplex ElementTheory.Element.A
- FaustLampitelli2026.vowelET FaustLampitelli2026.Vowel.weak = ⊥
Instances For
gutturalET g is the melody of the guttural g. Every guttural contains |A|, and the
pharyngeals are headed by it (20).
Equations
- One or more equations did not get rendered due to their size.
- FaustLampitelli2026.gutturalET FaustLampitelli2026.Guttural.glottalStop = ElementTheory.MR.headedSimplex ElementTheory.Element.glottal ⊔ ElementTheory.MR.simplex ElementTheory.Element.A
- FaustLampitelli2026.gutturalET FaustLampitelli2026.Guttural.h = ElementTheory.MR.headedSimplex ElementTheory.Element.H ⊔ ElementTheory.MR.simplex ElementTheory.Element.A
Instances For
Equations
- FaustLampitelli2026.instDecidablePredVowelIsLowA x✝ = { decide := decide ((FaustLampitelli2026.vowelET x✝).elements.val = {ElementTheory.Element.A}.val), reflects_decide := ⋯ }
The vowel with a given melody, if any.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The fused |A|, spanning nucleus and consonant, is headed ((21), (27)), so a fused vowel is realized with |A| as its head and [ʌ] lowers to [a].
Equations
Instances For
Strict CV forms #
Equations
- FaustLampitelli2026.instDecidableEqCons.decEq (FaustLampitelli2026.Cons.guttural a) (FaustLampitelli2026.Cons.guttural b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
- FaustLampitelli2026.instDecidableEqCons.decEq (FaustLampitelli2026.Cons.guttural g) (FaustLampitelli2026.Cons.plain s) = isFalse ⋯
- FaustLampitelli2026.instDecidableEqCons.decEq (FaustLampitelli2026.Cons.plain s) (FaustLampitelli2026.Cons.guttural g) = isFalse ⋯
- FaustLampitelli2026.instDecidableEqCons.decEq (FaustLampitelli2026.Cons.plain a) (FaustLampitelli2026.Cons.plain b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- FaustLampitelli2026.instReprCons = { reprPrec := FaustLampitelli2026.instReprCons.repr }
The consonant written by a root segment.
Equations
- FaustLampitelli2026.Cons.ofIPA s = match FaustLampitelli2026.Guttural.ofIPA? s with | some g => FaustLampitelli2026.Cons.guttural g | none => FaustLampitelli2026.Cons.plain s
Instances For
c.HasA says that the consonant's melody contains |A|, which every guttural's does (20). Other
consonants carry no representation here, since ejectives also lower but never trigger syneresis (fn.
8).
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
The transcription of a consonant.
Equations
- (FaustLampitelli2026.Cons.guttural g).chars = g.toIPA.toList
- (FaustLampitelli2026.Cons.plain s).chars = s.toList
Instances For
Equations
- One or more equations did not get rendered due to their size.
- FaustLampitelli2026.instDecidableEqNuc.decEq FaustLampitelli2026.Nuc.empty FaustLampitelli2026.Nuc.empty = isTrue ⋯
- FaustLampitelli2026.instDecidableEqNuc.decEq FaustLampitelli2026.Nuc.empty FaustLampitelli2026.Nuc.mark = isFalse FaustLampitelli2026.instDecidableEqNuc.decEq._proof_3
- FaustLampitelli2026.instDecidableEqNuc.decEq FaustLampitelli2026.Nuc.empty (FaustLampitelli2026.Nuc.vowel v fused) = isFalse ⋯
- FaustLampitelli2026.instDecidableEqNuc.decEq FaustLampitelli2026.Nuc.mark FaustLampitelli2026.Nuc.empty = isFalse FaustLampitelli2026.instDecidableEqNuc.decEq._proof_5
- FaustLampitelli2026.instDecidableEqNuc.decEq FaustLampitelli2026.Nuc.mark FaustLampitelli2026.Nuc.mark = isTrue ⋯
- FaustLampitelli2026.instDecidableEqNuc.decEq FaustLampitelli2026.Nuc.mark (FaustLampitelli2026.Nuc.vowel v fused) = isFalse ⋯
- FaustLampitelli2026.instDecidableEqNuc.decEq (FaustLampitelli2026.Nuc.vowel v fused) FaustLampitelli2026.Nuc.empty = isFalse ⋯
- FaustLampitelli2026.instDecidableEqNuc.decEq (FaustLampitelli2026.Nuc.vowel v fused) FaustLampitelli2026.Nuc.mark = isFalse ⋯
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- FaustLampitelli2026.instReprNuc = { reprPrec := FaustLampitelli2026.instReprNuc.repr }
Equations
- FaustLampitelli2026.instDecidableEqCV.decEq { c := a, v := a_1 } { c := b, v := b_1 } = if h : a = b then h ▸ if h : a_1 = b_1 then h ▸ isTrue ⋯ else isFalse ⋯ else isFalse ⋯
Instances For
Equations
- FaustLampitelli2026.instReprCV = { reprPrec := FaustLampitelli2026.instReprCV.repr }
Equations
- One or more equations did not get rendered due to their size.
Instances For
A form is a strict iteration of CV units.
Equations
Instances For
The nucleus at i is contentful, so that it properly governs the nucleus before it (23a).
Equations
- FaustLampitelli2026.Contentful f i = match f[i]? with | some { c := c, v := FaustLampitelli2026.Nuc.vowel v fused } => True | x => False
Instances For
Equations
- One or more equations did not get rendered due to their size.
The consonant at i contains |A|.
Equations
- FaustLampitelli2026.HasAAt f i = match f[i]? with | some u => u.c.HasA | none => False
Instances For
Equations
- One or more equations did not get rendered due to their size.
The nucleus at i sits inside a geminate.
Equations
- FaustLampitelli2026.GeminateInternal f i = match f[i]?, f[i + 1]? with | some u, some u' => u.c = u'.c | x, x_1 => False
Instances For
Equations
- One or more equations did not get rendered due to their size.
The operations of (30) #
Fusion ((26b), (27b), (28b)) fuses a low vowel next to an |A| consonant, its own onset or the next, with that consonant and lowers it. Fusion always applies (§3.2.2).
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dissociation (26c) empties a fused nucleus iff it is properly governed by a contentful nucleus and is not the licensor of its own fused domain, that is, iff the guttural is the next onset (Av + Ac) rather than its own (Ac + Av, (28)).
Equations
- One or more equations did not get rendered due to their size.
Instances For
Epenthesis (30)–(31) marks the empty nuclei that must be realized. The word-final nucleus and a nucleus inside a geminate stay empty; the initial nucleus (no initial clusters), the nucleus licensing a word-internal guttural (25), a nucleus after a silent empty one (no triconsonantal clusters) and a nucleus before a geminate are realized; every other empty nucleus is governed and silent.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The derivation applies the operations in the order "rules apply" gives (30), since fusion creates the environment of dissociation, which creates that of epenthesis.
Equations
Instances For
The lexical vowel at i, if any.
Equations
- FaustLampitelli2026.vowelAt f i = match f[i]? with | some { c := c, v := FaustLampitelli2026.Nuc.vowel v fused } => some v | x => none
Instances For
A nucleus to be realized surfaces as the weak vowel, or, by trans-guttural harmony ((7), (19c)), as a copy of the vowel across an adjacent guttural in either direction.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The realizations of the nucleus at i.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The transcription of the consonant at i.
Equations
- FaustLampitelli2026.consAt f i = match f[i]? with | some u => u.c.chars | none => []
Instances For
The surface forms of a form are its consonants and realized nuclei in order, one form per choice of realization.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dissociation empties exactly the fused nuclei that are governed and not self-licensed ((26c), (28)).
Templates and suffixes (§2.1) #
A template is a list of positions with their nuclei; Q, T, L are the radicals.
Equations
Instances For
A lexical vowel.
Equations
- FaustLampitelli2026.V v = FaustLampitelli2026.Nuc.vowel v false
Instances For
A template instantiated by a root.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A suffix is a vowel filling the stem-final nucleus, then further CV units.
Instances For
A stem with a suffix.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The 2nd-person prefix tɨ-, an empty nucleus in the underlying forms of (31)–(39).
Equations
Instances For
DEP.PRF QʌTʌL (4).
Equations
- One or more equations did not get rendered due to their size.
Instances For
The type B DEP.PRF QʌTTʌL, with medial gemination (18b).
Equations
- One or more equations did not get rendered due to their size.
Instances For
The type C DEP.PRF QaTʌL, with [a] after the first radical (18c).
Equations
- One or more equations did not get rendered due to their size.
Instances For
PRF QʌTiL (4).
Equations
- One or more equations did not get rendered due to their size.
Instances For
IMPRF QʌTTɨL (4), the Tigre 2-IMP.M with its prefix (12).
Equations
- One or more equations did not get rendered due to their size.
Instances For
2-IMPRF tɨ-QʌTTɨL ((7), (17)).
Instances For
The 2-IMPRF without gemination, tɨ-QʌTɨL, as (7c) [ta-ħadɨm] shows it.
Equations
- One or more equations did not get rendered due to their size.
Instances For
PASS-PRF tɨ-QʌTiL (17).
Instances For
IMP QɨTʌL ((5), (10)).
Equations
- One or more equations did not get rendered due to their size.
Instances For
2-JUSS tɨ-QTʌL ((5)–(6), (31)–(32)).
Instances For
The Tigre IMP QaTTɨL of (5a).
Equations
- One or more equations did not get rendered due to their size.
Instances For
The Tigre 2-JUSS tɨ-QaTTɨL of (5a).
Instances For
The type A gerund mɨQTaL (13).
Equations
- One or more equations did not get rendered due to their size.
Instances For
The type B gerund mɨQTTaL (18b).
Equations
- One or more equations did not get rendered due to their size.
Instances For
The type C gerund mɨQaTaL ((18c), (39b)).
Equations
- One or more equations did not get rendered due to their size.
Instances For
The causative PRF ʔʌQTiL (19c).
Equations
- One or more equations did not get rendered due to their size.
Instances For
The Tigre PRF-3MSG stem QaTL- (6).
Equations
- One or more equations did not get rendered due to their size.
Instances For
The paradigms (4)–(19) and the derivations (31)–(39) #
The languages of the rows.
Instances For
Equations
- FaustLampitelli2026.instDecidableEqLang x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
- FaustLampitelli2026.instReprLang = { reprPrec := FaustLampitelli2026.instReprLang.repr }
Equations
- One or more equations did not get rendered due to their size.
Instances For
An attested form with the root, template and suffix that build it, and whether the analysis predicts it.
- lang : Lang
- root : Morphology.ConsonantalRoot String
- template : Template
- suffix : Option Suffix
- forms : List (List Char)
The attested forms, hyphens removed and β read as b.
- predicted : Bool
Instances For
Equations
- FaustLampitelli2026.langTable = [("tigr1271", FaustLampitelli2026.Lang.tigrinya), ("tigr1270", FaustLampitelli2026.Lang.tigre)]
Instances For
The Tigrinya roots of the rows, in the paper's transcription.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The Tigre roots of the rows, in the paper's transcription.
Equations
- One or more equations did not get rendered due to their size.
Instances For
segment l x reads a letter of the paper's transcription of a root of language l as a
segment of that language's fragment.
Equations
- FaustLampitelli2026.segment FaustLampitelli2026.Lang.tigrinya "g" = Tigrinya.Phonology.«ɡ»
- FaustLampitelli2026.segment FaustLampitelli2026.Lang.tigrinya "r" = Tigrinya.Phonology.«ɾ»
- FaustLampitelli2026.segment FaustLampitelli2026.Lang.tigrinya "f" = Tigrinya.Phonology.f
- FaustLampitelli2026.segment FaustLampitelli2026.Lang.tigrinya "s" = Tigrinya.Phonology.s
- FaustLampitelli2026.segment FaustLampitelli2026.Lang.tigrinya "m" = Tigrinya.Phonology.m
- FaustLampitelli2026.segment FaustLampitelli2026.Lang.tigrinya "ʕ" = Tigrinya.Phonology.«ʕ»
- FaustLampitelli2026.segment FaustLampitelli2026.Lang.tigrinya "ʔ" = Tigrinya.Phonology.«ʔ»
- FaustLampitelli2026.segment FaustLampitelli2026.Lang.tigrinya "ħ" = Tigrinya.Phonology.ħ
- FaustLampitelli2026.segment FaustLampitelli2026.Lang.tigrinya "b" = Tigrinya.Phonology.b
- FaustLampitelli2026.segment FaustLampitelli2026.Lang.tigrinya "h" = Tigrinya.Phonology.h
- FaustLampitelli2026.segment FaustLampitelli2026.Lang.tigrinya "d" = Tigrinya.Phonology.d
- FaustLampitelli2026.segment FaustLampitelli2026.Lang.tigrinya "l" = Tigrinya.Phonology.l
- FaustLampitelli2026.segment FaustLampitelli2026.Lang.tigrinya "n" = Tigrinya.Phonology.n
- FaustLampitelli2026.segment FaustLampitelli2026.Lang.tigrinya "k" = Tigrinya.Phonology.k
- FaustLampitelli2026.segment FaustLampitelli2026.Lang.tigre "m" = Tigre.Phonology.m
- FaustLampitelli2026.segment FaustLampitelli2026.Lang.tigre "z" = Tigre.Phonology.z
- FaustLampitelli2026.segment FaustLampitelli2026.Lang.tigre "n" = Tigre.Phonology.n
- FaustLampitelli2026.segment FaustLampitelli2026.Lang.tigre "f" = Tigre.Phonology.f
- FaustLampitelli2026.segment FaustLampitelli2026.Lang.tigre "g" = Tigre.Phonology.«ɡ»
- FaustLampitelli2026.segment FaustLampitelli2026.Lang.tigre "r" = Tigre.Phonology.r
- FaustLampitelli2026.segment FaustLampitelli2026.Lang.tigre "ħ" = Tigre.Phonology.ħ
- FaustLampitelli2026.segment FaustLampitelli2026.Lang.tigre "tˁ" = Tigre.Phonology.«tʼ»
- FaustLampitelli2026.segment FaustLampitelli2026.Lang.tigre "b" = Tigre.Phonology.b
- FaustLampitelli2026.segment FaustLampitelli2026.Lang.tigre "h" = Tigre.Phonology.h
- FaustLampitelli2026.segment FaustLampitelli2026.Lang.tigre "kˀ" = Tigre.Phonology.«kʼ»
- FaustLampitelli2026.segment FaustLampitelli2026.Lang.tigre "sˁ" = Tigre.Phonology.«tsʼ»
- FaustLampitelli2026.segment FaustLampitelli2026.Lang.tigre "s" = Tigre.Phonology.s
- FaustLampitelli2026.segment FaustLampitelli2026.Lang.tigre "ʔ" = Tigre.Phonology.«ʔ»
- FaustLampitelli2026.segment FaustLampitelli2026.Lang.tigre "l" = Tigre.Phonology.l
- FaustLampitelli2026.segment FaustLampitelli2026.Lang.tigre "tˀ" = Tigre.Phonology.«tʼ»
- FaustLampitelli2026.segment FaustLampitelli2026.Lang.tigre "ʕ" = Tigre.Phonology.«ʕ»
- FaustLampitelli2026.segment FaustLampitelli2026.Lang.tigre "k" = Tigre.Phonology.k
- FaustLampitelli2026.segment x✝¹ x✝ = ⊥
Instances For
The paper's roots, read as segments, are the fragments' roots.
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.
Instances For
transcribe s is a transcription as compared with the realizations, hyphens removed and β read
as b.
Equations
- FaustLampitelli2026.transcribe s = List.map (fun (c : Char) => if c = 'β' then 'b' else c) (List.filter (fun (x : Char) => decide (x ≠ '-')) s.toList)
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Instances For
The underlying form of a row is its template instantiated by its root, with its suffix.
Equations
- r.stem = Option.map (fun (f : FaustLampitelli2026.Form) => (Option.map (FaustLampitelli2026.attach f) r.suffix).getD f) (FaustLampitelli2026.instantiate r.template r.root)
Instances For
The surface forms the analysis yields for a row.
Equations
- r.realizations = match r.stem with | some f => FaustLampitelli2026.realizations (FaustLampitelli2026.derive f) | none => []
Instances For
Every attested form of (4)–(19) and (31)–(38) is a realization of the derivation of its underlying form.
The forms of (17b–d) and (39) realize the position the analysis empties, which it does not predict (§3.3.3).