Feature geometry #
The hierarchical organization of phonological features as autosegmental class nodes ([CH95b]):
Root [±syll, ±cons, ±son, ±approx, ±del.rel., ±tap, ±trill]
├── Laryngeal [±voice, ±s.g., ±c.g.]
└── Supralaryngeal [±cont]
├── Soft Palate [±nasal]
└── Place
├── Labial [±lab, ±round, ±labiodental]
├── Coronal [±cor, ±ant, ±dist, ±lat, ±strid]
└── Dorsal [±dor, ±high, ±low, ±front, ±back, ±tense]
The constituency from Root down to the three Place articulators is the consensus
of [Cle85] and [Sag86]. The placement of individual terminals —
notably [continuant], [nasal], and [lateral]/[strident] — is theory-specific
and contested: [Sag86] argues [continuant] is articulator-level, against its
Supralaryngeal placement here (the divergence is formalized in Studies/Sagey1986.lean).
A feature's geometric node is also distinct from its manner-class (Feature.category):
[lateral] attaches under Coronal yet is a manner feature, so the flat predicates
(Feature.IsPlace &c.) do not coincide with single-node dominance.
Main definitions #
Node,Node.parent,Node.Dominates— the class nodes, the tree, and the reflexive-transitive ancestor relation.Feature.node— each feature's dominating node (this geometry's assignment; rivals live in their study files).Node.features— the natural class a node dominates.Node.IsArticulator,Segment.activeArticulators,Segment.IsComplex— the place articulators and a segment's simultaneous (complex) articulations.
Main results #
Node.dominates_iff— dominance unrolls to the depth-≤ 3 parent chain, the decidable face thedecidefacts run through.IsLaryngeal_iff_laryngeal_DominatedBy,IsDorsal_iff_dorsal_DominatedBy— two flat predicates coincide with single-node dominance;IsPlaceis only a subset.Segment.activeArticulators_nodup— complex-segment well-formedness holds by construction ([Sag86]).
Geometric nodes #
The class nodes of the feature-geometry tree ([Cle85]; [Sag86]).
- root : Node
The root node, dominating all others.
- laryngeal : Node
The laryngeal node: voicing and glottal features.
- supralaryngeal : Node
The supralaryngeal node, mediating root and place.
- softPalate : Node
The soft-palate (velum) node: nasality.
- place : Node
The place node, over the three oral articulators.
- labial : Node
The labial articulator (the lips).
- coronal : Node
The coronal articulator (the tongue blade/tip).
- dorsal : Node
The dorsal articulator (the tongue body).
Instances For
Equations
- Phonology.FeatureGeometry.instDecidableEqNode 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
Tree structure #
The parent of each node; root alone has none.
Equations
- Phonology.FeatureGeometry.Node.root.parent = none
- Phonology.FeatureGeometry.Node.laryngeal.parent = some Phonology.FeatureGeometry.Node.root
- Phonology.FeatureGeometry.Node.supralaryngeal.parent = some Phonology.FeatureGeometry.Node.root
- Phonology.FeatureGeometry.Node.softPalate.parent = some Phonology.FeatureGeometry.Node.supralaryngeal
- Phonology.FeatureGeometry.Node.place.parent = some Phonology.FeatureGeometry.Node.supralaryngeal
- Phonology.FeatureGeometry.Node.labial.parent = some Phonology.FeatureGeometry.Node.place
- Phonology.FeatureGeometry.Node.coronal.parent = some Phonology.FeatureGeometry.Node.place
- Phonology.FeatureGeometry.Node.dorsal.parent = some Phonology.FeatureGeometry.Node.place
Instances For
All eight nodes.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The children of n: the nodes whose parent is n.
Equations
- n.children = List.filter (fun (k : Phonology.FeatureGeometry.Node) => k.parent == some n) Phonology.FeatureGeometry.Node.allNodes
Instances For
Dominance #
n dominates m: it is m or one of its ancestors — the reflexive-transitive
closure of "is the parent of", walked up from m. Depth-agnostic.
Equations
- n.Dominates m = Relation.ReflTransGen (fun (a b : Phonology.FeatureGeometry.Node) => a.parent = some b) m n
Instances For
Equations
- One or more equations did not get rendered due to their size.
Feature-to-node mapping #
Each terminal feature's dominating class node — this geometry's assignment
(contested for [continuant]/[nasal]/[lateral]; see the module docstring).
Equations
- Phonology.Feature.syllabic.node = Phonology.FeatureGeometry.Node.root
- Phonology.Feature.consonantal.node = Phonology.FeatureGeometry.Node.root
- Phonology.Feature.sonorant.node = Phonology.FeatureGeometry.Node.root
- Phonology.Feature.approximant.node = Phonology.FeatureGeometry.Node.root
- Phonology.Feature.delayedRelease.node = Phonology.FeatureGeometry.Node.root
- Phonology.Feature.tap.node = Phonology.FeatureGeometry.Node.root
- Phonology.Feature.trill.node = Phonology.FeatureGeometry.Node.root
- Phonology.Feature.voice.node = Phonology.FeatureGeometry.Node.laryngeal
- Phonology.Feature.spreadGlottis.node = Phonology.FeatureGeometry.Node.laryngeal
- Phonology.Feature.constrGlottis.node = Phonology.FeatureGeometry.Node.laryngeal
- Phonology.Feature.continuant.node = Phonology.FeatureGeometry.Node.supralaryngeal
- Phonology.Feature.nasal.node = Phonology.FeatureGeometry.Node.softPalate
- Phonology.Feature.labial.node = Phonology.FeatureGeometry.Node.labial
- Phonology.Feature.round.node = Phonology.FeatureGeometry.Node.labial
- Phonology.Feature.labiodental.node = Phonology.FeatureGeometry.Node.labial
- Phonology.Feature.coronal.node = Phonology.FeatureGeometry.Node.coronal
- Phonology.Feature.anterior.node = Phonology.FeatureGeometry.Node.coronal
- Phonology.Feature.distributed.node = Phonology.FeatureGeometry.Node.coronal
- Phonology.Feature.lateral.node = Phonology.FeatureGeometry.Node.coronal
- Phonology.Feature.strident.node = Phonology.FeatureGeometry.Node.coronal
- Phonology.Feature.dorsal.node = Phonology.FeatureGeometry.Node.dorsal
- Phonology.Feature.high.node = Phonology.FeatureGeometry.Node.dorsal
- Phonology.Feature.low.node = Phonology.FeatureGeometry.Node.dorsal
- Phonology.Feature.front.node = Phonology.FeatureGeometry.Node.dorsal
- Phonology.Feature.back.node = Phonology.FeatureGeometry.Node.dorsal
- Phonology.Feature.tense.node = Phonology.FeatureGeometry.Node.dorsal
Instances For
Does node n dominate the node feature f belongs to?
Equations
- f.DominatedBy n = n.Dominates f.node
Instances For
Natural classes #
The features dominated by n — its natural class, the features that pattern
together under processes targeting n.
Equations
- n.features = List.filter (fun (g : Phonology.Feature) => decide (n.Dominates g.node)) Phonology.Feature.allFeatures
Instances For
Tree structure (verification) #
Flat-predicate subsumption #
IsLaryngeal/IsDorsal coincide with single-node dominance; IsPlace is only a
subset (manner features like [lateral]/[strident] sit geometrically under Coronal).
Complex and contour segments #
Complex segments have one root node with several place articulators active
simultaneously (e.g. labiovelars [k͡p]); they fill one timing slot and their
articulations are unordered. Contour segments have two root nodes on one timing
slot, with articulations in sequence (e.g. affricates [ts]). A single-bundle
Segment has one value per feature, so it can host only complex (one-root)
segments, via activeArticulators; sequential contours need the multi-anchor
autosegmental representation (Autosegmental/).
The geometry predicts which complex segments are possible: only those combining distinct articulators. Palatal–velar stops are impossible (both are dorsal); labiovelars are possible (labial and dorsal are independent).
Articulator nodes #
A place articulator — labial, coronal, or dorsal — the independent articulators whose distinct combinations give complex segments ([Sag86]).
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
The articulator nodes.
Equations
- Phonology.FeatureGeometry.articulatorNodes = List.filter (fun (n : Phonology.FeatureGeometry.Node) => decide n.IsArticulator) Phonology.FeatureGeometry.Node.allNodes
Instances For
Articulator geometry (verification) #
Articulators are exactly the leaf nodes.
Every articulator is dominated by root.
Every articulator is dominated by place.
The three place articulators are pairwise distinct — giving three complex types (labio-coronal, labio-dorsal, corono-dorsal).
The soft palate is a sibling of place, not under it — so nasal assimilation (spreading soft palate) is independent of place assimilation.
The soft palate is not an articulator — a velar nasal [ŋ] is simple despite activating both dorsal and soft palate.
Active articulators #
The articulator nodes with at least one specified feature in s.
Equations
- s.activeArticulators = List.filter (fun (n : Phonology.FeatureGeometry.Node) => n.features.any fun (g : Phonology.Feature) => Option.isSome (s g)) Phonology.FeatureGeometry.articulatorNodes
Instances For
The number of active articulator nodes in s.
Equations
- s.articulatorCount = s.activeArticulators.length
Instances For
Complex segments #
A complex segment has two or more simultaneously active articulators — e.g. a labiovelar [k͡p] (labial + dorsal).
Equations
- s.IsComplex = (s.articulatorCount ≥ 2)
Instances For
Complex-segment well-formedness holds by construction: a segment's active
articulators are always distinct, being filtered from the duplicate-free
articulatorNodes. The distinct-articulator condition is a theorem, not a
separate constraint ([Sag86]).