Δ^ρ on ConnesKreimer R (Nonplanar α) via projection from RoseTree #
[MCB25] [foissy-introduction-hopf-algebras-trees]
The Nonplanar Δ^ρ is obtained by descending the tree-level Δ^ρ
(Coproduct.lean) through the projection mk : RoseTree α → Nonplanar α.
The descent requires showing that the projected cut summands
((cutSummandsP T).map projSummand) depend on T : RoseTree α only
through mk T, i.e., are invariant under RoseTree.PermEquiv. Once
established, Nonplanar.lift produces cutSummandsN, which extends to
comulTreeN, comulForestN, and the algebra hom comulAlgHomN.
Status #
[UPSTREAM] candidate. Sorry-free. Covers: the descent
(comulAlgHomN), the Hochschild 1-cocycle (comulTreeN_node_cocycle,
comulAlgHomN_bPlusLin_cocycle), and the counit laws
(counit_rTensor_comulAlgHomN, counit_lTensor_comulAlgHomN).
The GL/CK duality theorem (pairing_gl_eq_pairing_coproduct_Rho,
classical result of [Foi02]), coassociativity
(comulRhoN_coassoc → comulAlgHomN_coassoc_algHom), and the
Bialgebra (ConnesKreimer R (Nonplanar α)) instance live downstream in
Coproduct/PruningDuality.lean (the duality proof needs the B⁻
calculus of BMinus.lean, which imports this file). The full
HopfAlgebra instance (with antipode) lives in the sibling
HopfAlgebraNonplanar.lean (Phase A.8).
Architecture #
- Projection algebra hom (
planarToNonplanarAlg): directly on top of mathlib'sAddMonoidAlgebra.mapDomainAlgHom, applied to the additive monoid homMultiset.mapAddMonoidHom Nonplanar.mk. The universal property ofAddMonoidAlgebradoes the heavy lifting. - Cut-summand descent (§3): pointwise projection
(
projSummand/projForest/projAugAction) plus a clean factoring of thecutListSummandsPcons case as a Nonplanar-level cartesian product (cutListSummandsP_cons_proj); structural induction onPermStepfor the headline invariance, with pureEqvGen/Forall₂lifts forPermEquivandList.Forall₂versions.
Projection algebra hom RoseTree → Nonplanar #
Nonplanar.mk : RoseTree α → Nonplanar α extends to an algebra hom on
ConnesKreimer R via AddMonoidAlgebra.mapDomainAlgHom. Surjective at
the carrier level; the kernel encodes PermEquiv-equivalence of forests
of trees, which is what subsequent sub-phases will need to factor through.
The additive monoid hom from forests of tree-level trees to forests of
nonplanar trees, given by mapping Nonplanar.mk componentwise.
Equations
- RootedTree.ConnesKreimer.forestProjAddHom = Multiset.mapAddMonoidHom RootedTree.Nonplanar.mk
Instances For
The projection algebra hom ConnesKreimer R (RoseTree α) →ₐ[R] ConnesKreimer R (Nonplanar α) induced by Nonplanar.mk.
Equations
Instances For
API lemmas — action on of' and ofTree #
Phase A.7-β — projection of cut summands, descent of Δ^ρ #
To descend Δ^ρ from RoseTree to Nonplanar, we need a Nonplanar-side
cut-summand multiset that is PermEquiv-invariant. The strategy:
project each tree-level cut summand through mk componentwise, then prove
the resulting multiset depends on T : RoseTree α only through mk T.
The proof factors through three layers:
- Pointwise projection (
projSummand,projForest,projAugAction): the per-elementNonplanar.mklifts. - Combine factoring (
cutListSummandsP_cons_proj): the cons case ofcutListSummandsPdistributes over the projection, giving a clean cartesian-product recursion at theNonplanarlevel. - Headline lifts (
cutSummandsP_proj_permStep,cutSummandsP_proj_permEquiv,cutListSummandsP_proj_componentwise): structural induction onPermStepfor the substantive content; pureEqvGen/Forall₂lifts for the rest.
Pointwise projection #
Project a tree-level cut summand to a nonplanar one.
Equations
- RootedTree.ConnesKreimer.projSummand p = (Multiset.map RootedTree.Nonplanar.mk p.1, RootedTree.Nonplanar.mk p.2)
Instances For
Project a cutListSummandsP summand to nonplanar level, discarding
the list-order of the remainder children. The discarded order doesn't
affect the eventual mk (.node a remainder), since mk is invariant
under children-list permutation (RoseTree.permEquiv_root_perm).
Equations
- RootedTree.ConnesKreimer.projForest p = (Multiset.map RootedTree.Nonplanar.mk p.1, ↑(List.map RootedTree.Nonplanar.mk p.2))
Instances For
Project an augActionP summand to nonplanar level (per-child decision).
Equations
- RootedTree.ConnesKreimer.projAugAction p = (Multiset.map RootedTree.Nonplanar.mk p.1, Option.map RootedTree.Nonplanar.mk p.2)
Instances For
Bridge: applying cutSummandsP_node's wrapper (p.1, .node a p.2)
then projSummand factors through projForest followed by the
Nonplanar.node a smart constructor.
Combine factoring through projection #
The cons case of cutListSummandsP combines a per-child decision
(augActionP) with the cut-summands of the remaining children. This
combination distributes over the Nonplanar projection: the "projected
combiner" innerCombinerProj operates on
(Forest × Option) × (Forest × Multiset) and matches projForest of
the inline tree-level combiner. The headline result is
cutListSummandsP_cons_proj, which expresses the cons case of the
projected cutListSummandsP as a clean cartesian product at the
Nonplanar level.
Cartesian-product distributivity #
The pair-componentwise Prod.map distributes over Multiset.product
(×ˢ). Mathlib has the bind-side analogues but not this exact form for
multiset products; the proof is one inductive line via cons_product.
Headline factoring: cons case of projected cutListSummandsP #
List-side projection invariants #
These three theorems establish that the projected cutListSummandsP is
invariant under (1) substituting an "augAction-projection-equal" child,
(2) substituting a "projForest-equal" tail, and (3) any list permutation.
The projected cutListSummandsP is List.Perm-invariant: two
permutation-related child lists yield the same projected
cut-summand multiset.
Headline: PermStep + EqvGen lift #
Substantive content: cutSummandsP_proj_permStep proves projection
invariance under a single elementary step (PermStep). The
PermEquiv (EqvGen) and Forall₂ versions follow as straightforward
lifts. The structural induction on PermStep handles the recursion:
the recurse case calls itself on a strictly smaller child tree.
Projection invariance under a single PermStep. Structural
induction on the step constructor: swapAtRoot uses
cutListSummandsP_proj_perm; recurse uses the inductive
hypothesis combined with cutListSummandsP_proj_at_via_augAction.
Projection invariance under PermEquiv. Pure EqvGen lift of
cutSummandsP_proj_permStep.
Componentwise PermEquiv invariance for child lists. Pure
Forall₂ induction using cutListSummandsP_proj_at_via_augAction
on the head and the IH on the tail.
Δ^ρ on Nonplanar via descent #
The cutSummandsP_proj_permEquiv invariance lifts cutSummandsP
through Nonplanar.lift, giving a well-defined cutSummandsN. The
tree-level coproduct comulTreeN then extends multiplicatively to a
forest-level monoid hom and finally to the algebra hom comulAlgHomN.
The Nonplanar cut-summand multiset, defined via Nonplanar.lift
using the cutSummandsP_proj_permEquiv invariance.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The nonplanar tree-level Δ^ρ: explicit T ⊗ 1 term plus the
sum of cut-summand tensors at the Nonplanar level.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A filtered nonplanar tree-level Δ^ρ: the T ⊗ 1 primitive term plus
the cut-summand sum restricted to summands satisfying pred. Generalizes
comulTreeN (the pred = always-true case); used to carve phase-restricted
sub-coproducts (e.g. the phase coproduct Δ^c_Φ of
[MCB25] §1.14).
Equations
- One or more equations did not get rendered due to their size.
Instances For
The filter drops nothing when every cut summand satisfies pred, recovering
the full comulTreeN.
The nonplanar forest-level Δ^ρ: multiplicative product of tree-level coproducts over the components of the forest.
Equations
- RootedTree.ConnesKreimer.comulForestN F = (Multiset.map RootedTree.ConnesKreimer.comulTreeN F).prod
Instances For
Recursive formula: comulForestN (T ::ₘ F) = comulTreeN T * comulForestN F.
comulForestN packaged as a MonoidHom from
Multiplicative (Forest (Nonplanar α)).
Equations
- One or more equations did not get rendered due to their size.
Instances For
The Δ^ρ coproduct on ConnesKreimer R (Nonplanar α) as an
algebra hom.
Equations
Instances For
Phase A.7-γ — Hochschild 1-cocycle for B+_a #
B+_a : Forest (Nonplanar α) → Nonplanar α is the smart constructor
Nonplanar.node a. Linearly extended to bPlusLin a : H →ₗ[R] H (sending
basis element of' F to ofTree (Nonplanar.node a F)), it satisfies
the Hochschild 1-cocycle property (Foissy / MCB §1.2.11):
Δ^ρ ∘ B+_a = (·) ⊗ 1 ∘ B+_a + (id ⊗ B+_a) ∘ Δ^ρ
i.e., for every x : H:
Δ^ρ (B+_a x) = (B+_a x) ⊗ 1 + (id ⊗ B+_a)(Δ^ρ x).
This is the algebraic input to Foissy's clean inductive proof of
coassociativity (§A.7-δ): the subalgebra A := {x | (Δ ⊗ id)(Δ x) = (id ⊗ Δ)(Δ x)} is closed under B+_a, contains all leaves (which are
B+_a 1), hence equals the whole algebra.
B+_a as a function, smart constructor, and linear map #
The B+_a operator: graft an unordered forest of Nonplanar trees
under a new root labeled a. Identical to the smart constructor.
Equations
Instances For
The B+_a linear map: linearly extend the smart constructor bPlus a
to an R-linear endomorphism of ConnesKreimer R (Nonplanar α),
sending the basis element of' F to ofTree (Nonplanar.node a F).
Equations
Instances For
augActionN and cutForestSummandsN substrate #
cutForestSummandsN F is the Nonplanar-level multiset of
(cut_forest, remainder_forest) pairs ranging over per-tree decisions
on the forest F. Each per-tree decision (augActionN T) is either
"extract T whole" (pair ({T}, none)) or "recurse with a cut summand
of T" (pair (s.1, some s.2) for s ∈ cutSummandsN T).
Defined recursively at the Nonplanar level via Multiset.foldr, with
the LeftCommutative obligation discharged by swap_double_combinerProj
(the per-tree-decision swap symmetry, established for the tree-level
projection in §3 above and reused here verbatim).
Per-tree decision multiset at the Nonplanar level: extract this tree
whole (({T}, none)), or recurse into a cut summand.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The forest cut summand multiset: every per-tree decision tuple on
F : Forest (Nonplanar α) produces a pair (cut_forest, remainder_forest),
and cutForestSummandsN F enumerates them all (as a multiset). The
public Nonplanar-level analog of (cutListSummandsP ps).map projForest,
independent of the tree-level list representation.
Equations
- RootedTree.ConnesKreimer.cutForestSummandsN F = Multiset.foldr RootedTree.ConnesKreimer.cutForestCombinerN✝ {(0, 0)} F
Instances For
Bridges to the tree-level list representation #
The tree-level substrate cutListSummandsP (defined on List (RoseTree α))
is reused to evaluate cutForestSummandsN on a tree-level list rep, and
to characterize cuts of a Nonplanar node. These bridges are private —
the public cutSummandsN_node and comulForestN_eq_sum are stated
purely at the Nonplanar level.
Tensor-algebra and multiset distributivity helpers #
Public API #
The two structural facts that drive the cocycle: cuts of a node
decompose along cutForestSummandsN, and comulForestN expands as the
multiset sum over cutForestSummandsN. Both are pure Nonplanar-level
statements; tree-level substrate is invisible to consumers.
Cuts of Nonplanar.node a F decompose along the per-tree decisions
of F: each pair (cf, rem) ∈ cutForestSummandsN F gives a cut
summand (cf, Nonplanar.node a rem). The Nonplanar-level form.
The forest coproduct comulForestN F expands as a multiset sum of
of' cf ⊗ of' rem over (cf, rem) ∈ cutForestSummandsN F.
The cocycle theorem (basis-level) #
For the empty forest: Nonplanar.node a 0 = Nonplanar.leaf a.
The cut summands of a leaf: only one summand (0, leaf a),
corresponding to the empty cut.
The tree-level coproduct on a leaf:
comulTreeN (leaf a) = ofTree (leaf a) ⊗ 1 + 1 ⊗ ofTree (leaf a).
The Hochschild 1-cocycle property of B+_a, on basis elements:
for every forest F, the coproduct of the grafted tree
Nonplanar.node a F decomposes as the explicit primitive term plus
the right-channel B+ application of comulForestN F. Proven via
the substrate cutSummandsN_node (cuts of a node decompose along
cutForestSummandsN F) and comulForestN_eq_sum (forest coproduct
expands as the matching multiset sum); the LinearMap.lTensor
distributes over the sum via map_multiset_sum, and the per-summand
check reduces to LinearMap.lTensor_tmul + bPlusLin_of'.
The cocycle, lifted to the algebra-hom level on tree basis elements.
Phase A.7-δ — Counit laws + coassoc via GL/CK duality + Bialgebra #
Counit laws follow by reducing to the tree case via
ConnesKreimer.algHom_ext + multiplicativity (the empty-cut summand
contributes 1 ⊗ of' F; all others are killed by counit).
Coassociativity uses GL/CK duality: comulRhoN_coassoc (LinearMap form)
is derived from pairing_gl_eq_pairing_coproduct_Rho (Foissy axiom) +
GrossmanLarson.mul_assoc via pairing₃_unique; the AlgHom form
comulAlgHomN_coassoc_algHom is a one-line lift. This replaces the
earlier direct Foissy-clean proof (≈ 350 LOC, deleted in R.8 Phase 2):
both Δ^ρ and Δ^c coassoc now use a single GL-duality framework.
The final Bialgebra instance is assembled via Bialgebra.ofAlgHom.
Empty cut existence (substrate for counit laws) #
The empty cut (0, T) is always a cut summand of T. The tree-level
substrate cutSummandsP T always contains (0, T), by mutual structural
induction with cutListSummandsP; the nonplanar cutForestSummandsN F
contains (0, F) by descent. These witnesses split the (counit ⊗ id)
sum into a single non-vanishing summand 1 ⊗ of' F.
Tree-depth induction substrate #
A tree's depth is strictly less than the depth of any node containing it as a child.
Counit ⊗ id commutation with lTensor (bPlusLin a) #
The factor-wise commutation (counit ⊗ id) ∘ (id ⊗ B+_a) = (id ⊗ B+_a) ∘ (counit ⊗ id)
(where the right id is on different domains: H on the left, R on the right).
Pure TensorProduct.induction_on calculation; both sides reduce to
counit x ⊗ B+_a y on simple tensors. Used in the tree-level counit law and
in the bPlus closure proof.
Symmetric: id ⊗ counit commutation with lTensor (bPlusLin a) #
Mirror of counit_rTensor_lTensor_bPlus_apply. Acting on the right factor with
counit and on the left factor with B+_a — they don't interact.
Tree-level counit law (depth induction) #
(counit ⊗ id)(Δ T) = 1 ⊗ T for every nonplanar tree T. Strong induction
on T.depth: leaves close directly via comulTreeN_leaf; nodes use the
cocycle comulTreeN_node_cocycle, the commutation
counit_rTensor_lTensor_bPlus_apply, and the forest law on the children.
Counit laws (algebra-hom level) #
Strategy: reduce to of' F via ConnesKreimer.algHom_ext. For each F, expand
comulAlgHomN (of' F) = comulForestN F via comulForestN_eq_sum, then identify
the unique cut summand (0, F) ∈ cutForestSummandsN F (the "all empty cuts"
tuple). Other summands have pf.1.card > 0, so counit (of' pf.1) = 0 and
(counit ⊗ id) kills them. The surviving (0, F) summand contributes
1 ⊗ of' F = (lid).symm (of' F).
Helper lemmas needed (substantive):
mem_cutSummandsN_zero (T : Nonplanar α) : (0, T) ∈ cutSummandsN T— the empty cut exists at every tree.cutForestSummandsN_zero_mem (F : Forest (Nonplanar α)) : (0, F) ∈ cutForestSummandsN F.cutForestSummandsN_pos_pi : ∀ pf ∈ cutForestSummandsN F, pf ≠ (0, F) → pf.1.card > 0.
Δ^ρ coassoc and Bialgebra instance: moved #
The GL/CK duality theorem (pairing_gl_eq_pairing_coproduct_Rho), the
coassociativity of comulAlgHomN, and the Bialgebra instance live in
Coproduct/PruningDuality.lean, downstream of BMinus.lean (whose B⁻
calculus drives the duality proof).