Documentation

HopfAlgebras.Trees.Labelled

Labelled Rooted Trees #

This file defines rooted trees whose vertices carry labels. As with HopfAlgebras.Trees.Rooted, the planar type is primary and the non-planar type is the quotient by recursively permuting children.

Main definitions #

inductive HopfAlgebras.PLTree (α : Type u) :

Non-empty planar rooted trees with one label at each vertex.

Instances For
    partial def HopfAlgebras.instReprPLTree.repr {α✝ : Type u_1} [Repr α✝] :
    PLTree α✝Std.Format
    @[implicit_reducible]
    instance HopfAlgebras.instReprPLTree {α✝ : Type u_1} [Repr α✝] :
    Repr (PLTree α✝)
    Equations
    @[irreducible]

    Forget labels from a planar labelled rooted tree.

    Equations
    Instances For
      @[irreducible]
      def HopfAlgebras.PLTree.constLabel {α : Type u} (a : α) :
      PTreePLTree α

      Label every vertex of a planar rooted tree by the same label.

      Equations
      Instances For
        def HopfAlgebras.PLTree.rootLabel {α : Type u} :
        PLTree αα

        The label at the root of a planar labelled rooted tree.

        Equations
        Instances For

          The number of vertices of a planar labelled rooted tree.

          Equations
          Instances For

            The sum of the orders of a list of planar labelled rooted trees.

            Equations
            Instances For
              @[irreducible]
              def HopfAlgebras.PLTree.map {α : Type u} {β : Type v} (f : αβ) :
              PLTree αPLTree β

              Change all labels in a planar labelled rooted tree.

              Equations
              Instances For

                Butcher's tree factorial, ignoring labels.

                Equations
                Instances For

                  Product of tree factorials over a list of labelled planar rooted trees.

                  Equations
                  Instances For
                    inductive HopfAlgebras.PLTree.Perm {α : Type u} :
                    PLTree αPLTree αProp

                    Two labelled planar trees are equivalent if labels agree and children are permuted recursively.

                    Instances For
                      @[simp]
                      theorem HopfAlgebras.PLTree.erase_node {α : Type u} (a : α) (ts : List (PLTree α)) :
                      @[simp]
                      theorem HopfAlgebras.PLTree.constLabel_node {α : Type u} (a : α) (ts : List PTree) :
                      @[simp]
                      theorem HopfAlgebras.PLTree.erase_constLabel {α : Type u} (a : α) (t : PTree) :
                      @[simp]
                      @[simp]
                      theorem HopfAlgebras.PLTree.rootLabel_node {α : Type u} (a : α) (ts : List (PLTree α)) :
                      (node a ts).rootLabel = a
                      @[simp]
                      theorem HopfAlgebras.PLTree.rootLabel_constLabel {α : Type u} (a : α) (t : PTree) :
                      @[simp]
                      theorem HopfAlgebras.PLTree.order_node {α : Type u} (a : α) (ts : List (PLTree α)) :
                      (node a ts).order = 1 + orderList ts
                      @[simp]
                      theorem HopfAlgebras.PLTree.orderList_cons {α : Type u} (t : PLTree α) (ts : List (PLTree α)) :
                      @[simp]
                      theorem HopfAlgebras.PLTree.map_node {α : Type u} {β : Type v} (f : αβ) (a : α) (ts : List (PLTree α)) :
                      map f (node a ts) = node (f a) (List.map (map f) ts)
                      @[simp]
                      theorem HopfAlgebras.PLTree.rootLabel_map {α : Type u} {β : Type v} (f : αβ) (t : PLTree α) :
                      @[simp]
                      theorem HopfAlgebras.PLTree.map_constLabel {α : Type u} {β : Type v} (f : αβ) (a : α) (t : PTree) :
                      map f (constLabel a t) = constLabel (f a) t
                      @[simp]
                      theorem HopfAlgebras.PLTree.mapList_constLabel {α : Type u} {β : Type v} (f : αβ) (a : α) (ts : List PTree) :
                      @[simp]
                      theorem HopfAlgebras.PLTree.orderList_append {α : Type u} (ts us : List (PLTree α)) :
                      theorem HopfAlgebras.PLTree.order_pos {α : Type u} (t : PLTree α) :
                      0 < t.order
                      @[simp]
                      @[simp]
                      theorem HopfAlgebras.PLTree.treeFactorial_node {α : Type u} (a : α) (ts : List (PLTree α)) :
                      @[simp]
                      theorem HopfAlgebras.PLTree.order_map {α : Type u} {β : Type v} (f : αβ) (t : PLTree α) :
                      (map f t).order = t.order
                      @[simp]
                      theorem HopfAlgebras.PLTree.orderList_map {α : Type u} {β : Type v} (f : αβ) (ts : List (PLTree α)) :
                      @[simp]
                      theorem HopfAlgebras.PLTree.erase_map {α : Type u} {β : Type v} (f : αβ) (t : PLTree α) :
                      (map f t).erase = t.erase
                      @[simp]
                      theorem HopfAlgebras.PLTree.eraseList_map {α : Type u} {β : Type v} (f : αβ) (ts : List (PLTree α)) :
                      def HopfAlgebras.PLTree.butcherProduct {α : Type u} (ts : List (PLTree α)) :
                      PLTree αPLTree α

                      Attach an ordered labelled forest as the first children of the root.

                      Equations
                      Instances For
                        @[simp]
                        theorem HopfAlgebras.PLTree.butcherProduct_node {α : Type u} (ts us : List (PLTree α)) (a : α) :
                        butcherProduct ts (node a us) = node a (ts ++ us)
                        @[simp]
                        theorem HopfAlgebras.PLTree.butcherProduct_assoc {α : Type u} (ts us : List (PLTree α)) (t : PLTree α) :
                        @[simp]
                        @[simp]
                        theorem HopfAlgebras.PLTree.map_butcherProduct {α : Type u} {β : Type v} (f : αβ) (ts : List (PLTree α)) (t : PLTree α) :
                        @[simp]
                        theorem HopfAlgebras.PLTree.map_id {α : Type u} (t : PLTree α) :
                        map id t = t
                        @[simp]
                        theorem HopfAlgebras.PLTree.mapList_id {α : Type u} (ts : List (PLTree α)) :
                        List.map (map id) ts = ts
                        @[simp]
                        theorem HopfAlgebras.PLTree.map_comp {α : Type u} {β : Type v} {γ : Type w} (g : βγ) (f : αβ) (t : PLTree α) :
                        map g (map f t) = map (g f) t
                        @[simp]
                        theorem HopfAlgebras.PLTree.mapList_comp {α : Type u} {β : Type v} {γ : Type w} (g : βγ) (f : αβ) (ts : List (PLTree α)) :
                        List.map (map g) (List.map (map f) ts) = List.map (map (g f)) ts
                        theorem HopfAlgebras.PLTree.map_injective {α : Type u} {β : Type v} (f : αβ) (hf : Function.Injective f) :
                        theorem HopfAlgebras.PLTree.map_eq_map_iff_of_injective {α : Type u} {β : Type v} (f : αβ) (hf : Function.Injective f) {t u : PLTree α} :
                        map f t = map f u t = u
                        @[simp]
                        theorem HopfAlgebras.PLTree.treeFactorial_map {α : Type u} {β : Type v} (f : αβ) (t : PLTree α) :
                        theorem HopfAlgebras.PLTree.orderList_perm {α : Type u} {ts us : List (PLTree α)} (h : ts.Perm us) :
                        theorem HopfAlgebras.PLTree.eraseList_perm {α : Type u} {ts us : List (PLTree α)} (h : ts.Perm us) :
                        theorem HopfAlgebras.PLTree.Perm.refl {α : Type u} (t : PLTree α) :
                        t.Perm t

                        PLTree.Perm is reflexive.

                        Elementwise reflexivity for PLTree.Perm.

                        Elementwise symmetry for PLTree.Perm.

                        theorem HopfAlgebras.PLTree.Perm.symm {α : Type u} {t u : PLTree α} :
                        t.Perm uu.Perm t

                        PLTree.Perm is symmetric.

                        Elementwise transitivity for PLTree.Perm.

                        theorem HopfAlgebras.PLTree.Perm.trans {α : Type u} {t u v : PLTree α} :
                        t.Perm uu.Perm vt.Perm v

                        PLTree.Perm is transitive.

                        theorem HopfAlgebras.PLTree.Perm.order_eq {α : Type u} {t u : PLTree α} :
                        t.Perm ut.order = u.order
                        theorem HopfAlgebras.PLTree.Perm.erase_perm {α : Type u} {t u : PLTree α} :
                        t.Perm ut.erase.Perm u.erase
                        theorem HopfAlgebras.PLTree.Perm.map {α : Type u} {β : Type v} (f : αβ) {t u : PLTree α} :
                        t.Perm u(PLTree.map f t).Perm (PLTree.map f u)
                        theorem HopfAlgebras.PLTree.map_forall₂ {α : Type u} {β : Type v} (f : αβ) {ts us : List (PLTree α)} :
                        theorem HopfAlgebras.PLTree.constLabel_perm {α : Type u} (a : α) {t u : PTree} :
                        t.Perm u(constLabel a t).Perm (constLabel a u)
                        @[implicit_reducible]
                        Equations
                        @[reducible, inline]

                        Non-empty non-planar labelled rooted trees.

                        Equations
                        Instances For

                          The quotient map from planar labelled trees to non-planar labelled trees.

                          Equations
                          Instances For

                            The number of vertices of a non-planar labelled rooted tree.

                            Equations
                            Instances For

                              The label at the root of a non-planar labelled rooted tree.

                              Equations
                              Instances For

                                Forget labels from a non-planar labelled rooted tree.

                                Equations
                                Instances For

                                  Label every vertex of a rooted tree by the same label.

                                  Equations
                                  Instances For
                                    def HopfAlgebras.LRootedTree.map {α : Type u} {β : Type v} (f : αβ) :

                                    Change all labels in a non-planar labelled rooted tree.

                                    Equations
                                    Instances For

                                      Butcher's tree factorial for non-planar labelled rooted trees.

                                      Equations
                                      Instances For
                                        @[simp]
                                        theorem HopfAlgebras.LRootedTree.map_ofPLTree {α : Type u} {β : Type v} (f : αβ) (t : PLTree α) :
                                        theorem HopfAlgebras.LRootedTree.map_out_perm {α : Type u} {β : Type v} (f : αβ) (τ : LRootedTree α) :
                                        @[simp]
                                        theorem HopfAlgebras.LRootedTree.rootLabel_map {α : Type u} {β : Type v} (f : αβ) (t : LRootedTree α) :
                                        @[simp]
                                        theorem HopfAlgebras.LRootedTree.map_constLabel {α : Type u} {β : Type v} (f : αβ) (a : α) (t : RootedTree) :
                                        map f (constLabel a t) = constLabel (f a) t
                                        @[simp]
                                        @[simp]
                                        theorem HopfAlgebras.LRootedTree.order_map {α : Type u} {β : Type v} (f : αβ) (t : LRootedTree α) :
                                        (map f t).order = t.order
                                        @[simp]
                                        theorem HopfAlgebras.LRootedTree.erase_map {α : Type u} {β : Type v} (f : αβ) (t : LRootedTree α) :
                                        (map f t).erase = t.erase
                                        @[simp]
                                        @[simp]
                                        theorem HopfAlgebras.LRootedTree.treeFactorial_map {α : Type u} {β : Type v} (f : αβ) (t : LRootedTree α) :
                                        @[simp]
                                        theorem HopfAlgebras.LRootedTree.map_id {α : Type u} (t : LRootedTree α) :
                                        map id t = t
                                        @[simp]
                                        theorem HopfAlgebras.LRootedTree.map_comp {α : Type u} {β : Type v} {γ : Type w} (g : βγ) (f : αβ) (t : LRootedTree α) :
                                        map g (map f t) = map (g f) t
                                        theorem HopfAlgebras.LRootedTree.map_injective {α : Type u} {β : Type v} (f : αβ) (hf : Function.Injective f) :
                                        theorem HopfAlgebras.LRootedTree.map_eq_map_iff_of_injective {α : Type u} {β : Type v} (f : αβ) (hf : Function.Injective f) {s t : LRootedTree α} :
                                        map f s = map f t s = t