The characterisation of bounded-depth matrix-symmetric circuits.
The forward direction (1 → 2) is the concept PatternsFromCircuits.memspanhom directly.
For the backward direction (2 → 1), Submodule.memspanset′ writes p=∑i,fi•homK(Fi)n for finitely many patterns Fi with ForestwidthLEΔ(k−1)(Fi). For each i, a
circuit Di computing homK(Fi)n is obtained from the concept
CircuitsForPatterns.existscircuit; it is reduced, matrix-symmetric, with support size ≤k
and support depth ≤Δ. These are glued (BoundedDepthGlueCircuit.glueCircuit) by scaling each
block's output by fi (via a new mul-gate and a new const(fi) input gate) and summing
all of these via a new output add-gate; the glue circuit computes ∑i,fi•homK(Fi)n=p (BoundedDepthGlueComputes.glueCircuitcomputes) and is matrix-symmetric
(BoundedDepthGlueSymmetric.glueCircuitisMatrixSymmetric), since every block is. Rigidifying
it (RigidConstruction.reduced) yields a reduced, matrix-symmetric circuit computing p
(RigidReduced.isReducedreduced, RigidSymmetric.isMatrixSymmetricreduced,
RigidComputes.computestransfer) with support size ≤k
(BoundedDepthGlueSize.glueCircuitreducedsupportSizele) and support depth ≤Δ
(BoundedDepthGlueSc.glueCircuitreducedsupportDepthle), the latter via a potential built
from each block's own sc, since every glue gate has empty minimal support and every block's
own minimal support is unaffected by rigidifying the glue circuit as a whole
(BoundedDepthEmbed.embedequiveq, BoundedDepthReducedFormula.reducedσOfeq).
The concept Rigidification.existsreduced is deliberately not used: it does not preserve support
size or support depth, so the proof rigidifies with RigidConstruction.reduced and tracks the
supports of the block gates through it directly.