Documentation

Linglib.Phonology.Autosegmental.MultiAR

The multi-tier autosegmental category MultiAR τ #

MultiAR τ is the category of in-bounds multi-tier autosegmental graphs: the general-arity counterpart of the bipartite AR α β (AR.lean). An object is a MultiGraph τ whose links are in bounds; a morphism is a family of per-tier label-preserving position maps (fT i : LabeledTuple.Hom (A.tiers i) (B.tiers i)) that preserves association lines.

The monoidal product is morpheme concatenation (MultiGraph.concat, [JH15]), built via MonoidalCategory.ofTensorHom exactly as AR's is — the dependent tiers add only a funext i to each coherence proof. The planar full monoidal subcategory (Goldsmith's NCC, [Gol76]) would follow WellFormedAR.lean's IsPlanar.FullSubcategory pattern.

The bipartite AR α β includes into MultiAR ![α,β] by a monoidal functor (the object coherence is Inclusion.lean's toMultiGraph_concat/toMultiGraph_empty).

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

An in-bounds multi-tier autosegmental graph — the base object.

Instances For

    Morphisms #

    structure Autosegmental.MultiAR.Hom {n : } {τ : Fin nType u} (A B : MultiAR τ) :

    A label- and link-preserving morphism: a family of LabeledTuple.Homs, one per tier, plus link preservation routing each link's endpoints through the maps for its two tiers.

    • fT (i : Fin n) : (A.tiers i).Hom (B.tiers i)

      Per-tier vertex maps.

    Instances For
      theorem Autosegmental.MultiAR.Hom.ext_iff {n : } {τ : Fin nType u} {A B : MultiAR τ} {x y : A.Hom B} :
      x = y x.fT = y.fT
      theorem Autosegmental.MultiAR.Hom.ext {n : } {τ : Fin nType u} {A B : MultiAR τ} {x y : A.Hom B} (fT : x.fT = y.fT) :
      x = y
      def Autosegmental.MultiAR.Hom.id {n : } {τ : Fin nType u} (A : MultiAR τ) :
      A.Hom A

      The identity morphism.

      Equations
      Instances For
        def Autosegmental.MultiAR.Hom.comp {n : } {τ : Fin nType u} {A B C : MultiAR τ} (f : A.Hom B) (g : B.Hom C) :
        A.Hom C

        Composition (per tier).

        Equations
        • f.comp g = { fT := fun (i : Fin n) => (f.fT i).comp (g.fT i), links_preserve := }
        Instances For
          @[simp]
          theorem Autosegmental.MultiAR.Hom.id_fT {n : } {τ : Fin nType u} (A : MultiAR τ) (i : Fin n) :
          @[simp]
          theorem Autosegmental.MultiAR.Hom.comp_fT {n : } {τ : Fin nType u} {A B C : MultiAR τ} (f : A.Hom B) (g : B.Hom C) (i : Fin n) :
          (f.comp g).fT i = (f.fT i).comp (g.fT i)
          @[implicit_reducible]
          instance Autosegmental.MultiAR.instCategoryStruct {n : } {τ : Fin nType u} :
          CategoryTheory.CategoryStruct.{0, u} (MultiAR τ)
          Equations
          • One or more equations did not get rendered due to their size.
          @[implicit_reducible]
          instance Autosegmental.MultiAR.instCategory {n : } {τ : Fin nType u} :
          CategoryTheory.Category.{0, u} (MultiAR τ)
          Equations
          @[simp]
          theorem Autosegmental.MultiAR.id_fT' {n : } {τ : Fin nType u} (A : MultiAR τ) (i : Fin n) :
          (CategoryTheory.CategoryStruct.id A).fT i = CategoryTheory.CategoryStruct.id (A.tiers i)
          @[simp]
          theorem Autosegmental.MultiAR.comp_fT' {n : } {τ : Fin nType u} {A B C : MultiAR τ} (f : A B) (g : B C) (i : Fin n) :
          (CategoryTheory.CategoryStruct.comp f g).fT i = (f.fT i).comp (g.fT i)

          Concatenation: the tensor object #

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

          The monoidal product: tier-wise concatenation, preserving in-bounds.

          Equations
          Instances For
            @[simp]
            theorem Autosegmental.MultiAR.concat_toMultiGraph {n : } {τ : Fin nType u} (A B : MultiAR τ) :
            @[simp]
            theorem Autosegmental.MultiAR.concat_tiers {n : } {τ : Fin nType u} (A B : MultiAR τ) (i : Fin n) :
            (A.concat B).tiers i = (A.tiers i).concat (B.tiers i)
            def Autosegmental.MultiAR.empty {n : } {τ : Fin nType u} :

            The tensor unit.

            Equations
            Instances For
              theorem Autosegmental.MultiAR.ext_toMultiGraph {n : } {τ : Fin nType u} {A B : MultiAR τ} (h : A.toMultiGraph = B.toMultiGraph) :
              A = B

              An in-bounds graph is determined by its underlying MultiGraph.

              @[implicit_reducible]
              instance Autosegmental.MultiAR.instMonoid {n : } {τ : Fin nType u} :
              Monoid (MultiAR τ)
              Equations
              @[simp]
              theorem Autosegmental.MultiAR.mul_eq_concat {n : } {τ : Fin nType u} (A B : MultiAR τ) :
              A * B = A.concat B
              @[simp]
              theorem Autosegmental.MultiAR.one_eq_empty {n : } {τ : Fin nType u} :
              1 = empty

              tensorHom: the concatenation bifunctor on morphisms #

              def Autosegmental.MultiAR.Hom.concatMap {n : } {τ : Fin nType u} {A A' B B' : MultiAR τ} (f : A.Hom A') (g : B.Hom B') :
              (A.concat B).Hom (A'.concat B')

              tensorHom: per-tier LabeledTuple.Hom.concatMap. A link on (i,j) routes its first endpoint through tier i's map, its second through tier j's map.

              Equations
              Instances For
                @[simp]
                theorem Autosegmental.MultiAR.Hom.concatMap_fT {n : } {τ : Fin nType u} {A A' B B' : MultiAR τ} (f : A.Hom A') (g : B.Hom B') (i : Fin n) :
                (f.concatMap g).fT i = (f.fT i).concatMap (g.fT i)
                theorem Autosegmental.MultiAR.Hom.concatMap_id {n : } {τ : Fin nType u} (A B : MultiAR τ) :
                (id A).concatMap (id B) = id (A.concat B)
                theorem Autosegmental.MultiAR.Hom.concatMap_comp {n : } {τ : Fin nType u} {A A' A'' B B' B'' : MultiAR τ} (f : A.Hom A') (f' : A'.Hom A'') (g : B.Hom B') (g' : B'.Hom B'') :
                (f.concatMap g).comp (f'.concatMap g') = (f.comp f').concatMap (g.comp g')

                eqToHom algebra #

                @[simp]
                theorem Autosegmental.MultiAR.eqToHom_fT_toFun {n : } {τ : Fin nType u} {A B : MultiAR τ} (h : A = B) (i : Fin n) :
                ((CategoryTheory.eqToHom h).fT i).toFun = Fin.cast

                The i-th tier map of an eqToHom, as a function: a length-cast Fin.cast.

                @[simp]
                theorem Autosegmental.MultiAR.concatMap_id_eqToHom {n : } {τ : Fin nType u} {W X Y : MultiAR τ} (h : X = Y) :
                Hom.concatMap (CategoryTheory.CategoryStruct.id W) (CategoryTheory.eqToHom h) = CategoryTheory.eqToHom
                @[simp]
                theorem Autosegmental.MultiAR.concatMap_eqToHom_id {n : } {τ : Fin nType u} {W X Y : MultiAR τ} (h : X = Y) :
                Hom.concatMap (CategoryTheory.eqToHom h) (CategoryTheory.CategoryStruct.id W) = CategoryTheory.eqToHom

                Monoidal category #

                @[implicit_reducible]
                instance Autosegmental.MultiAR.instMonoidalStruct {n : } {τ : Fin nType u} :
                CategoryTheory.MonoidalCategoryStruct (MultiAR τ)
                Equations
                • One or more equations did not get rendered due to their size.
                @[simp]
                theorem Autosegmental.MultiAR.associator_def {n : } {τ : Fin nType u} (A B C : MultiAR τ) :
                CategoryTheory.MonoidalCategoryStruct.associator A B C = CategoryTheory.eqToIso
                @[simp]
                theorem Autosegmental.MultiAR.whiskerLeft_def {n : } {τ : Fin nType u} (X x✝ x✝¹ : MultiAR τ) (f : x✝ x✝¹) :
                CategoryTheory.MonoidalCategoryStruct.whiskerLeft X f = (Hom.id X).concatMap f
                @[simp]
                theorem Autosegmental.MultiAR.whiskerRight_def {n : } {τ : Fin nType u} {X₁✝ X₂✝ : MultiAR τ} (f : X₁✝ X₂✝) (Y : MultiAR τ) :
                CategoryTheory.MonoidalCategoryStruct.whiskerRight f Y = Hom.concatMap f (Hom.id Y)
                @[simp]
                theorem Autosegmental.MultiAR.leftUnitor_def {n : } {τ : Fin nType u} (X : MultiAR τ) :
                CategoryTheory.MonoidalCategoryStruct.leftUnitor X = CategoryTheory.eqToIso
                @[simp]
                theorem Autosegmental.MultiAR.rightUnitor_def {n : } {τ : Fin nType u} (X : MultiAR τ) :
                CategoryTheory.MonoidalCategoryStruct.rightUnitor X = CategoryTheory.eqToIso
                @[simp]
                theorem Autosegmental.MultiAR.tensorObj_def {n : } {τ : Fin nType u} (A B : MultiAR τ) :
                CategoryTheory.MonoidalCategoryStruct.tensorObj A B = A.concat B
                @[simp]
                theorem Autosegmental.MultiAR.tensorUnit_def {n : } {τ : Fin nType u} :
                CategoryTheory.MonoidalCategoryStruct.tensorUnit (MultiAR τ) = empty
                @[simp]
                theorem Autosegmental.MultiAR.tensorHom_def {n : } {τ : Fin nType u} {X₁✝ Y₁✝ X₂✝ Y₂✝ : MultiAR τ} (f : X₁✝ Y₁✝) (g : X₂✝ Y₂✝) :
                CategoryTheory.MonoidalCategoryStruct.tensorHom f g = Hom.concatMap f g
                @[implicit_reducible]
                instance Autosegmental.MultiAR.instMonoidalCategory {n : } {τ : Fin nType u} :
                CategoryTheory.MonoidalCategory (MultiAR τ)
                Equations