Cuts that leave traces #
Marcolli, Chomsky and Berwick's coproduct Δ^c cuts accessible terms out of a syntactic object
and leaves a trace in place of each. On trees labelled α ⊕ β, the trace of a cut subtree t is
a leaf inr (τ t) whose label is computed by a trace encoder τ, and cuts at trace leaves are
forbidden, since a trace is not an accessible term. This is the admissible-cut enumeration
cutSummandsG at the extraction policy extractC τ.
Main definitions #
ConnesKreimer.traceLeaf: the trace leaf with a given label.ConnesKreimer.extractC: the trace extraction policy.ConnesKreimer.cutSummandsCP,ConnesKreimer.cutSummandsCN: the trace cut summands, and their descent toUnorderedTree.
Main results #
ConnesKreimer.cutSummandsCN_numEdges: crown edges plus trunk vertices recover the vertices of the tree.ConnesKreimer.cutSummandsCN_filter_empty: the empty cut is the unique cut with empty crown.ConnesKreimer.cutSummandsCN_filter_crown_eq_singleton: a lexical subtree occurring once is extracted by one cut, whose trunk replaces it by its trace.
References #
The trace-marker placeholder leaf carrying the encoded label b : β.
Equations
- ConnesKreimer.traceLeaf b = RoseTree.node (Sum.inr b) []
Instances For
Δ^c extraction policy #
The Δ^c extraction policy extracts Sum.inl-rooted (non-trace)
subtrees whole, leaving a single traceLeaf (τ t) in the
parent's child slot, and declines to extract Sum.inr-rooted (trace)
subtrees.
Declining at trace subtrees is required for coassociativity — without it, iterated Δ^c produces "trace of trace" right-channel terms that break the double-cut bijection — and matches [MCB25] Definition 1.2.2's restriction of cuts to accessible terms, which excludes trace placeholders.
Equations
- ConnesKreimer.extractC τ (RoseTree.node (Sum.inl val) children) = some [ConnesKreimer.traceLeaf (τ (RoseTree.node (Sum.inl val) children))]
- ConnesKreimer.extractC τ (RoseTree.node (Sum.inr val) children) = none
Instances For
cutSummandsCP — Δ^c cut enumeration via the generic cutSummandsG #
Defined as cutSummandsG (extractC τ). The generic-side simp lemmas
(cutSummandsG_node, cutListSummandsG_*, augActionG_*) compose with
extractC_inl/extractC_inr to give the Δ^c-specific reductions.
The Δ^c cut summands cut at non-trace subtrees, leaving trace placeholders, and skip cuts at trace leaves.
Equations
Instances For
Sanity: the trace policy on leaves #
Trace specialization #
The Δ^c policy extractC (τ ∘ UnorderedTree.mk) is ExtractInvariant:
- For
Sum.inl _-rooted inputs,extractCreturnssome [traceLeaf (τ (mk t))]. - For
Sum.inr _-rooted inputs,extractCreturnsnone.
Both cases are determined by the root label and the τ value, both of
which are Perm-invariant.
The Δ^c extract policy is ExtractInvariant.
Δ^c cut-summand-projection invariance under Perm.
Descent of cutSummandsCP through UnorderedTree.mk #
The UnorderedTree Δ^c cut summands, descended from cutSummandsCP via
Quotient.lift using the descent invariance
cutSummandsCP_proj_perm.
Equations
- ConnesKreimer.cutSummandsCN τ = Quotient.lift (fun (T : RoseTree (α ⊕ β)) => Multiset.map ConnesKreimer.projSummand (ConnesKreimer.cutSummandsCP (τ ∘ UnorderedTree.mk) T)) ⋯
Instances For
Δ^c cut summands conserve edges, since the trace marker replaces
the cut subtree by a unit-weight leaf, so crown edges plus trunk
weight recover the tree weight exactly. Descends
cutSummandsG_numNodes through UnorderedTree.mk.
The empty cut (0, T) is the unique cut summand of cutSummandsCN τ T with empty crown.
The empty cut is a trace cut.
Every crown component of a Δ^c cut of T is a subtree of T.
A lexical subtree M occurring exactly once below the root of T is extracted by exactly one
Δ^c cut, whose trunk is T with M replaced by its trace.