Merging concatenation of autosegmental representations #
Jardine and Heinz concatenate two representations by bridging them and merging the seam: on the
melody tier, the last node of the first factor and the first node of the second become one node
when they bear the same label, and that node keeps the lines of both. AR.mergeConcat m X Y is
this concatenation, the repointing of X ⊗ Y along OCP.mergeIdx. A string realizes as the
left fold of merging concatenation over its symbols' primitives (AR.mergeRealize).
The merge happens at the seam only, so a primitive that itself violates the OCP keeps its
violation. Collapsing every run after concatenating, as realizeMerged does, would merge it
away. The two realizations agree when the primitives are OCP-clean, because the collapse of a
concatenation is the merging concatenation of the collapses.
Main definitions #
AR.mergeConcat: concatenation with the melody seam merged.AR.mergeRealize: the realization of a string as a left fold of merging concatenation.
Main statements #
AR.mergeConcatAssocFullIso: merging concatenation is associative.AR.noCrossing_mergeConcat,AR.isCleanAt_mergeConcat: it preserves the NCC, and the OCP of OCP-clean factors.AR.collapseTensorFullIso: the collapse of a concatenation is the merging concatenation of the collapses.AR.nonempty_fullIso_realizeMerged: over OCP-clean primitives, the realization by merging concatenation is the collapsed realization.
Implementation notes #
Jardine and Heinz merge at every melody tier; mergeConcat merges at one tier m, the two-tier
case their primitives assume. They prove associativity for the graphs generated from primitives,
whose tiers are strings; Axioms 1 and 2 make every tier a string, so here it holds for all
finite representations.
References #
Where tier i of the second factor starts in a merging concatenation.
Equations
- Autosegmental.AR.mergeOffset m X Y i = if i = m then OCP.mergeOffset (Autosegmental.AR.tierWord m) (Autosegmental.AR.tierWord m) else Autosegmental.AR.tierLength X i
Instances For
Merging concatenation: X ⊗ Y with the seam of melody tier m merged, the last node of
X and the first node of Y becoming one node when they bear the same label.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A link of a merging concatenation is a link of the first factor, or a link of the second shifted to where that factor starts.
The theorems of Jardine and Heinz #
The empty representation is a left unit ([JH15] Theorem 1).
Instances For
The empty representation is a right unit ([JH15] Theorem 1).
Instances For
Merging concatenation respects full isomorphism.
Equations
Instances For
Merging concatenation is associative ([JH15] Theorem 3).
Instances For
Merging concatenation preserves the NCC, the inductive step of [JH15] Theorem 4.
Merging concatenation of OCP-clean factors is OCP-clean, the inductive step of [JH15] Theorem 5.
Collapse as a homomorphism #
The collapse of a concatenation is the merging concatenation of the collapses.
Instances For
Realization by merging concatenation #
A step of the left fold: the merging concatenation of a stage with a symbol's primitive.
Equations
- Autosegmental.AR.mergeStep m g₀ A s = ⟨Autosegmental.AR.mergeConcat m (↑A) (g₀ s), ⋯⟩
Instances For
The realization of a string by merging concatenation, the left fold g(uγ) = g(u) ∘ g(γ)
from the empty representation ([JH15] Definition 5).
Equations
- Autosegmental.AR.mergeRealize m g₀ w = ↑(List.foldl (Autosegmental.AR.mergeStep m g₀) ⟨CategoryTheory.MonoidalCategoryStruct.tensorUnit (Autosegmental.TieredAR ι τ), ⋯⟩ w)
Instances For
Over primitives obeying the NCC, every realization obeys it ([JH15] Theorem 4).
Over OCP-clean primitives, every realization is OCP-clean ([JH15] Theorem 5).
Over OCP-clean primitives, the realization by merging concatenation is the collapsed realization.