Documentation

Linglib.Phonology.Tone.Constraints

Tonal constraints #

OT and harmonic-serialism constraints over the candidates Candidate u of an autosegmental form u : Form S TRN M, generic over the segment type S and the opaque sponsor type M. Each is an OptimalityTheory.Constraint, a violation count. Equation numbers are McPherson and Lamont's.

Main definitions #

Implementation notes #

References #

Tone-value predicate #

Link faithfulness (Candidate.insertedLinks / deletedLinks) and the morphemes (Form.morphemes, Form.lowerOfMorpheme) are tone-agnostic and live on the substrate; only the TRN-reading predicate is here.

@[reducible, inline]
abbrev Tone.ToneHasValue {S : Type u_1} {M : Type u_2} {u : Autosegmental.Form S TRN M} (k : Fin u.upper.length) (t : TRN) :

The tone at index k has value t.

Equations
Instances For

    *FLOAT (Directional) #

    *FLOAT (paper, eq. 16) is a position-indexed block of scalar constraints, whose coordinate i flags whether underlying tone i is currently floating. Spliced forward it is *FLOAT^→, and the directional EVAL is recovered as the canonical lex order over the block ([Lam22d]).

    Equations
    Instances For

      *FLOAT^← is starFloatBlock laid out in reverse position order, for right-to-left evaluation.

      Equations
      Instances For

        The count variant of *FLOAT totals the floating tones as a single scalar constraint, the degree collapse of starFloatBlock.

        Equations
        Instances For

          *TAUTDOCK #

          *TAUTDOCK (paper, eq. 15, after [Wol07]) assigns one violation per GEN-inserted tautomorphemic surface link.

          Equations
          Instances For

            *CROWD (per-morpheme tone count) #

            def Tone.tonesForMorpheme {S : Type u_1} {M : Type u_2} [DecidableEq M] {u : Autosegmental.Form S TRN M} (c : Autosegmental.Candidate u) (m : M) :
            Finset (Fin u.upper.length)

            The tones counting toward morpheme m's tonal mass are its surviving underlying tones and the tones surface-linked to its TBUs.

            Equations
            Instances For
              def Tone.starCrowd {S : Type u_1} {M : Type u_2} [DecidableEq M] {u : Autosegmental.Form S TRN M} (threshold : ℕ := 2) :

              *CROWD (paper eq. 5) assigns one violation per morpheme with more than threshold tones (default 2), counting its surviving underlying tones plus tones docked onto its TBUs from other morphemes.

              Equations
              Instances For

                *FALL (falling contours on multi-linked TBUs) #

                @[reducible, inline]
                abbrev Tone.IsFallingPair (t1 t2 : TRN) :

                A tone pair (t1, t2) (in tier order) is falling iff it is HM, HL, or ML (paper eq. 23).

                Equations
                Instances For
                  def Tone.HasFall :
                  List TRN → Prop

                  A tone sequence contains a falling adjacent pair.

                  Equations
                  Instances For
                    @[instance_reducible]
                    instance Tone.decidableHasFall (ts : List TRN) :
                    Decidable (HasFall ts)
                    Equations

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

                    Equations
                    Instances For

                      *M<L (M-then-L adjacency on the tier) #

                      *M<L (paper eq. 29) assigns one violation per M tone immediately preceding an L on the tonal tier, with adjacency measured over the surviving tones in tier order, so deletions skip positions.

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

                        HAVETONE #

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

                        Equations
                        Instances For

                          Faithfulness — Generic over Tone Value #

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

                          Equations
                          Instances For

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

                            Equations
                            Instances For

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

                              Equations
                              Instances For