Measures and conservation laws for the cut enumerations #
The trace-marker leaf statistics on RoseTree (α ⊕ β) and
UnorderedTree (α ⊕ β) (traceLeafCount, traceDepthSum — Sum.inr marks a
trace), and the size bookkeeping of the trace-preserving cut enumeration
cutSummandsCN: a cut summand splits a tree into a crown forest p.1
and a trunk p.2 carrying one trace-marker leaf per cut.
Main results #
ConnesKreimer.cutSummandsCN_numNodes— weight conservation:Σ #V(crown) + #V(trunk) = #V(T) + #cuts(MCB Lemma 1.6.3).ConnesKreimer.cutSummandsCN_traceLeafCount— trace-leaf conservation:Σ #trace(crown) + #trace(trunk) = #trace(T) + #cuts.ConnesKreimer.cutSummandsCN_lexical_conservation— exact conservation of non-trace vertices.ConnesKreimer.cutSummandsCN_trunk_rootValue,cutSummandsCN_crown_traceLeafCount_lt_numNodes— non-degeneracy: the trunk keeps the root, crown components are lexical-rooted.ConnesKreimer.Cut.numContractions,ConnesKreimer.Cut.depthC— the per-cut measures (crown cardinality; trunk trace-depth sum), withCut.depthC_posfor proper cuts of lexical-rooted trees.ConnesKreimer.cutSummandsP_numNodes,cutSummandsN_numNodes— exact vertex conservation for the deletion cut enumeration, with the non-degeneracy corollariescutSummandsN_crown_ne_singleton,cutSummandsN_self_not_mem_crownand the single-deletion edge countcutSummandsN_numEdges_single_deletion.
References #
- [MCB25], §1.2 and §1.6.2 (Definitions 1.2.5, 1.2.6, Lemma 1.6.3)
The number of Sum.inr-labeled (trace-marker) leaves in a tree.
Equations
- t.traceLeafCount = RoseTree.leafCountP (fun (x : α ⊕ β) => x.isRight = true) t
Instances For
Sum of root-distances of the Sum.inr-labeled (trace-marker) leaves.
Equations
- t.traceDepthSum = RoseTree.leafDepthSumP (fun (x : α ⊕ β) => x.isRight = true) t
Instances For
The number of Sum.inr-labeled (trace-marker) leaves of a nonplanar tree.
Equations
- UnorderedTree.traceLeafCount = UnorderedTree.leafCountP fun (x : α ⊕ β) => x.isRight = true
Instances For
The depth-weighted trace-marker count of a nonplanar tree.
Equations
- UnorderedTree.traceDepthSum = UnorderedTree.leafDepthSumP fun (x : α ⊕ β) => x.isRight = true
Instances For
Tree-level trace-leaf conservation #
Trace-leaf conservation for Δ^c cut summands (tree level): each
contraction replaces an extracted subtree by one Sum.inr leaf, so
crown trace leaves plus trunk trace leaves recover the tree's trace
leaves plus one per cut. Requires unit-trace-count replacements.
Mutual aux: trace-leaf conservation for children-list cut summands.
Mutual aux: trace-leaf conservation for per-child actions.
Crown trace leaves are bounded by the source's (tree level): the extracted
crown forest of any cut has no more trace leaves than the whole tree, since
each crown component is a subtree. Independent of the replacement policy
(no hext hypothesis) — only the crown side is counted. Together with
cutSummandsG_traceLeafCount this forces ≥ 1 fresh trace per cut into the
trunk (cutSummandsCN_trunk_traceLeafCount_ge_card).
Mutual aux: crown trace-leaf bound for children-list cut summands.
Mutual aux: crown trace-leaf bound for per-child actions.
UnorderedTree descent #
Trace-leaf conservation for the nonplanar Δ^c cuts: each contraction
adds exactly one Sum.inr leaf to the trunk (MCB Lemma 1.6.3).
Weight (vertex) conservation for the nonplanar Δ^c cuts: crown vertices plus trunk vertices recover the tree vertices plus one replacement trace leaf per cut (MCB Lemma 1.6.3).
The number of contractions in a Δ^c cut summand: one per extracted
crown component (MCB; numContractions in the legacy AdmissibleCut).
Equations
- ConnesKreimer.Cut.numContractions p = p.1.card
Instances For
The Minimal-Search depth of a Δ^c cut summand (MCB §1.5.2): the total
extraction depth Σ d_{v_i}, read off the trunk's trace markers. The Δ^c
quotient places a trace leaf at each cut site at exactly the cut depth, so
the trunk's traceDepthSum is the signed +d extraction cost of MCB rule 1.
Under Internal Merge the matching −d quotient term (rule 2) references this
same value and cancels it (cost 0); Sideward Merge incurs it uncancelled
(cost > 0, Cut.depthC_pos). Depends only on the trunk p.2, like
Cut.numContractions depends only on the crown.
Equations
Instances For
Lexical (non-trace) vertex conservation: combining weight and trace-leaf conservation, the trace leaf added at each cut is excluded from the lexical count exactly when the vertex it replaced is removed, so non-trace vertices are conserved with no correction term. Stated additively to avoid truncated ℕ subtraction.
Crown trace leaves bounded by the source's, descended to UnorderedTree:
the extracted crown forest of a Δ^c cut has no more trace markers than T.
(Each crown component is a subtree of T.)
Each Δ^c contraction leaves ≥ 1 trace marker in the trunk (MCB Lemma
1.6.3 corollary): the trunk's trace count is at least the number of cuts.
From trace-leaf conservation (Σtrace(crown) + trace(trunk) = trace(T) + #cuts)
and the crown bound (Σtrace(crown) ≤ trace(T)).
Crown components are policy-chosen (non-degeneracy substrate) #
Every crown component of a cut is one the policy chose to extract.
The Δ^c policy extracts only Sum.inl-rooted (lexical) subtrees.
Crown components of a Δ^c cut are lexical-rooted, hence have strictly more vertices than trace leaves.
A Δ^c cut never touches the root: the trunk keeps the tree's root label.
Minimal-Search depth of a proper cut #
A proper Δ^c cut of a lexical-rooted tree has trunk trace-depth at least one: the trunk keeps the lexical root, so each of its fresh trace markers sits at depth at least one.
Vertex conservation for the deletion cuts #
The deletion cut enumeration cutSummandsP extracts a crown forest and removes the cut subtrees
entirely, with no trace placeholder, so vertices are conserved exactly and without a +#cuts
correction. Rebinarizing the remainder with contractUnary drops one vertex per contracted unary
node, which is the +2 per cut in the edge count of a single deletion.
Vertex conservation for the deletion cuts of a tree: crown vertices plus trunk vertices recover the tree's vertices exactly.
Vertex conservation for the deletion cuts of a list of children.
Vertex conservation for the per-child deletion actions.
Vertex conservation for the nonplanar deletion cuts.
No deletion cut extracts the whole tree as its crown; the full-tree extraction is the separate primitive term of the coproduct.
No deletion cut of T has T itself among its crown components.
Deleting one subtree mover and rebinarizing the remainder removes two edges: the subtree's
own edge and the contracted parent. numUnary p.2 = 1 says the cut was a single edge at a
binary node.