Documentation

Linglib.Morphology.Morphotactics.CVTemplate

CV templates and template association #

The skeletal species of template — [McC81]'s prosodic template, also called the CV-skeleton — as the sibling of the position-class AffixTemplate: an ordered sequence of consonantal and vocalic timing slots. A TemplateMatch pairs a consonantal root, a vocalism, and affixal material with a template and a list of association lines; spellout reads off the surface segments. Gemination is a one-to-many association from one melody element to several slots ([McC81]); a slot with no association line receives no phonetic realization.

Association conventions — one-to-one left-to-right, spreading, erasure rules — are derivational recipes and live with the studies that state them (Studies/McCarthy1981.lean, Studies/Faust2026.lean); this file provides the representations they manipulate.

Main declarations #

Main results #

A slot in a CV-skeletal template ([McC81], [Low96]): a bare consonantal timing slot, a vowel timing slot, or a C-slot bearing [+consonantal], which blocks association from glides ([Fau26]).

  • C : CVSlot

    A bare consonantal timing slot.

  • V : CVSlot

    A vowel timing slot.

  • Cspec : CVSlot

    A C-slot specified [+consonantal].

Instances For
    @[implicit_reducible]
    Equations
    def Morphology.instReprCVSlot.repr :
    CVSlotStd.Format
    Equations
    Instances For
      @[implicit_reducible]
      Equations

      IsC s asserts that s is a C-slot, bare or [+consonantal].

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

        IsV s asserts that s is a V-slot.

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

          RequiresConsonantal s asserts that s demands a [+consonantal] segment.

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

            A CV-skeletal template: an ordered sequence of timing slots.

            • slots : List CVSlot

              The slots, in order.

            Instances For
              Equations
              • Morphology.instReprCVTemplate.repr x✝ prec✝ = Std.Format.bracket "{ " (Std.Format.nil ++ Std.Format.text "slots" ++ Std.Format.text " := " ++ (Std.Format.nest 9 (repr x✝.slots)).group) " }"
              Instances For
                def Morphology.instDecidableEqCVTemplate.decEq (x✝ x✝¹ : CVTemplate) :
                Decidable (x✝ = x✝¹)
                Equations
                Instances For

                  The number of slots.

                  Equations
                  Instances For

                    The number of C-slots.

                    Equations
                    Instances For
                      @[reducible, inline]

                      t.isFinalSlot i asserts that i is the final slot position.

                      Equations
                      Instances For
                        def Morphology.CVTemplate.slotAt (t : CVTemplate) (i : ) :
                        Option CVSlot

                        The slot at position i, if in range.

                        Equations
                        Instances For

                          The positions of the C-slots, in order.

                          Equations
                          • t.cSlots = List.filter (fun (i : ) => match t.slots[i]? with | some s => decide s.IsC | none => false) (List.range t.length)
                          Instances For

                            The positions of the V-slots, in order.

                            Equations
                            • t.vSlots = List.filter (fun (i : ) => match t.slots[i]? with | some s => decide s.IsV | none => false) (List.range t.length)
                            Instances For

                              The tier a melody element on one end of an association line belongs to: the consonantal root, the vocalism, or affixal material. Tiers are morphologically defined ([McC81]) — one melody per morpheme class.

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

                                  A single melody-to-slot association line ([McC81]). melodyIndex indexes into the melody named by source; defaults to .root so ordinary root associations stay terse.

                                  • source : AssocSource

                                    The tier the associated melody element lives on.

                                  • melodyIndex :

                                    The index of the melody element on its tier.

                                  • slotIndex :

                                    The index of the template slot.

                                  Instances For
                                    def Morphology.instDecidableEqAssociation.decEq (x✝ x✝¹ : Association) :
                                    Decidable (x✝ = x✝¹)
                                    Equations
                                    • One or more equations did not get rendered due to their size.
                                    Instances For
                                      Equations
                                      • One or more equations did not get rendered due to their size.
                                      Instances For
                                        structure Morphology.TemplateMatch (α : Type u_1) :
                                        Type u_1

                                        A consonantal root, a vocalism, and affixal material matched to a template by a list of association lines. Different candidate realizations of the same morpheme combination are different TemplateMatch values sharing everything but associations; gemination is one melody index associated to several slots.

                                        • root : ConsonantalRoot α

                                          The consonantal root.

                                        • vocalism : List α

                                          The vocalic melody.

                                        • affix : List α

                                          The affixal material.

                                        • template : CVTemplate

                                          The template.

                                        • associations : List Association

                                          The association lines.

                                        Instances For
                                          @[implicit_reducible]
                                          instance Morphology.instReprTemplateMatch {α✝ : Type u_1} [Repr α✝] :
                                          Repr (TemplateMatch α✝)
                                          Equations
                                          def Morphology.instReprTemplateMatch.repr {α✝ : Type u_1} [Repr α✝] :
                                          TemplateMatch α✝Std.Format
                                          Equations
                                          • One or more equations did not get rendered due to their size.
                                          Instances For
                                            def Morphology.instDecidableEqTemplateMatch.decEq {α✝ : Type u_1} [DecidableEq α✝] (x✝ x✝¹ : TemplateMatch α✝) :
                                            Decidable (x✝ = x✝¹)
                                            Equations
                                            • One or more equations did not get rendered due to their size.
                                            Instances For
                                              @[implicit_reducible]
                                              instance Morphology.instDecidableEqTemplateMatch {α✝ : Type u_1} [DecidableEq α✝] :
                                              DecidableEq (TemplateMatch α✝)
                                              Equations
                                              def Morphology.TemplateMatch.segmentAt {α : Type u_1} (m : TemplateMatch α) (a : Association) :
                                              Option α

                                              The segment an association line contributes, if its index is in range.

                                              Equations
                                              Instances For
                                                def Morphology.TemplateMatch.spellout {α : Type u_1} (m : TemplateMatch α) :
                                                List α

                                                The surface segments of the match: each slot contributes the segment of its first association line; a slot with no association receives no phonetic realization ([McC81]).

                                                Equations
                                                Instances For

                                                  The C-slot positions not filled by any association.

                                                  Equations
                                                  Instances For
                                                    @[reducible, inline]

                                                    m.allCSlotsFilled asserts that every C-slot is filled by some association line.

                                                    Equations
                                                    Instances For
                                                      @[reducible, inline]

                                                      m.inBounds asserts that every association line points to an in-range melody element and slot.

                                                      Equations
                                                      Instances For

                                                        m.OrderedOn s asserts that the association lines from tier s do not cross: distinct melody elements associate to slots in melody order ([Gol76]'s no-crossing condition, within one tier).

                                                        Equations
                                                        Instances For
                                                          @[implicit_reducible]
                                                          Equations
                                                          @[implicit_reducible]
                                                          Equations
                                                          theorem Morphology.TemplateMatch.spellout_nil {α : Type u_1} (r : ConsonantalRoot α) (t : CVTemplate) :
                                                          { root := r, template := t, associations := [] }.spellout = []

                                                          A match with no associations spells out to nothing.

                                                          Interpretation into the autosegmental substrate #

                                                          m.SlotUnique s asserts that no slot hosts two distinct melody elements of tier s[McC81]'s prohibition against many-to-one associations.

                                                          Equations
                                                          Instances For

                                                            A tier is OrderedOn iff its link set is non-crossing in the sense of the autosegmental substrate and one-to-one per slot: [Gol76]'s No-Crossing Constraint plus [McC81]'s prohibition against many-to-one associations.