Documentation

Linglib.Phonology.Autosegmental.MultiGraph

Multi-tier autosegmental graphs #

MultiGraph τ is the autosegmental representation at general tier arity: n heterogeneously-typed ordered tiers (tiers i : LabeledTuple (τ i), with τ : Fin n → Type u) plus, for every ordered tier-pair (i, j), a Finset (ℕ × ℕ) of association links (links i j; empty ⇒ the pair does not associate). This is [Jar17]'s autosegmental phonological graph at arbitrary arity, and the home of [Lio22a]'s register-tier tone geometry (subtonal-feature tiers + a mora tier around a Tonal Root Node hub).

The classical bipartite Graph α β (Graph.lean) is the n = 2 case. It is a separate first-class structure (so it keeps extends/.toGraph/anonymous- constructor ergonomics and independent universes); the two are related by the monoidal inclusion functor rather than a defeq view — see Inclusion.lean.

Design (three-reviewer mathlib panel, 2026-06-24) #

structure Autosegmental.MultiGraph {n : } (τ : Fin nType u) :

A multi-tier autosegmental graph: n heterogeneously-typed ordered tiers plus a Finset (ℕ × ℕ) of association links on each ordered tier-pair.

  • tiers (i : Fin n) : LabeledTuple (τ i)

    The n heterogeneously-typed ordered tiers.

Instances For
    theorem Autosegmental.MultiGraph.ext {n : } {τ : Fin nType u} {x y : MultiGraph τ} (tiers : x.tiers = y.tiers) (links : x.links = y.links) :
    x = y
    theorem Autosegmental.MultiGraph.ext_iff {n : } {τ : Fin nType u} {x y : MultiGraph τ} :
    x = y x.tiers = y.tiers x.links = y.links
    @[implicit_reducible]
    instance Autosegmental.MultiGraph.instDecidableEq {n : } {τ : Fin nType u} [(i : Fin n) → DecidableEq (τ i)] :
    DecidableEq (MultiGraph τ)
    Equations

    Well-formedness predicates #

    def Autosegmental.MultiGraph.IsPlanar {n : } {τ : Fin nType u} (G : MultiGraph τ) :

    Planarity: every tier-pair's link set is non-crossing — the binary MonovaryOn NCC applied pointwise per pair (no N-ary generalization).

    Equations
    Instances For
      @[implicit_reducible]
      instance Autosegmental.MultiGraph.instDecidableIsPlanar {n : } {τ : Fin nType u} (G : MultiGraph τ) :
      Decidable G.IsPlanar
      Equations
      def Autosegmental.MultiGraph.InBounds {n : } {τ : Fin nType u} (G : MultiGraph τ) :

      In-bounds: every link's endpoints fall within the respective tier lengths.

      Equations
      Instances For
        @[implicit_reducible]
        instance Autosegmental.MultiGraph.instDecidableInBounds {n : } {τ : Fin nType u} (G : MultiGraph τ) :
        Decidable G.InBounds
        Equations

        The empty graph #

        def Autosegmental.MultiGraph.empty {n : } {τ : Fin nType u} :

        The empty multigraph: every tier empty, no links.

        Equations
        Instances For
          @[simp]
          theorem Autosegmental.MultiGraph.empty_tiers {n : } {τ : Fin nType u} (i : Fin n) :

          Concatenation ([JH15], fiberwise coproduct) #

          def Autosegmental.MultiGraph.concat {n : } {τ : Fin nType u} (A B : MultiGraph τ) :

          Concatenation: tier-wise LabeledTuple.concat, and per-pair link union with B's links shifted past A's tier lengths on each coordinate.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            @[simp]
            theorem Autosegmental.MultiGraph.concat_tiers {n : } {τ : Fin nType u} (A B : MultiGraph τ) (i : Fin n) :
            (A.concat B).tiers i = (A.tiers i).concat (B.tiers i)

            Monoid laws #

            theorem Autosegmental.MultiGraph.empty_concat {n : } {τ : Fin nType u} (A : MultiGraph τ) :
            theorem Autosegmental.MultiGraph.concat_empty {n : } {τ : Fin nType u} (A : MultiGraph τ) :
            theorem Autosegmental.MultiGraph.concat_assoc {n : } {τ : Fin nType u} (A B C : MultiGraph τ) :
            (A.concat B).concat C = A.concat (B.concat C)
            @[implicit_reducible]
            instance Autosegmental.MultiGraph.instMonoid {n : } {τ : Fin nType u} :
            Monoid (MultiGraph τ)
            Equations
            • One or more equations did not get rendered due to their size.

            Predicate preservation #

            theorem Autosegmental.MultiGraph.isPlanar_concat {n : } {τ : Fin nType u} {A B : MultiGraph τ} (hAib : A.InBounds) (hA : A.IsPlanar) (hB : B.IsPlanar) :

            Concatenation preserves planarity, given A.InBounds.

            theorem Autosegmental.MultiGraph.inBounds_concat {n : } {τ : Fin nType u} {A B : MultiGraph τ} (hA : A.InBounds) (hB : B.InBounds) :

            Concatenation preserves in-bounds.