Tonal surfacing processes #
A surfacing process bundles the analysis [Jar16] gives tone-string maps: a
marked tone value, and a context predicate Surfaces w i saying position i of w
surfaces with it. The induced rewrite Surfacing.map writes the marked tone exactly at
the surfacing positions and the default elsewhere; Surfacing.support is the surfacing
set. Owning the context predicate on the process is what lets rival processes coexist:
unbounded tonal plateauing (Tone.Plateauing.utp) and Copperbelt Bemba high-tone
spreading (Studies/Yolyan2025) instantiate the same structure with very different
predicates — plateauing's is convex and its map a closure operator, spreading's is
neither — so only the genuinely shared API lives here.
The laws are the shared minimum: surfacing positions are in-domain (lt_length), the
marked tone is faithful — an underlying marked tone always surfaces (surfaces_of_hi) —
and the two written values are distinct (hi_ne_lo), which makes the pointwise
characterizations (map_getElem?_hi_iff, map_getElem?_lo_iff) read the map exactly.
A tonal surfacing process over the alphabet α: a marked tone hi, a default lo,
and the context predicate saying which positions of a word surface with the mark.
- hi : α
The marked (surfacing) tone value.
- lo : α
The default value written at non-surfacing positions.
- Surfaces : List α → ℕ → Prop
Position
iofwsurfaces with the marked tone. The two written values are distinct.
Surfacing positions are in-domain.
Faithfulness: an underlying marked tone surfaces.
The context predicate is decidable, so the map computes.
Instances For
Equations
- P.instDecidableSurfaces w i = P.decSurfaces w i
The flank-witness template, at the surfacing level: a process whose surfacing at
a d-margined target in a flank word is switched on by the base flanks and off by
either single flip requires both sides — supply only the three surfacing facts.
Conjunctive two-sided triggers require both sides: a process that surfaces the marked tone exactly where one occurrence lies at-or-before and one at-or-after needs unboundedly distant information on both sides — the flank witness family is generic.