Documentation

Linglib.Morphology.DistributedMorphology.Locality

Locality domains for contextual allomorphy and allosemy #

A word is its root with the heads merged above it, innermost first — the complex head that successive Merger builds, whose first k heads form the word after k steps. Its surface follows from the side on which each head's exponent attaches: prefixes outermost first, the root, suffixes innermost first, so the affixes of each side mirror the order of merger. The category-defining heads are cyclic: merging one sends the cyclic domains in its complement to the interfaces, so the heads of a word fall into cycles — a head's cycle is the number of cyclic heads at or below it — and a head undergoes Vocabulary Insertion in its own cycle, the material below the first cyclic head in the first. When a head is spelled out, the heads of its cycle and of the cycle before are present, the latter already realized, while earlier material is inactive and later cycles are not yet merged; the root, in the complement of the first cyclic head, is active in the first cycle only. Within a cycle each interface adds its own adjacency: a head conditions another only across heads null at that interface — pruned phonological zeros for allomorphy, semantically null heads for allosemy — so the two domains coincide exactly where the two kinds of nullness do. The idiom domain is a different bound, the heads below an agentive Voice, and neither contains the other.

Main definitions #

Main results #

References #

structure DistributedMorphology.Spine (H : Type u_1) :
Type u_1

A word as its root and the heads merged above it, innermost first.

  • root : Root

    The root.

  • heads : List H

    The heads above the root, innermost first.

Instances For
    def DistributedMorphology.instDecidableEqSpine.decEq {H✝ : Type u_1} [DecidableEq H✝] (x✝ x✝¹ : Spine H✝) :
    Decidable (x✝ = x✝¹)
    Equations
    Instances For
      def DistributedMorphology.instReprSpine.repr {H✝ : Type u_1} [Repr H✝] :
      Spine H✝Std.Format
      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        @[instance_reducible]
        instance DistributedMorphology.instReprSpine {H✝ : Type u_1} [Repr H✝] :
        Repr (Spine H✝)
        Equations

        The word-structure tree #

        The word structure the spine builds: each head categorizes what lies below it.

        Equations
        Instances For
          theorem DistributedMorphology.Spine.heads_foldl_categorize {H : Type u_1} (T : WordStructure H) (hs : List H) :
          DistributedMorphology.heads (List.foldl (fun (T : WordStructure H) (h : H) => categorize h T) T hs) = hs + DistributedMorphology.heads T
          theorem DistributedMorphology.Spine.roots_foldl_categorize {H : Type u_1} (T : WordStructure H) (hs : List H) :
          roots (List.foldl (fun (T : WordStructure H) (h : H) => categorize h T) T hs) = roots T

          Merger and the surface #

          def DistributedMorphology.Spine.word {H : Type u_1} (s : Spine H) (k : ) :

          The complex head after k steps of Merger: the root with the first k heads. The remaining heads are realized periphrastically.

          Equations
          Instances For
            theorem DistributedMorphology.Spine.heads_word_isPrefix {H : Type u_1} (s : Spine H) (k : ) :
            (s.word k).heads <+: s.heads
            theorem DistributedMorphology.Spine.mem_word_of_le {H : Type u_1} (s : Spine H) {k : } {i j : Fin s.heads.length} (hji : j i) (hi : i < k) :
            j < k

            Merger skips no head: a head in the word brings every head below it.

            The word tree: each head attached on the side its exponent takes, innermost first.

            Equations
            Instances For
              def DistributedMorphology.Spine.surface {H : Type u_1} (s : Spine H) (side : HMorphology.Morph.Side) :
              List (Root H)

              The surface order of root and heads.

              Equations
              Instances For
                theorem DistributedMorphology.Spine.surface_eq {H : Type u_1} (s : Spine H) (side : HMorphology.Morph.Side) :
                s.surface side = (List.map Sum.inr (List.filter (fun (h : H) => decide (side h = Morphology.Morph.Side.before)) s.heads)).reverse ++ Sum.inl s.root :: List.map Sum.inr (List.filter (fun (h : H) => decide (side h = Morphology.Morph.Side.after)) s.heads)

                The Mirror Principle: the surface is the prefixal heads outermost first, the root, and the suffixal heads innermost first — on each side, surface order outward from the root is the order of merger.

                Cycles #

                def DistributedMorphology.Spine.cycle {H : Type u_1} (s : Spine H) (cyclic : HProp) [DecidablePred cyclic] (i : Fin s.heads.length) :

                The cycle of a head: the number of cyclic heads at or below it. The root counts as cycle zero.

                Equations
                Instances For
                  def DistributedMorphology.Spine.insertionCycle {H : Type u_1} (s : Spine H) (cyclic : HProp) [DecidablePred cyclic] (i : Fin s.heads.length) :

                  The cycle in which a head undergoes Vocabulary Insertion: its own, or the first for the material below the first cyclic head.

                  Equations
                  Instances For
                    def DistributedMorphology.Spine.Coactive {H : Type u_1} (s : Spine H) (cyclic : HProp) [DecidablePred cyclic] (i j : Fin s.heads.length) :

                    Head j is present when head i is spelled out: it belongs to that cycle or to the one before, whose heads remain present though already realized.

                    Equations
                    Instances For
                      def DistributedMorphology.Spine.RootLocal {H : Type u_1} (s : Spine H) (cyclic : HProp) [DecidablePred cyclic] (i : Fin s.heads.length) :

                      The root is present for the heads of the first cycle only: the first category head and the noncyclic heads up to the next.

                      Equations
                      Instances For
                        @[instance_reducible]
                        instance DistributedMorphology.Spine.instDecidableCoactive {H : Type u_1} (s : Spine H) (cyclic : HProp) [DecidablePred cyclic] (i j : Fin s.heads.length) :
                        Decidable (s.Coactive cyclic i j)
                        Equations
                        @[instance_reducible]
                        instance DistributedMorphology.Spine.instDecidableRootLocal {H : Type u_1} (s : Spine H) (cyclic : HProp) [DecidablePred cyclic] (i : Fin s.heads.length) :
                        Decidable (s.RootLocal cyclic i)
                        Equations
                        theorem DistributedMorphology.Spine.cycle_mono {H : Type u_1} {s : Spine H} {cyclic : HProp} [DecidablePred cyclic] {i j : Fin s.heads.length} (hij : i j) :
                        s.cycle cyclic i s.cycle cyclic j
                        theorem DistributedMorphology.Spine.one_le_cycle_of_cyclic {H : Type u_1} {s : Spine H} {cyclic : HProp} [DecidablePred cyclic] {i : Fin s.heads.length} (hi : cyclic s.heads[i]) :
                        1 s.cycle cyclic i
                        theorem DistributedMorphology.Spine.cycle_add_one_le_of_lt_of_cyclic {H : Type u_1} {s : Spine H} {cyclic : HProp} [DecidablePred cyclic] {i j : Fin s.heads.length} (hij : i < j) (hj : cyclic s.heads[j]) :
                        s.cycle cyclic i + 1 s.cycle cyclic j
                        theorem DistributedMorphology.Spine.two_le_cycle_of_cyclic_of_cyclic {H : Type u_1} {s : Spine H} {cyclic : HProp} [DecidablePred cyclic] {i j k : Fin s.heads.length} (hjk : j < k) (hki : k i) (hj : cyclic s.heads[j]) (hk : cyclic s.heads[k]) :
                        2 s.cycle cyclic i

                        The root's domain #

                        theorem DistributedMorphology.Spine.RootLocal.of_le {H : Type u_1} {s : Spine H} {cyclic : HProp} [DecidablePred cyclic] {i j : Fin s.heads.length} (h : s.RootLocal cyclic i) (hji : j i) :
                        s.RootLocal cyclic j

                        The root's domain is an initial segment.

                        theorem DistributedMorphology.Spine.not_rootLocal_of_cyclic_of_cyclic {H : Type u_1} {s : Spine H} {cyclic : HProp} [DecidablePred cyclic] {i j : Fin s.heads.length} (hji : j < i) (hj : cyclic s.heads[j]) (hi : cyclic s.heads[i]) :
                        ¬s.RootLocal cyclic i

                        A cyclic head above a cyclic head is not local to the root: category change closes the root's domain.

                        theorem DistributedMorphology.Spine.RootLocal.cyclic_first {H : Type u_1} {s : Spine H} {cyclic : HProp} [DecidablePred cyclic] {i : Fin s.heads.length} (h : s.RootLocal cyclic i) (hi : cyclic s.heads[i]) (j : Fin s.heads.length) :
                        j < i¬cyclic s.heads[j]

                        A local cyclic head is the first one.

                        Presence between heads #

                        theorem DistributedMorphology.Spine.coactive_self {H : Type u_1} {s : Spine H} {cyclic : HProp} [DecidablePred cyclic] (i : Fin s.heads.length) :
                        s.Coactive cyclic i i
                        theorem DistributedMorphology.Spine.coactive_of_cycle_eq {H : Type u_1} {s : Spine H} {cyclic : HProp} [DecidablePred cyclic] {i j : Fin s.heads.length} (h : s.cycle cyclic i = s.cycle cyclic j) :
                        s.Coactive cyclic i j

                        Heads of one cycle are present for one another.

                        theorem DistributedMorphology.Spine.not_coactive_of_lt_of_cyclic {H : Type u_1} {s : Spine H} {cyclic : HProp} [DecidablePred cyclic] {i j : Fin s.heads.length} (hij : i < j) (hi : 1 s.cycle cyclic i) (hj : cyclic s.heads[j]) :
                        ¬s.Coactive cyclic i j

                        Nothing already in a cycle sees a later cyclic head: no outward sensitivity to a further category head.

                        theorem DistributedMorphology.Spine.not_coactive_of_cyclic_of_cyclic {H : Type u_1} {s : Spine H} {cyclic : HProp} [DecidablePred cyclic] {i j : Fin s.heads.length} (hij : i < j) (hi : cyclic s.heads[i]) (hj : cyclic s.heads[j]) :
                        ¬s.Coactive cyclic i j

                        Two cyclic heads are never realized in one cycle: no fusion of category-defining heads.

                        theorem DistributedMorphology.Spine.not_coactive_of_add_two_le {H : Type u_1} {s : Spine H} {cyclic : HProp} [DecidablePred cyclic] {i j : Fin s.heads.length} (h : s.cycle cyclic j + 2 s.cycle cyclic i) :
                        ¬s.Coactive cyclic i j

                        Material two cycles down is inactive: the complement of an inner cyclic head is closed off once the next cyclic head is spelled out.

                        Interface adjacency #

                        def DistributedMorphology.Spine.Sees {H : Type u_1} (s : Spine H) (cyclic : HProp) [DecidablePred cyclic] (null : HProp) (i j : Fin s.heads.length) :

                        Head i sees head j at an interface: j is present at i's insertion and every head between them is null there — pruned for allomorphy, semantically null for allosemy.

                        Equations
                        • s.Sees cyclic null i j = (s.Coactive cyclic i j ∀ (k : Fin s.heads.length), min i j < kk < max i jnull s.heads[k])
                        Instances For
                          def DistributedMorphology.Spine.SeesRoot {H : Type u_1} (s : Spine H) (cyclic : HProp) [DecidablePred cyclic] (null : HProp) (i : Fin s.heads.length) :

                          Head i sees the root: it is in the first cycle and every head below it is null at the interface.

                          Equations
                          Instances For
                            @[instance_reducible]
                            instance DistributedMorphology.Spine.instDecidableSeesOfDecidablePred {H : Type u_1} (s : Spine H) (cyclic : HProp) [DecidablePred cyclic] (null : HProp) [DecidablePred null] (i j : Fin s.heads.length) :
                            Decidable (s.Sees cyclic null i j)
                            Equations
                            @[instance_reducible]
                            instance DistributedMorphology.Spine.instDecidableSeesRootOfDecidablePred {H : Type u_1} (s : Spine H) (cyclic : HProp) [DecidablePred cyclic] (null : HProp) [DecidablePred null] (i : Fin s.heads.length) :
                            Decidable (s.SeesRoot cyclic null i)
                            Equations
                            theorem DistributedMorphology.Spine.Sees.coactive {H : Type u_1} {s : Spine H} {cyclic : HProp} [DecidablePred cyclic] {i j : Fin s.heads.length} {null : HProp} (h : s.Sees cyclic null i j) :
                            s.Coactive cyclic i j
                            theorem DistributedMorphology.Spine.SeesRoot.rootLocal {H : Type u_1} {s : Spine H} {cyclic : HProp} [DecidablePred cyclic] {i : Fin s.heads.length} {null : HProp} (h : s.SeesRoot cyclic null i) :
                            s.RootLocal cyclic i
                            theorem DistributedMorphology.Spine.not_sees_of_not_null {H : Type u_1} {s : Spine H} {cyclic : HProp} [DecidablePred cyclic] {i j k : Fin s.heads.length} {null : HProp} (hik : min i j < k) (hkj : k < max i j) (hk : ¬null s.heads[k]) :
                            ¬s.Sees cyclic null i j

                            An intervening head that is not null at the interface blocks conditioning.

                            theorem DistributedMorphology.Spine.not_seesRoot_of_not_null {H : Type u_1} {s : Spine H} {cyclic : HProp} [DecidablePred cyclic] {i k : Fin s.heads.length} {null : HProp} (hki : k < i) (hk : ¬null s.heads[k]) :
                            ¬s.SeesRoot cyclic null i
                            theorem DistributedMorphology.Spine.sees_congr {H : Type u_1} {s : Spine H} {cyclic : HProp} [DecidablePred cyclic] {i j : Fin s.heads.length} {null null' : HProp} (h : ∀ (k : Fin s.heads.length), min i j < kk < max i j(null s.heads[k] null' s.heads[k])) :
                            s.Sees cyclic null i j s.Sees cyclic null' i j

                            The interface domains agree wherever the two kinds of nullness agree between the heads: one cycle bounds both.

                            theorem DistributedMorphology.Spine.seesRoot_congr {H : Type u_1} {s : Spine H} {cyclic : HProp} [DecidablePred cyclic] {i : Fin s.heads.length} {null null' : HProp} (h : k < i, null s.heads[k] null' s.heads[k]) :
                            s.SeesRoot cyclic null i s.SeesRoot cyclic null' i

                            The idiom domain #

                            def DistributedMorphology.Spine.IdiomLocal {H : Type u_1} (s : Spine H) (agentive : HProp) (i : Fin s.heads.length) :

                            The heads below an agentive Voice: special meaning may be assigned to any structure not containing an external-argument-introducing head, across cyclic heads.

                            Equations
                            Instances For
                              @[instance_reducible]
                              instance DistributedMorphology.Spine.instDecidableIdiomLocalOfDecidablePred {H : Type u_1} (s : Spine H) (agentive : HProp) [DecidablePred agentive] (i : Fin s.heads.length) :
                              Decidable (s.IdiomLocal agentive i)
                              Equations
                              theorem DistributedMorphology.Spine.IdiomLocal.of_le {H : Type u_1} {s : Spine H} {i j : Fin s.heads.length} {agentive : HProp} (h : s.IdiomLocal agentive i) (hji : j i) :
                              s.IdiomLocal agentive j