Autosegmental realization of strings #
The realization of a string maps each symbol to its autosegmental graph primitive
and concatenates them ([Jar19]'s mapping g): realize g₀ w = ∏ (w.map g₀) in
the concatenation monoid Monoid (AR α β).
This is a string→AR monoid homomorphism (realize_append), the exact analogue —
one categorical level up — of the string→tier-string projection
TierProjection.apply (= List.filterMap, also concat-distributing): both are
free-monoid homomorphisms built from a per-symbol map, used to define a subregular
class as a preimage (Phonology/Autosegmental/ASL.lean for the realization,
Subregular.Language.TierStrictlyLocal for the projection). The realization keeps the
association structure the tier projection discards — see [Jar19] on ASL vs
TSL.
Realize a string as an autosegmental representation: concatenate the graph
primitives g₀ a of its symbols ([Jar19]'s g).
Equations
- Autosegmental.realize g₀ w = (List.map g₀ w).prod
Instances For
The realization is a monoid homomorphism: it distributes over concatenation —
the string→AR analogue of TierProjection.apply_append.
Tier projections #
The realization composed with a tier accessor is itself a free-monoid hom into that
tier's free monoid: upperProj g₀ sends a string to the concatenation of its symbols'
upper tiers (the underlying list of realize g₀ w's upper tier), and likewise
lowerProj. These factor the realization's tier content through FreeMonoid and are
the bridge used to place link-free ASL sets in SF (Studies.Jardine2019): a
per-tier factor constraint on the realization is the comap of a factor language along
the tier projection.
The upper-tier realization as a free-monoid hom FreeMonoid S →* FreeMonoid α:
each symbol maps to its primitive's upper tier, concatenated.
Equations
- Autosegmental.upperProj g₀ = FreeMonoid.lift fun (s : S) => FreeMonoid.ofList (g₀ s).upper.toList
Instances For
The lower-tier realization as a free-monoid hom FreeMonoid S →* FreeMonoid β.
Equations
- Autosegmental.lowerProj g₀ = FreeMonoid.lift fun (s : S) => FreeMonoid.ofList (g₀ s).lower.toList
Instances For
Linearization: the association-state string of an AR #
The inverse direction of the bridge. Where realize builds an AR from a string,
linearize reads the association-state string off an AR: per timing-tier position,
its label together with the labels of the melody nodes linked to it, in tier order. This
is the linearisation phonologists use implicitly when writing a tonal input as a string of
TBU symbols — [Jar16] §4.4: each string symbol records one timing unit's
associations, so transducer look-ahead is measured on the timing tier. Like realize, it
is a monoid homomorphism into (List, ++) (AR.linearize_concat), so the linearization
of a realization is the concatenation of the per-symbol association profiles
(linearize_realize).
The labels of the upper (melody) nodes linked to lower position j, in tier order.
Equations
Instances For
Positions inside A see only A's links.
Positions past A see exactly B's links, shifted down by A's length.
Linkedness is readable off the linearization: slot j is linked iff its
association-state entry carries a nonempty melody.