Autosegmental Representations #
@cite{goldsmith-1976}
Autosegmental phonology adds feature sharing to segmental
representations: when adjacent segments share a geometric node's features, they
are linked to a single autosegmental element on that node's tier. This module
builds on the feature geometry (FeatureGeometry.lean) and segment type
(Features.lean) to provide association lines, feature agreement predicates,
autosegmental representations with consistency checking, spread/delink operations,
and OCP violation counting.
An association line connects a source position to a target position on an autosegmental tier.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Association lines do not cross: if src₁ < src₂ then tgt₁ ≤ tgt₂.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Do s1 and s2 agree on all features dominated by node n?
Equations
- Theories.Phonology.Autosegmental.agreeAt s1 s2 n = n.features.all fun (f : Theories.Phonology.Feature) => s1.spec f == s2.spec f
Instances For
Place assimilation: agreement on all place features.
Equations
Instances For
Total assimilation: agreement on all supralaryngeal features.
Equations
Instances For
Segments at positions left and left + 1 share all features
dominated by node.
- left : Nat
- node : FeatureGeometry.GeomNode
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Are all sharing specifications within bounds?
Equations
Instances For
Is each sharing specification consistent with the segments' feature values?
Equations
- One or more equations did not get rendered due to their size.
Instances For
Spread node n rightward from position pos.
Equations
Instances For
Remove sharing at position pos for node n.
Equations
Instances For
Remove all sharing involving node n.
Equations
- r.delinkAll n = { segments := r.segments, sharing := List.filter (fun (s : Theories.Phonology.Autosegmental.Sharing) => s.node != n) r.sharing }
Instances For
Replace all features under geometric node n in tgt with src's values.
This models autosegmental node replacement: when a place node spreads,
the entire node (including unspecified features) is copied, not just
the specified ones.
Equations
- Theories.Phonology.Autosegmental.copyFeaturesUnder tgt src n = { spec := fun (f : Theories.Phonology.Feature) => if f.dominatedBy n = true then src.spec f else tgt.spec f }
Instances For
Spread node n from position pos + 1 onto position pos, replacing
the target's features under n with the trigger's values and recording
the sharing link.
Equations
- One or more equations did not get rendered due to their size.
Instances For
After copying features under node n, the result agrees with the source
at that node.
Count OCP violations for node n: adjacent segments that agree on all
features dominated by n. Returns Nat matching OT/Core.lean's
NamedConstraint.eval.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Agreement is reflexive.
Place assimilation checks 14 features (the place node's natural class).
Total assimilation checks 15 features (the supralaryngeal node's natural class).
Spreading and then delinking returns the original representation when the position/node pair was not already present in the sharing list.