Grammatical tone #
Grammatical tone is a tonological operation restricted to a specific morpheme or construction,
or a natural class of them, and not attributable to the general tonal phonology. This file
gives Rolle's vocabulary for it over strings of tone-bearing units: the grammatical tune that
covaries with the construction, anchored at an edge of its host, and the four dominance
effects by which a trigger's tune interacts with the tones of its target-host. A dominant
trigger imposes its pattern whatever the target's tones, a recessive one only on an unvalued
target, and a neutral one leaves the target to the general phonology. Dominance is the
neutralisation of the target's valued–unvalued contrast, which Rolle calls transparadigmatic
uniformity, and Dominance.isDominant_iff_uniform derives his classification from it.
Main definitions #
TBU,TBU.IsValued: a tone-bearing unit with its tonal root node, valued when the node is specified.Tune,Tune.realize: a grammatical tune, a melody anchored at an edge of the host, and its realisation over a number of units: one tone per unit from the anchored edge, the last tone reached spreading over the remainder.overwrite,unvalue: replacement of a host's tones by a tune, and their deletion.Uniform: transparadigmatic uniformity of an operation on hosts.Dominance,Dominance.apply: Rolle's replacive-dominant, subtractive-dominant, recessive, and neutral triggers, and the automatic operation each performs on its target-host.
Main results #
overwrite_unvalue: a host and its unvalued projection are overwritten alike.Dominance.isDominant_iff_uniform: a trigger is dominant exactly when its operation is uniform across targets of the same segments.
Implementation notes #
A tone-bearing unit carries one root node, so contours are not represented and a tune longer than its host is truncated at the anchored edge. The valuation window is coextensive with the host, Rolle's default; local windows are not modelled. The neutral trigger's tune floats and its docking is left to the general phonology, so its automatic operation is the identity on the host. Which edge a tune anchors at is a property of the construction: Akinbo and Fwangwar's M-H verbaliser anchors right, putting H on the final unit and M on the rest.
References #
Tone-bearing units #
Equations
- Tone.instDecidableEqTBU.decEq { seg := a, tone := a_1 } { seg := b, tone := b_1 } = if h : a = b then h ▸ if h : a_1 = b_1 then h ▸ isTrue ⋯ else isFalse ⋯ else isFalse ⋯
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Tone.instReprTBU = { reprPrec := Tone.instReprTBU.repr }
A unit is valued when its root node is specified and unvalued when it is a free unit ([Rol18] Table 1, after [CG84]).
Equations
- τ.IsValued = (τ.tone ≠ Tone.TRN.empty)
Instances For
Equations
- x✝.instDecidablePredIsValued = { decide := !decide (x✝.tone = Tone.TRN.empty), reflects_decide := ⋯ }
Grammatical tunes #
Equations
- Tone.instDecidableEqTune.decEq { melody := a, anchor := a_1 } { melody := b, anchor := b_1 } = if h : a = b then h ▸ if h : a_1 = b_1 then h ▸ isTrue ⋯ else isFalse ⋯ else isFalse ⋯
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Tone.instReprTune = { reprPrec := Tone.instReprTune.repr }
A melody over n units from the left puts one tone on each unit, the last tone spreading
over the remaining units and an empty melody leaving them unvalued.
Equations
- Tone.Tune.realizeLeft 0 x✝ = []
- Tone.Tune.realizeLeft n.succ [] = List.replicate (n + 1) Tone.TRN.empty
- Tone.Tune.realizeLeft n.succ [t] = t :: Tone.Tune.realizeLeft n [t]
- Tone.Tune.realizeLeft n.succ (t :: t' :: ts) = t :: Tone.Tune.realizeLeft n (t' :: ts)
Instances For
The tune realised over n units puts one tone on each unit from the anchored edge, the last
tone reached spreading over the remainder.
Equations
- u.realize n = match u.anchor with | Edge.left => Tone.Tune.realizeLeft n u.melody | Edge.right => (Tone.Tune.realizeLeft n u.melody.reverse).reverse
Instances For
A two-tone tune anchored right puts its second tone on the final unit and its first on the rest.
Operations on a target-host #
Replacement of the host's tones by the tune ([Rol18] Def 1) is the tune realised over the host's units.
Equations
- Tone.overwrite host u = Tone.withTier host (u.realize host.length)
Instances For
Deletion of the host's tones ([Rol18] Def 2) leaves every unit unvalued.
Equations
- Tone.unvalue host = List.map (fun (τ : Tone.TBU S) => { seg := τ.seg, tone := Tone.TRN.empty }) host
Instances For
An operation on target-hosts is transparadigmatically uniform ([Rol18] ch. 5) when it gives the same output for hosts of the same segments, whatever their tones.
Equations
- Tone.Uniform op = ∀ ⦃h h' : List (Tone.TBU S)⦄, List.map Tone.TBU.seg h = List.map Tone.TBU.seg h' → op h = op h'
Instances For
Dominance effects #
[Rol18]'s dominance effects, his four types of trigger (Defs 1–4, Table 2) by how the trigger's tune interacts with the tonal value of its target-host. Dominance is a lexical idiosyncrasy of the trigger, predictable neither from its segments and prosody nor from the markedness of the tune nor from its position relative to the target ([Ink98]); the terms are those of the accentual morphology of [KH77].
- replacive : Dominance
A replacive-dominant trigger (Def 1) replaces the underlying tones within the valuation window by the tune, whether by a floating tone or by spreading from the sponsor. Valued and unvalued targets come out alike, an intentional neutralisation in [Hym18]'s sense.
- subtractive : Dominance
A subtractive-dominant trigger (Def 2) deletes the underlying tones within the valuation window, with no tune to revalue them; the surface tones are supplied later by default.
- recessive : Dominance
The tune of a recessive non-dominant trigger (Def 3) does not apply to a target valued within the valuation window, so it docks only to unvalued targets, as in privative systems with one contrastive tone.
- neutral : Dominance
A neutral non-dominant trigger (Def 4) has neither automatic replacement or deletion nor automatic non-application; the tune concatenates with the target and the general phonology decides its docking.
Instances For
Equations
- Tone.instDecidableEqDominance x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
- Tone.instReprDominance = { reprPrec := Tone.instReprDominance.repr }
Equations
- Tone.instReprDominance.repr Tone.Dominance.replacive prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Tone.Dominance.replacive")).group prec✝
- Tone.instReprDominance.repr Tone.Dominance.subtractive prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Tone.Dominance.subtractive")).group prec✝
- Tone.instReprDominance.repr Tone.Dominance.recessive prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Tone.Dominance.recessive")).group prec✝
- Tone.instReprDominance.repr Tone.Dominance.neutral prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Tone.Dominance.neutral")).group prec✝
Instances For
The dominant types, which neutralise the target's valued–unvalued contrast.
Equations
- d.IsDominant = (d = Tone.Dominance.replacive ∨ d = Tone.Dominance.subtractive)
Instances For
Equations
- x✝.instDecidablePredIsDominant = { decide := decide (x✝ = Tone.Dominance.replacive) || decide (x✝ = Tone.Dominance.subtractive), reflects_decide := ⋯ }
The automatic operation a trigger of each type performs on its target-host, the valuation window being the whole host. The four are replacement by the tune, deletion, docking of the tune only to a wholly unvalued host, and nothing.
Equations
- Tone.Dominance.replacive.apply u host = Tone.overwrite host u
- Tone.Dominance.subtractive.apply u host = Tone.unvalue host
- Tone.Dominance.recessive.apply u host = if ∃ τ ∈ host, τ.IsValued then host else Tone.overwrite host u
- Tone.Dominance.neutral.apply u host = host
Instances For
Dominance is transparadigmatic uniformity ([Rol18] ch. 5), in that a trigger is dominant exactly when its operation gives the same output for every target of the same segments.