Docs / Syntax / Minimalist / Workspace / Coproduct / TraceCut

Cuts that leave traces

import Linglib.Syntax.Minimalist.Workspace.Coproduct.TraceCut · namespace ConnesKreimer

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

Main results

References

traceLeaf — placeholder for a cut subtree

Δ^c extraction policy

The Δ^c extraction policy cuts a Sum.inl-rooted subtree t whole, leaving the trace leaf traceLeaf (τ t) in its slot, and never cuts a trace, which is not an accessible term (Marcolli et al. 2025, proof of Lemma 1.6.3, p. 65). Cutting traces would also break coassociativity, since iterated Δ^c would then leave traces of traces.

def extractCL52–59
{α : Type u_1} {β : Type u_2} (τ : RoseTree (α ⊕ β) → β) :
RoseTree (α ⊕ β) → Option (List (RoseTree (α ⊕ β)))

Built from

Used by extractC_inl, extractC_inr, cutSummandsCP, cutSummandsCP_def, cutSummandsCP_node, extractC_mkComp_invariant

Used in Syntax/Minimalist/Copy/Cut, Syntax/Minimalist/Workspace/Coproduct/DoubleCut

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.

def cutSummandsCPL76–80
{α : Type u_1} {β : Type u_2} (τ : RoseTree (α ⊕ β) → β) :
RoseTree (α ⊕ β) → Multiset (Multiset (RoseTree (α ⊕ β)) × RoseTree (α ⊕ β))

Built from

Used by cutSummandsCP_def, cutSummandsCP_node, cutSummandsCP_proj_perm, cutSummandsCN, cutSummandsCN_mk

Used in Syntax/Minimalist/Workspace/Coproduct/DoubleCut

Descent to UnorderedTree

The UnorderedTree Δ^c cut summands, descended from cutSummandsCP via Quotient.lift using the descent invariance cutSummandsCP_proj_perm.

cutSummandsCNL148–156
noncomputable def ConnesKreimer.cutSummandsCN {α : Type u_1} {β : Type u_2} (τ : UnorderedTree (α ⊕ β) → β) :
UnorderedTree (α ⊕ β) → Multiset (Multiset (UnorderedTree (α ⊕ β)) × UnorderedTree (α ⊕ β))

Built from

Instances ConnesKreimer.instIsAdmissibleCutsCN, Minimalist.Merge.instIsMergeCutsSumCutSummandsCN

Used by cutSummandsCN_mk, cutSummandsCN_filter_empty, zero_mem_cutSummandsCN, cutSummandsCN_mem_subtrees_of_mem_crown, cutSummandsCN_filter_crown_eq_singleton

Used in Syntax/Minimalist/Copy/Cut, Syntax/Minimalist/Workspace/Coproduct/CutFilterMap, Syntax/Minimalist/Workspace/Coproduct/Trace, Syntax/Minimalist/Workspace/Coproduct/TraceConservation, Syntax/Minimalist/Workspace/Merge/Basic and 7 more

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.

theorem cutSummandsCN_filter_crown_eq_singletonL197–224
{α : Type u_1} {β : Type u_2} [DecidableEq α] [DecidableEq β] (τ : UnorderedTree (α ⊕ β) → β) {M T : UnorderedTree (α ⊕ β)} (hM : M.value.isLeft = true) (hcount : Multiset.count M T.subtrees = 1) (hTM : T ≠ M) :
Multiset.filter (fun (p : Multiset (UnorderedTree (α ⊕ β)) × UnorderedTree (α ⊕ β)) => p.1 = {M}) (cutSummandsCN τ T) = {({M}, M.replace (UnorderedTree.leaf (Sum.inr (τ M))) T)}

Built from