Documentation

HopfAlgebras.Cuts.Labelled

Admissible Cuts of Labelled Rooted Trees #

This file defines finite admissible-cut data for planar labelled rooted trees. It is the labelled analogue of HopfAlgebras.Cuts.Rooted, and provides the combinatorial input for labelled BCK-type coproducts.

Main definitions #

structure HopfAlgebras.PLTree.RootCut (α : Type u) :

A cut below the root, so the trunk remains a non-empty labelled tree.

Instances For
    def HopfAlgebras.PLTree.instReprRootCut.repr {α✝ : Type u_1} [Repr α✝] :
    RootCut α✝Std.Format
    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      structure HopfAlgebras.PLTree.ChildCut (α : Type u) :

      A child-level labelled cut choice. none means the edge above the child is cut.

      Instances For
        Equations
        • One or more equations did not get rendered due to their size.
        Instances For

          A root-preserving labelled cut list accumulated across a list of children.

          Instances For
            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              structure HopfAlgebras.PLTree.Cut (α : Type u) :

              An admissible cut of a planar labelled rooted tree. none is the full cut.

              Instances For
                def HopfAlgebras.PLTree.instReprCut.repr {α✝ : Type u_1} [Repr α✝] :
                Cut α✝Std.Format
                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  @[implicit_reducible]
                  instance HopfAlgebras.PLTree.instReprCut {α✝ : Type u_1} [Repr α✝] :
                  Repr (Cut α✝)
                  Equations

                  Forget labels in a root-preserving labelled cut.

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

                    Relabel a root-preserving labelled cut.

                    Equations
                    Instances For

                      Label every vertex in an unlabelled root-preserving cut by the same label.

                      Equations
                      Instances For
                        @[simp]
                        theorem HopfAlgebras.PLTree.RootCut.map_constLabel {α : Type u} {β : Type v} (f : αβ) (a : α) (c : PTree.RootCut) :
                        map f (constLabel a c) = constLabel (f a) c

                        The trunk of a root cut, only when the cut prunes no labelled trees.

                        Equations
                        Instances For

                          Forget labels in a labelled child cut choice.

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

                            Relabel a labelled child cut choice.

                            Equations
                            Instances For

                              Label every vertex in an unlabelled child cut by the same label.

                              Equations
                              Instances For
                                @[simp]
                                theorem HopfAlgebras.PLTree.ChildCut.map_constLabel {α : Type u} {β : Type v} (f : αβ) (a : α) (c : PTree.ChildCut) :
                                map f (constLabel a c) = constLabel (f a) c

                                The trunk of a child cut choice, only when the choice prunes no labelled trees.

                                Equations
                                Instances For

                                  The pruned forest of a labelled child cut choice.

                                  Equations
                                  Instances For

                                    The trunk forest of a labelled child cut choice. Cutting the edge gives the empty trunk.

                                    Equations
                                    Instances For

                                      The labelled coproduct term encoded by a child cut choice.

                                      Equations
                                      Instances For

                                        Forget labels in a root-preserving labelled cut list.

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

                                          Relabel a root-preserving labelled cut list.

                                          Equations
                                          Instances For

                                            Label every vertex in an unlabelled root-preserving cut list by the same label.

                                            Equations
                                            Instances For
                                              @[simp]
                                              theorem HopfAlgebras.PLTree.RootCutList.map_constLabel {α : Type u} {β : Type v} (f : αβ) (a : α) (c : PTree.RootCutList) :
                                              map f (constLabel a c) = constLabel (f a) c

                                              The trunks of a root-preserving cut list, only when the cut prunes no labelled trees.

                                              Equations
                                              Instances For

                                                The pruned forest of a labelled root-preserving cut list.

                                                Equations
                                                Instances For

                                                  The trunk forest of a labelled root-preserving cut list.

                                                  Equations
                                                  Instances For

                                                    The labelled coproduct term encoded by a root-preserving cut list.

                                                    Equations
                                                    Instances For

                                                      Forget labels in a labelled admissible cut.

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

                                                        Relabel a labelled admissible cut.

                                                        Equations
                                                        Instances For
                                                          def HopfAlgebras.PLTree.Cut.constLabel {α : Type u} (a : α) (c : PTree.Cut) :
                                                          Cut α

                                                          Label every vertex in an unlabelled admissible cut by the same label.

                                                          Equations
                                                          Instances For
                                                            @[simp]
                                                            theorem HopfAlgebras.PLTree.Cut.erase_constLabel {α : Type u} (a : α) (c : PTree.Cut) :
                                                            @[simp]
                                                            theorem HopfAlgebras.PLTree.Cut.map_constLabel {α : Type u} {β : Type v} (f : αβ) (a : α) (c : PTree.Cut) :
                                                            map f (constLabel a c) = constLabel (f a) c
                                                            theorem HopfAlgebras.PLTree.RootCut.Perm.trans {α : Type u} {c d e : RootCut α} (hcd : c.Perm d) (hde : d.Perm e) :
                                                            c.Perm e
                                                            theorem HopfAlgebras.PLTree.OptionPerm.trans {α : Type u} {t u v : Option (PLTree α)} (htu : OptionPerm t u) (huv : OptionPerm u v) :
                                                            theorem HopfAlgebras.PLTree.ChildCut.Perm.trans {α : Type u} {c d e : ChildCut α} (hcd : c.Perm d) (hde : d.Perm e) :
                                                            c.Perm e
                                                            theorem HopfAlgebras.PLTree.ChildCut.Perm.cutEdge {α : Type u} {t u : PLTree α} (h : t.Perm u) :
                                                            { pruned := [t], trunk? := none }.Perm { pruned := [u], trunk? := none }
                                                            theorem HopfAlgebras.PLTree.ChildCut.Perm.of_rootCut {α : Type u} {c d : RootCut α} (h : c.Perm d) :
                                                            { pruned := c.pruned, trunk? := some c.trunk }.Perm { pruned := d.pruned, trunk? := some d.trunk }
                                                            theorem HopfAlgebras.PLTree.RootCutList.Perm.trans {α : Type u} {c d e : RootCutList α} (hcd : c.Perm d) (hde : d.Perm e) :
                                                            c.Perm e
                                                            Equations
                                                            Instances For
                                                              @[simp]
                                                              theorem HopfAlgebras.PLTree.RootCutList.coproductTerm_mk_consChild {α : Type u} (c : ChildCut α) (r : RootCutList α) :
                                                              { pruned := c.pruned ++ r.pruned, trunks := match c.trunk? with | none => r.trunks | some trunk => trunk :: r.trunks }.coproductTerm = c.coproductTerm + r.coproductTerm
                                                              @[simp]
                                                              theorem HopfAlgebras.PLTree.RootCutList.map_consChild {α : Type u} {β : Type v} (f : αβ) (c : ChildCut α) (r : RootCutList α) :
                                                              map f (consChild c r) = consChild (ChildCut.map f c) (map f r)
                                                              theorem HopfAlgebras.PLTree.RootCutList.Perm.combine {α : Type u} {c d : ChildCut α} {r s : RootCutList α} (hc : c.Perm d) (hr : r.Perm s) :
                                                              { pruned := c.pruned ++ r.pruned, trunks := match c.trunk? with | none => r.trunks | some trunk => trunk :: r.trunks }.Perm { pruned := d.pruned ++ s.pruned, trunks := match d.trunk? with | none => s.trunks | some trunk => trunk :: s.trunks }
                                                              theorem HopfAlgebras.PLTree.rootCut_perm_of_rootCutList_perm {α : Type u} (a : α) {c d : RootCutList α} (h : c.Perm d) :
                                                              { pruned := c.pruned, trunk := node a c.trunks }.Perm { pruned := d.pruned, trunk := node a d.trunks }
                                                              theorem HopfAlgebras.PLTree.Cut.Perm.refl {α : Type u} (c : Cut α) :
                                                              c.Perm c
                                                              theorem HopfAlgebras.PLTree.Cut.Perm.trans {α : Type u} {c d e : Cut α} (hcd : c.Perm d) (hde : d.Perm e) :
                                                              c.Perm e
                                                              theorem HopfAlgebras.PLTree.Cut.Perm.full {α : Type u} {t u : PLTree α} (h : t.Perm u) :
                                                              { pruned := [t], trunk? := none }.Perm { pruned := [u], trunk? := none }
                                                              theorem HopfAlgebras.PLTree.Cut.Perm.of_rootCut {α : Type u} {c d : RootCut α} (h : c.Perm d) :
                                                              { pruned := c.pruned, trunk? := some c.trunk }.Perm { pruned := d.pruned, trunk? := some d.trunk }
                                                              @[irreducible]

                                                              Labelled admissible cuts which keep the root component.

                                                              Equations
                                                              • One or more equations did not get rendered due to their size.
                                                              Instances For
                                                                @[irreducible]

                                                                Choices for a labelled child: cut the edge above it, or keep it with a root-preserving cut.

                                                                Equations
                                                                Instances For
                                                                  @[irreducible]

                                                                  Combine labelled child cut choices into root-preserving cuts.

                                                                  Equations
                                                                  Instances For

                                                                    Labelled root-preserving cuts erase to the corresponding unlabelled cuts.

                                                                    Labelled child cut choices erase to the corresponding unlabelled choices.

                                                                    Labelled root-preserving cut lists erase to the corresponding unlabelled cut lists.

                                                                    theorem HopfAlgebras.PLTree.rootCuts_map {α : Type u} {β : Type v} (f : αβ) (t : PLTree α) :

                                                                    Root-preserving cuts commute with relabelling.

                                                                    theorem HopfAlgebras.PLTree.childCuts_map {α : Type u} {β : Type v} (f : αβ) (t : PLTree α) :

                                                                    Child cut choices commute with relabelling.

                                                                    theorem HopfAlgebras.PLTree.rootCutsList_map {α : Type u} {β : Type v} (f : αβ) (ts : List (PLTree α)) :

                                                                    Root-preserving cut lists commute with relabelling.

                                                                    Root-preserving cuts of a constantly labelled tree are constantly labelled cuts.

                                                                    Child cuts of a constantly labelled tree are constantly labelled cuts.

                                                                    Root-preserving cut lists of constantly labelled trees are constantly labelled cut lists.

                                                                    Exactly one root-preserving labelled cut of a tree prunes no trees: the no-cut cut.

                                                                    Exactly one labelled child cut choice prunes no trees: the choice keeping the whole child.

                                                                    Exactly one root-preserving labelled cut list prunes no trees: the no-cut list.

                                                                    Root-preserving labelled cuts conserve the order of a tree.

                                                                    theorem HopfAlgebras.PLTree.childCuts_order {α : Type u} {t : PLTree α} {c : ChildCut α} :
                                                                    c t.childCuts → (orderList c.pruned + match c.trunk? with | none => 0 | some trunk => trunk.order) = t.order

                                                                    Labelled child cut choices conserve the order of the child tree.

                                                                    Combined labelled child cuts conserve the total order of a list of children.

                                                                    theorem HopfAlgebras.PLTree.rootCuts_pruned_eq_nil {α : Type u} {t : PLTree α} {c : RootCut α} :
                                                                    c t.rootCutsc.pruned = []c.trunk = t

                                                                    A labelled root-preserving cut with no pruned trees is the no-cut root cut.

                                                                    theorem HopfAlgebras.PLTree.childCuts_pruned_eq_nil {α : Type u} {t : PLTree α} {c : ChildCut α} :
                                                                    c t.childCutsc.pruned = []c.trunk? = some t

                                                                    A labelled child cut choice with no pruned trees keeps the whole child tree.

                                                                    theorem HopfAlgebras.PLTree.rootCutsList_pruned_eq_nil {α : Type u} {ts : List (PLTree α)} {c : RootCutList α} :
                                                                    c rootCutsList tsc.pruned = []c.trunks = ts

                                                                    A labelled root-preserving cut list with no pruned trees keeps every child tree.

                                                                    def HopfAlgebras.PLTree.cuts {α : Type u} (t : PLTree α) :
                                                                    List (Cut α)

                                                                    All labelled admissible cuts, including the full cut.

                                                                    Equations
                                                                    Instances For

                                                                      Labelled admissible cuts erase to the corresponding unlabelled cuts.

                                                                      theorem HopfAlgebras.PLTree.cuts_map {α : Type u} {β : Type v} (f : αβ) (t : PLTree α) :

                                                                      The pruned branches of a labelled cut, as a non-planar labelled rooted forest.

                                                                      Equations
                                                                      Instances For

                                                                        The trunk of a labelled cut. The full cut has empty trunk forest.

                                                                        Equations
                                                                        Instances For
                                                                          @[simp]
                                                                          theorem HopfAlgebras.PLTree.Cut.map_prunedForest {α : Type u} {β : Type v} (f : αβ) (c : Cut α) :
                                                                          @[simp]
                                                                          theorem HopfAlgebras.PLTree.Cut.map_trunkForest {α : Type u} {β : Type v} (f : αβ) (c : Cut α) :
                                                                          @[simp]
                                                                          theorem HopfAlgebras.PLTree.Cut.order_trunkForest {α : Type u} (c : Cut α) :
                                                                          c.trunkForest.order = match c.trunk? with | none => 0 | some trunk => trunk.order
                                                                          theorem HopfAlgebras.PLTree.cuts_order {α : Type u} {t : PLTree α} {c : Cut α} (hc : c t.cuts) :

                                                                          Every labelled admissible cut conserves total order between pruned forest and trunk.

                                                                          The terms P^c(t) ⊗ R^c(t) appearing in the labelled BCK coproduct.

                                                                          Equations
                                                                          Instances For

                                                                            Keep exactly the labelled coproduct terms whose left tensor factor is empty.

                                                                            Equations
                                                                            Instances For

                                                                              Keep exactly the labelled coproduct terms whose right tensor factor is empty.

                                                                              Equations
                                                                              Instances For

                                                                                Forget labels in a labelled coproduct basis term.

                                                                                Equations
                                                                                Instances For
                                                                                  def HopfAlgebras.PLTree.mapCoproductTerm {α : Type u} {β : Type v} (f : αβ) (term : LRootedForest α × LRootedForest α) :

                                                                                  Relabel a labelled coproduct basis term.

                                                                                  Equations
                                                                                  Instances For

                                                                                    Label every vertex in an unlabelled coproduct basis term by the same label.

                                                                                    Equations
                                                                                    Instances For
                                                                                      @[simp]
                                                                                      @[simp]

                                                                                      Forget labels in a labelled triple coproduct term.

                                                                                      Equations
                                                                                      Instances For

                                                                                        Relabel a labelled triple coproduct term.

                                                                                        Equations
                                                                                        • One or more equations did not get rendered due to their size.
                                                                                        Instances For

                                                                                          Label every vertex in an unlabelled triple coproduct term by the same label.

                                                                                          Equations
                                                                                          • One or more equations did not get rendered due to their size.
                                                                                          Instances For

                                                                                            Labelled tree coproduct terms erase to the corresponding unlabelled terms.

                                                                                            theorem HopfAlgebras.PLTree.coproductTerms_order {α : Type u} {t : PLTree α} {term : LRootedForest α × LRootedForest α} (hterm : term t.coproductTerms) :
                                                                                            term.1.order + term.2.order = t.order

                                                                                            Every labelled coproduct term conserves total order between tensor factors.

                                                                                            theorem HopfAlgebras.PLTree.coproductTerms_left_eq_zero {α : Type u} {t : PLTree α} {term : LRootedForest α × LRootedForest α} (hterm : term t.coproductTerms) (hleft : term.1 = 0) :

                                                                                            The only labelled tree coproduct term with empty left factor is 1 ⊗ t.

                                                                                            theorem HopfAlgebras.PLTree.coproductTerms_right_eq_zero {α : Type u} {t : PLTree α} {term : LRootedForest α × LRootedForest α} (hterm : term t.coproductTerms) (hright : term.2 = 0) :

                                                                                            The only labelled tree coproduct term with empty right factor is t ⊗ 1.

                                                                                            The proper labelled BCK coproduct terms, excluding the two counit terms.

                                                                                            Equations
                                                                                            Instances For
                                                                                              theorem HopfAlgebras.PLTree.properCoproductTerms_order {α : Type u} {t : PLTree α} {term : LRootedForest α × LRootedForest α} (hterm : term t.properCoproductTerms) :
                                                                                              term.1.order + term.2.order = t.order

                                                                                              Multiply two finite lists of labelled coproduct basis terms.

                                                                                              Equations
                                                                                              • One or more equations did not get rendered due to their size.
                                                                                              Instances For

                                                                                                Labelled forest coproduct terms erase to the corresponding unlabelled terms.

                                                                                                theorem HopfAlgebras.PLTree.multiplyCoproductTerms_perm {α : Type u} {xs xs' ys ys' : List (LRootedForest α × LRootedForest α)} (hxs : xs.Perm xs') (hys : ys.Perm ys') :
                                                                                                theorem HopfAlgebras.PLTree.multiplyCoproductTerms_order {α : Type u} {xs ys : List (LRootedForest α × LRootedForest α)} {m n : } (hxs : termxs, term.1.order + term.2.order = m) (hys : termys, term.1.order + term.2.order = n) {term : LRootedForest α × LRootedForest α} (hterm : term multiplyCoproductTerms xs ys) :
                                                                                                term.1.order + term.2.order = m + n
                                                                                                theorem HopfAlgebras.PLTree.coproductTermsList_order {α : Type u} {ts : List (PLTree α)} {term : LRootedForest α × LRootedForest α} :
                                                                                                term coproductTermsList tsterm.1.order + term.2.order = orderList ts

                                                                                                Every labelled planar-forest coproduct term conserves total order.

                                                                                                theorem HopfAlgebras.PLTree.coproductTermsList_left_eq_zero {α : Type u} {ts : List (PLTree α)} {term : LRootedForest α × LRootedForest α} :
                                                                                                term coproductTermsList tsterm.1 = 0term.2 = (List.map LRootedTree.ofPLTree ts)

                                                                                                The only labelled planar-forest coproduct terms with empty left factor are 1 ⊗ φ.

                                                                                                theorem HopfAlgebras.PLTree.coproductTermsList_right_eq_zero {α : Type u} {ts : List (PLTree α)} {term : LRootedForest α × LRootedForest α} :
                                                                                                term coproductTermsList tsterm.2 = 0term.1 = (List.map LRootedTree.ofPLTree ts)

                                                                                                The only labelled planar-forest coproduct terms with empty right factor are φ ⊗ 1.

                                                                                                A labelled planar-forest coproduct has exactly one term with empty left factor.

                                                                                                A labelled planar-forest coproduct has exactly one term with empty right factor.

                                                                                                The proper BCK coproduct terms for a planar labelled forest.

                                                                                                Equations
                                                                                                • One or more equations did not get rendered due to their size.
                                                                                                Instances For

                                                                                                  Coproduct terms of the trunk of a labelled cut, using [(0, 0)] for the full cut.

                                                                                                  Equations
                                                                                                  Instances For

                                                                                                    Planar terms for (Δ ⊗ id)Δ(t), keeping the original labelled cut representatives.

                                                                                                    Equations
                                                                                                    • One or more equations did not get rendered due to their size.
                                                                                                    Instances For

                                                                                                      Planar terms for (id ⊗ Δ)Δ(t), keeping the original labelled cut representatives.

                                                                                                      Equations
                                                                                                      • One or more equations did not get rendered due to their size.
                                                                                                      Instances For
                                                                                                        theorem HopfAlgebras.PLTree.nestedCoproductLeftCut_perm {α : Type u} {c d : Cut α} (h : c.Perm d) :
                                                                                                        (List.map (fun (left : LRootedForest α × LRootedForest α) => (left.1, left.2, c.trunkForest)) (coproductTermsList c.pruned)).Perm (List.map (fun (left : LRootedForest α × LRootedForest α) => (left.1, left.2, d.trunkForest)) (coproductTermsList d.pruned))
                                                                                                        theorem HopfAlgebras.PLTree.nestedCoproductLeftCuts_forall₂_perm {α : Type u} {cs ds : List (Cut α)} :
                                                                                                        List.Forall₂ Cut.Perm cs ds(List.flatMap (fun (c : Cut α) => List.map (fun (left : LRootedForest α × LRootedForest α) => (left.1, left.2, c.trunkForest)) (coproductTermsList c.pruned)) cs).Perm (List.flatMap (fun (d : Cut α) => List.map (fun (left : LRootedForest α × LRootedForest α) => (left.1, left.2, d.trunkForest)) (coproductTermsList d.pruned)) ds)
                                                                                                        theorem HopfAlgebras.PLTree.nestedCoproductLeftCuts_listRelPerm {α : Type u} {cs ds : List (Cut α)} (h : PTree.ListRelPerm Cut.Perm cs ds) :
                                                                                                        (List.flatMap (fun (c : Cut α) => List.map (fun (left : LRootedForest α × LRootedForest α) => (left.1, left.2, c.trunkForest)) (coproductTermsList c.pruned)) cs).Perm (List.flatMap (fun (d : Cut α) => List.map (fun (left : LRootedForest α × LRootedForest α) => (left.1, left.2, d.trunkForest)) (coproductTermsList d.pruned)) ds)
                                                                                                        theorem HopfAlgebras.PLTree.nestedCoproductRightCut_perm {α : Type u} {c d : Cut α} (h : c.Perm d) :
                                                                                                        (List.map (fun (right : LRootedForest α × LRootedForest α) => (c.prunedForest, right.1, right.2)) c.trunkCoproductTerms).Perm (List.map (fun (right : LRootedForest α × LRootedForest α) => (d.prunedForest, right.1, right.2)) d.trunkCoproductTerms)
                                                                                                        theorem HopfAlgebras.PLTree.nestedCoproductRightCuts_forall₂_perm {α : Type u} {cs ds : List (Cut α)} :
                                                                                                        List.Forall₂ Cut.Perm cs ds(List.flatMap (fun (c : Cut α) => List.map (fun (right : LRootedForest α × LRootedForest α) => (c.prunedForest, right.1, right.2)) c.trunkCoproductTerms) cs).Perm (List.flatMap (fun (d : Cut α) => List.map (fun (right : LRootedForest α × LRootedForest α) => (d.prunedForest, right.1, right.2)) d.trunkCoproductTerms) ds)
                                                                                                        theorem HopfAlgebras.PLTree.nestedCoproductRightCuts_listRelPerm {α : Type u} {cs ds : List (Cut α)} (h : PTree.ListRelPerm Cut.Perm cs ds) :
                                                                                                        (List.flatMap (fun (c : Cut α) => List.map (fun (right : LRootedForest α × LRootedForest α) => (c.prunedForest, right.1, right.2)) c.trunkCoproductTerms) cs).Perm (List.flatMap (fun (d : Cut α) => List.map (fun (right : LRootedForest α × LRootedForest α) => (d.prunedForest, right.1, right.2)) d.trunkCoproductTerms) ds)
                                                                                                        @[simp]
                                                                                                        theorem HopfAlgebras.PLTree.rootCutsList_nil {α : Type u} :
                                                                                                        rootCutsList [] = [{ pruned := [], trunks := [] }]
                                                                                                        @[simp]
                                                                                                        theorem HopfAlgebras.PLTree.rootCuts_node_nil {α : Type u} (a : α) :
                                                                                                        (node a []).rootCuts = [{ pruned := [], trunk := node a [] }]