Documentation

Linglib.Syntax.Voice.Derivation

Voice derivations #

A derivation applies voices one after another to a clause's participants. A Stage records where each participant sits in the current frame, the referential dependencies established and the agreements registered so far; applying a voice moves each participant to the slot its own corresponds to (Voice.image), suppresses those without one, lets a fresh participant into the slot the voice adds (Voice.newSlots) and links a subject the voice cumulates (Voice.fate) to each participant cumulated with it. Agreement registers the participants in the subject slot, the pivot of the frame.

The single-process architecture of [Bak85] §6 reads a word's morphology and its grammatical functions off one such sequence, and [Hym03] separates the two again for Bantu, where the syntactic derivation is read off scope while the affix order is templatic.

Main definitions #

Main results #

References #

structure Voice.Stage (α : Type u_1) :
Type u_1

A derivational stage over participants α records the current frame, the slot each participant occupies, the referential dependencies established and the agreements registered so far.

  • The current frame.

  • slots : List (α × ArgumentFrame.Slot)

    The slot each participant occupies.

  • registered : List α

    The participants agreement has registered, in order.

Instances For
    def Voice.instDecidableEqStage.decEq {α✝ : Type u_1} [DecidableEq α✝] (x✝ x✝¹ : Stage α✝) :
    Decidable (x✝ = x✝¹)
    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      @[instance_reducible]
      instance Voice.instDecidableEqStage {α✝ : Type u_1} [DecidableEq α✝] :
      DecidableEq (Stage α✝)
      Equations
      @[instance_reducible]
      instance Voice.instReprStage {α✝ : Type u_1} [Repr α✝] :
      Repr (Stage α✝)
      Equations
      def Voice.instReprStage.repr {α✝ : Type u_1} [Repr α✝] :
      Stage α✝ → ℕ → Std.Format
      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        def Voice.Stage.subjects {α : Type u_1} (s : Stage α) :
        List α

        The participants in the subject slot, the pivot of the frame.

        Equations
        Instances For
          def Voice.Stage.apply {α : Type u_1} (s : Stage α) (v : Voice) (fresh : Option α) :

          In the stage a voice derives, each participant moves to the slot its own corresponds to or is suppressed if none, a fresh participant enters the first slot the voice adds, and a subject the voice cumulates is linked to each participant cumulated with it.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            def Voice.Stage.agree {α : Type u_1} (s : Stage α) :

            Agreement registers the subject.

            Equations
            Instances For
              @[simp]
              theorem Voice.Stage.frame_apply {α : Type u_1} (s : Stage α) (v : Voice) (a : Option α) :
              @[simp]
              theorem Voice.Stage.registered_apply {α : Type u_1} (s : Stage α) (v : Voice) (a : Option α) :
              @[simp]
              theorem Voice.Stage.frame_agree {α : Type u_1} (s : Stage α) :
              @[simp]
              theorem Voice.Stage.slots_agree {α : Type u_1} (s : Stage α) :
              @[simp]
              @[simp]
              theorem Voice.Stage.subjects_agree {α : Type u_1} (s : Stage α) :
              theorem Voice.Stage.registered_agree_apply {α : Type u_1} (s : Stage α) (v : Voice) (a : Option α) :

              Agreement before a voice registers the subject before the voice applied.

              theorem Voice.Stage.registered_apply_agree {α : Type u_1} (s : Stage α) (v : Voice) (a : Option α) :

              Agreement after a voice registers the subject after it applied.