Documentation

Linglib.Theories.Phonology.Tone.Constraints

Tonal Constraints — Generic Constructors over FloatingForm #

@cite{wolf-2007} @cite{cahill-2004} @cite{mcpherson-lamont-2026}

OT/HS constraint constructors over the FloatingForm S autosegmental representation (Theories/Phonology/Autosegmental/Floating.lean). Generic over the segment type S.

All constraints are DirectionalConstraints:

Constraint inventory (paper, eqs. 5, 7, 15-17, 23) #

Faithfulness against the underlying form #

Faithfulness constraints (maxTone, maxLinkTone, depLinkTone) compare surface state to the immutable underlying state stored in FloatingForm. This is what makes the @cite{mcpherson-lamont-2026} fig. 3 multi-step asymmetry visible: without underlying-form tracking, faithfulness can't fire and the LR-vs-RL distinction collapses.

The tone at index k has value t.

Equations
Instances For

    *FLOAT (paper, eq. 16): one violation per tone not associated to a syllable. Directional: emits the indicator vector floatIndicator, with one entry per underlying tone position recording whether that tone is currently floating.

    Equations
    Instances For

      *FLOAT (count): count-based variant of *FLOAT that emits the total floating-tone count as a singleton vector. Used in regular (non-directional) HS where positions don't matter — only the cardinality of the floating set.

      Distinct from starFloat (which emits the position-aware indicator vector). The two coincide when there is at most one floating tone but diverge as the floating set grows: count-based comparison cannot distinguish "delete leftmost" from "delete rightmost" since both reduce the count by 1. This is @cite{mcpherson-lamont-2026}'s eq. (62) "divergent ties" claim — regular HS with starFloatCount cannot disambiguate /kāk^H + rī^H + dō^H/ step 1.

      Architectural note: the substrate's EvalMode.le .parallel and EvalMode.le (.directional .leftToRight) both use the same LexLE on the violation vector. The parallel-vs-directional distinction therefore lives in the constraint (count vs indicator), not the EVAL mode flag. The flag remains useful for documenting intent and for the right-to-left case (which uses LexLE on the reversed vector).

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For

        *TAUTDOCK (paper, eq. 15, after @cite{wolf-2007}): one violation per GEN-inserted tautomorphic surface link.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For

          The tone at index k belongs to morpheme m.

          Equations
          Instances For

            The TBU at index i belongs to morpheme m.

            Equations
            Instances For

              The set of tone indices counting toward morpheme m's tonal mass: surviving underlying tones of m, plus tones surface-linked to TBUs of m.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For

                *CROWD (paper, eq. 5, after @cite{cahill-2004}): one violation per morpheme associated with more than threshold tones. Default threshold = 2 matches the paper.

                Counting includes surviving underlying tones of the morpheme PLUS surface tones from other morphemes docked onto this morpheme's TBUs. This is how the paper (p. 32) blocks rightward docking onto /rī^H/: rī already has 2 tones (M + own H), so an external H docking would make 3.

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For

                  A tone pair (t1, t2) (in tier order) is falling iff it is HM, HL, or ML (paper, eq. 23). TRN's H, M, L are not constructors (they're defs), so we use equality rather than pattern matching.

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For

                    A tone sequence contains a falling adjacent pair. Recursive Prop predicate; the explicit decidability instance below carries the recursion through.

                    Equations
                    Instances For
                      @[implicit_reducible]
                      Equations

                      *FALL (paper, eq. 23): one violation per syllable associated with a falling contour (HM, HL, ML).

                      A TBU is checked by extracting its surface-linked tones in tier order (via toneSequence) and scanning for falling adjacent pairs. Uses List.range + countP rather than Finset.range + filter

                      • card so kernel decide reduces.
                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For

                        *M<L (paper, eq. 29): one violation per M tone that immediately precedes an L tone on the tonal tier. The "tier" is the sequence of surviving (non-deleted) underlying tones in ulTones order; deletions skip positions, so adjacency is measured over the alive subsequence.

                        Motivates @cite{mcpherson-lamont-2026}'s account of why floating H tones can dock leftward tautomorphically before L (eq. 30): without *M<L ≫ *TAUTDOCK, an underlying /M H L/ sequence would prefer H deletion, but that yields a surface ML adjacency which *M<L penalises. Tautomorphic docking of H breaks the ML adjacency, creating an MH contour rather than M-L.

                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For

                          HAVETONE (paper, eq. 17): one violation per syllable not associated to any tone.

                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For

                            MAX(T) (paper, eq. 7c): one violation per underlying tone of value t deleted by GEN.

                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For

                              DEP(link)/T (paper, eq. 7a): one violation per surface link inserted by GEN whose linked tone has value t.

                              Equations
                              • One or more equations did not get rendered due to their size.
                              Instances For

                                MAX(link)/T (paper, eq. 7b): one violation per underlying link of value t deleted by GEN.

                                Equations
                                • One or more equations did not get rendered due to their size.
                                Instances For

                                  INTEGRITY (paper, @cite{mccarthy-prince-1995}; @cite{akinbo-fwangwar-2026} eq. 22c): no input tone has multiple output correspondents. In our autosegmental encoding, an "output correspondent of an input tone" is an alive ulTones entry sharing the input tone's value AND morpheme. SPREADING (one alive ulTones entry, multi-linked) → 0 violations. COPYING (multiple alive ulTones entries with same value+morpheme) → (count - 1) violations.

                                  Parameterised by the morpheme m and tone value t whose copies are being counted (typically the verbaliser's M or H). The paper's INTEGRITY-Mᵥ is integrityTone vbzMorph .M.

                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  Instances For