Docs / Syntax / Minimalist / Workspace / Coproduct / DoubleCut

Double cuts of rose trees

import Linglib.Syntax.Minimalist.Workspace.Coproduct.DoubleCut · namespace DoubleCut

Both composites (Δ^c ⊗ id) ∘ Δ^c and (id ⊗ Δ^c) ∘ Δ^c enumerate the pairs of nested admissible cuts of a tree, the second cut taken in the crown or in the trunk of the first. For a coherent trace encoder the two enumerations agree up to the order of children. This file proves the agreement on rose trees, where the cut enumeration recurses structurally, and Trace.lean descends it to UnorderedTree, where it is the coassociativity of the coproduct Δ^c of Marcolli, Chomsky and Berwick (their Lemma 1.2.10, p. 37).

Main results

References

Declarations

L44
L47–50

Basic recursions for forestCutsP

Multiplicativity machinery

proj3 is additive

The two second-cut maps are monoid homs

Double-cut enumerators as binds of hL/hR

Multiplicativity of the forest double-cut

Forest coassoc from per-component tree coassoc

Node-level reduction of the per-tree double cut

The children-list cut enumerator (with trace leaves in the remainder), distinct from forestCutsP (deletion). treeCutsP/dcLHSP/dcRHSP of a node a cs decompose over it.

L226–244
L246–263

Children-list convolution clconv and Cl as a monoid hom

Cl τ = cutListSummandsG (extractC τ) is a monoid hom from (List, ++) to (Multiset (Forest × List), clconv). clconv is the cons-combiner of cutListSummandsG (forest add, list append) — a (non-commutative) monoid with unit {(0, [])}.

L277–283
L285–290
L292–299

The two double-cut maps and their clconv-multiplicativity (mod proj)

dcl/dcr are the children-list double-cut enumerators (re-cut crown via forestCutsP, vs re-cut remainder via Cl). Projected through proj3L (third component = remainder list → multiset of nonplanar trees), each is multiplicative over clconv.

L336–341
L349–352
L359–364
L366–371

The children-list coassociativity engine

coassL: the root-free children-list coassoc (LLEM3), proved by induction on the list using clconv-multiplicativity, the per-child coassA, and the tail IH. coassA (per-child) reduces to coassL of the child's children with TraceCoherent reconciling the extract-whole marker.

Children-list coassoc (coassL) and per-child coassoc (coassA), proved by mutual structural recursion mirroring cutListSummandsG/augActionG. coassL is the engine of the per-tree node step; coassA is the coherence-using combinatorial core.

L433–443
L464–477
L479–491
L493–498
L500–505

Per-tree coassoc coassT from coassL (node reduction + root wrap)