Proofs for the single-cut criterion #
Wires are handled by induction in program order (wire_induction): a gate reads only inputs
and earlier gates. Two facts about a cut S follow.
- Cut and paste (
trace_mix): if two inputs agree on the forward and backward signals, the mixed input has the first input's values onSand the second input's values outsideS. Its gate equations hold because every value a gate reads across the cut is a boundary value. - Determination (
trace_eq_of_agree_backward): the inputs placed inSand the backward signal values determine every value onS.
So the inputs with a fixed boundary key form a product of a left and a right part
(card_filter_boundaryKey_eq), and for a fixed backward part the left parts of different keys
are disjoint, which bounds their total size (sum_card_leftParts_le). For an accepting set,
each product is a one-rectangle, so one side is smaller than the rectangle threshold
(card_accepting_le_of_trace).
For the ordering remark, the number of inputs in the prefix of an injective ranking grows by
at most one per step (exists_card_inputsIn_prefixBelow_eq), so some prefix holds half of the
inputs.
Induction over wires and gate values #
Induction over the wires of a program in program order: a gate reads only inputs and earlier gates.
The value of a gate is its operation applied to the values of the wires it reads.
Two evaluations agreeing on the wires a gate reads agree on the gate.
Cut and paste, and determination #
Cut and paste. If two inputs agree on the forward and backward signals of S, the
mixed input has the values of the first input on S and of the second outside S.
Determination. The inputs placed in S and the backward signal values determine every
value on S.
Determination outside the cut. The inputs placed outside S and the forward signal
values determine every value outside S.
Boundary keys #
Equal boundary keys mean agreement on the forward signals.
Equal boundary keys mean agreement on the backward signals.
Mixing two inputs with equal boundary keys keeps the key.
Left parts and backward values determine the key.
Right parts and forward values determine the key.
Products #
In a set closed under mixing inputs with equal keys, the inputs with a given key are closed under mixing.
Product fibres. In a set closed under mixing inputs with equal keys, the inputs with a given key are exactly the products of their left and right parts.
Partition bounds #
The left parts partition the left inputs for each backward part. Summed over the keys
realized in Z, the left parts number at most |U| ^ (i + |B|).
The right parts partition the right inputs for each forward part. Summed over the keys
realized in Z, the right parts number at most |U| ^ (n - i + |A|).
There are at most |U| ^ (|A| + |B|) boundary keys.
The single-cut criterion #
A rectangle-free threshold is positive: the empty rectangle has no side below zero.
The single-cut criterion, for the function carried by a wire out.
The strict form of the single-cut criterion.
The single-cut corollary. With at least 2 ^ (n - 2) accepted inputs, one side of
every cut sees at least n - ⌈log₂ K⌉ - 2 free bits.
The real-logarithm form of the single-cut corollary.
Circuits and orderings #
A single-output circuit computing f carries f on its output wire.
The prefix of the wires ranked below t.
Equations
- Algebraic.Cutwidth.SingleCut.Internal.prefixBelow rank t = {w : Cslib.Circuits.Wire n s | rank w < t}
Instances For
Prefixes take every input count. For an injective ranking of the wires, some prefix
contains exactly h inputs, for every h ≤ n.
Every ordering has a heavily crossed prefix, for the function carried by a wire.