Documentation

Linglib.Phonology.Tone.Basic

Tonal root nodes and subtonal features #

Tone is paradigmatic: a tonal root node (TRN) bundles the two subtonal features [±upper] (which register half) and [±raised] (which target within it) of [Yip80] and [Pul86], each possibly unspecified, and links to a tone-bearing unit. Following [Lio22], the features are paradigmatic targets, not [Sni99]'s syntagmatic shifts; the terracing reading of [raised] is Tone.Register.

Main definitions #

inductive Tone.Subtonal :

The two subtonal feature dimensions ([Lio22] ex. 51, after [Yip80], [Pul86]): upper, which register half; raised, which target within it. A value is some true (+), some false (-), or none (unspecified).

Instances For
    @[instance_reducible]
    Equations
    @[instance_reducible]
    Equations
    def Tone.instReprSubtonal.repr :
    Subtonal → Nat → Std.Format
    Equations
    Instances For
      @[instance_reducible]
      Equations
      structure Tone.TRN :

      A tonal root node: a [±upper] and a [±raised] value, each possibly unspecified. A structure rather than the bundle Subtonal → Option Bool, so that DecidableEq derives and literals reduce; TRN.bundleEquiv is the bundle view.

      • upper : Option Bool
      • raised : Option Bool
      Instances For
        @[instance_reducible]
        instance Tone.instDecidableEqTRN :
        DecidableEq TRN
        Equations
        def Tone.instDecidableEqTRN.decEq (x✝ x✝¹ : TRN) :
        Decidable (x✝ = x✝¹)
        Equations
        • Tone.instDecidableEqTRN.decEq { upper := a, raised := a_1 } { upper := b, raised := b_1 } = if h : a = b then h ▸ if h : a_1 = b_1 then h ▸ isTrue ⋯ else isFalse ⋯ else isFalse ⋯
        Instances For
          def Tone.instReprTRN.repr :
          TRN → Nat → Std.Format
          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            @[instance_reducible]
            instance Tone.instReprTRN :
            Repr TRN
            Equations
            @[instance_reducible]
            instance Tone.instInhabitedTRN :
            Inhabited TRN
            Equations
            @[match_pattern]

            The fully unspecified node.

            Equations
            Instances For
              @[match_pattern]

              A floating [-raised]: the downstep node of a register-only system.

              Equations
              Instances For
                @[match_pattern]

                A floating [+raised]: the upstep node.

                Equations
                Instances For
                  @[match_pattern]

                  High, [+upper, -raised] ([Lio22] ex. 51).

                  Equations
                  Instances For
                    @[match_pattern]

                    Mid, [-upper, +raised] ([Lio22] ex. 51).

                    Equations
                    Instances For
                      @[match_pattern]

                      Low, [-upper, -raised] ([Lio22] ex. 51).

                      Equations
                      Instances For
                        @[match_pattern]

                        The fourth specification [+upper, +raised]: the gap of Laal's three-tone system ([Lio22] ex. 51).

                        Equations
                        Instances For
                          def Tone.TRN.toBundle (t : TRN) :
                          Subtonal → Option Bool

                          The feature bundle of a node.

                          Equations
                          Instances For
                            def Tone.TRN.ofBundle (b : Subtonal → Option Bool) :

                            The node of a feature bundle.

                            Equations
                            Instances For
                              @[simp]
                              theorem Tone.TRN.toBundle_ofBundle (b : Subtonal → Option Bool) :
                              def Tone.TRN.bundleEquiv :
                              TRN ≃ (Subtonal → Option Bool)

                              A root node is its feature bundle.

                              Equations
                              Instances For
                                def Tone.TRN.assimilate (f : Subtonal) (src tgt : TRN) :

                                Subtonal assimilation at f: the target takes its value at f from the source, its other feature untouched. Laal M-lowering ([Lio22] §5.2) is assimilate .raised: a [-raised] value spreads onto M, [-upper, +raised], giving L.

                                Equations
                                Instances For
                                  def Tone.TRN.merge (t₁ t₂ : TRN) :

                                  Merger of two nodes ([Lio22] ex. 53–54): each feature from the left node where it is specified, else from the right — the fusion of two associated tones ([Gol76]); the tier-level merger of a run of identical tones is OCP.collapse.

                                  Equations
                                  Instances For
                                    @[simp]
                                    theorem Tone.TRN.merge_self (t : TRN) :
                                    t.merge t = t
                                    def Tone.TRN.dock (f : Subtonal) (v : Bool) (t : TRN) :

                                    Docking of a floating feature ([Lio22] §5.3): a free [±f] lands on a node, overwriting its value at f.

                                    Equations
                                    Instances For

                                      Tone-bearing units and word-prosodic types #

                                      inductive Tone.TBUKind :

                                      The prosodic unit that carries a node: the syllable in most tone languages, the mora in Drubea and Numèè ([Lio25]).

                                      Instances For
                                        @[instance_reducible]
                                        instance Tone.instDecidableEqTBUKind :
                                        DecidableEq TBUKind
                                        Equations
                                        def Tone.instReprTBUKind.repr :
                                        TBUKind → Nat → Std.Format
                                        Equations
                                        Instances For
                                          @[instance_reducible]
                                          Equations
                                          def Tone.IsRegisterOnly (ts : List TRN) :

                                          A register-only inventory ([Lio25]): no node specifies [upper], so only the syntagmatic [raised] is contrastive. Lionnet's split of [Hym06]'s tone prototype — register-based systems (Drubea, Numèè) against tone-based ones with paradigmatic [upper] contrasts (Yoruba, Mandarin) and mixed ones (Paicî, Baga Pukur) — is read off the lexical inventory rather than recorded.

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