Documentation

Linglib.Phonology.Hiatus

Vowel hiatus #

Two adjacent vowels — a hiatus — are cross-linguistically dispreferred, and languages repair the configuration, most often at morpheme junctures, by eliding one of the two vowels ([Cas97]'s question: which one goes?), epenthesizing a consonant between them, or fusing them ([Cas11b]). This file defines the configuration and its elision and epenthesis repairs.

Like OCP.IsClean, Hiatus.Free is a thin layer over List.IsChain — but over co-vowelhood rather than identity, and string-adjacent rather than tier-adjacent, so neither constraint instantiates the other and the repairs differ (elision and epenthesis here; fusion and antigemination there).

Main definitions #

Main results #

A form is hiatus-free when no two adjacent segments are both vowels.

Equations
Instances For
    def Phonology.Hiatus.count (fm : List Segment) :

    The number of vowel–vowel adjacencies in a form — the violation count of the markedness constraint *Hiatus.

    Equations
    Instances For
      @[simp]
      theorem Phonology.Hiatus.count_cons_cons (a b : Segment) (fm : List Segment) :
      count (a :: b :: fm) = count (b :: fm) + if a.IsVowel b.IsVowel then 1 else 0
      theorem Phonology.Hiatus.free_iff_count_eq_zero (fm : List Segment) :
      Free fm count fm = 0

      The categorical ban and the violation count agree.

      Hiatus at a morpheme juncture #

      Hiatus at a morpheme boundary ([Cas97]'s hiatus context): a vowel-final stem stemBody ++ [v1] meets a vowel-initial suffix v2 :: suffixBody. The repairs below resolve the v1v2 adjacency, and apply only here — a consonant-final stem or consonant-initial suffix never presents the configuration.

      • stemBody : List Segment

        The stem minus its final vowel.

      • v1 : Segment

        The stem-final vowel.

      • v2 : Segment

        The suffix-initial vowel.

      • suffixBody : List Segment

        The suffix minus its initial vowel.

      • v1_isVowel : self.v1.IsVowel

        The stem-final segment is a vowel.

      • v2_isVowel : self.v2.IsVowel

        The suffix-initial segment is a vowel.

      Instances For

        The stem.

        Equations
        Instances For

          The suffix.

          Equations
          Instances For

            The underlying concatenation, with v1 and v2 in hiatus.

            Equations
            Instances For

              Consonant epenthesis: insert c between the two vowels.

              Equations
              Instances For

                V1 elision: the stem-final vowel goes.

                Equations
                Instances For

                  V2 elision: the suffix-initial vowel goes.

                  Equations
                  Instances For

                    The faithful concatenation is longer than the bare stem.

                    The epenthesized form is longer than the bare stem.

                    @[simp]

                    V2 elision merges the suffixed form with the bare stem exactly when the suffix is monosegmental — the categorical core of suffix-length-conditioned hiatus resolution.

                    @[simp]

                    V1 elision merges the suffixed form with the bare suffix exactly when the stem is monosegmental.