Padding a circuit to an exact gate count #
A circuit with at most s gates is padded to exactly s gates by copying gates
(Circuit.padGates); a larger one is replaced by a trivial circuit of s gates with the same
inputs, so that the gate count is s on every input (Circuit.padTo). On the circuits that fit,
padding preserves well-formedness, the function computed, the formula the circuit describes, and
the succinct description of a decider through three windows (describesWindows_padTo); the
padding is computed in polynomial time from the circuit and s in unary (padToProg). The
answer reduction's circuit function pads the window describer's circuits to its gate bound
(slice P4i).
The trivial circuit on i inputs: one constant gate.
Equations
- MIPRE.SAT.Circuit.trivial i = { inputs := i, gates := [MIPRE.SAT.Gate.const false] }
Instances For
A circuit padded to exactly s gates: copying gates when it has at most s, else the
trivial circuit padded.
Equations
Instances For
Padding preserves a description through three windows.
The trivial circuit, from the input count.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Exact padding in polynomial time, from the circuit and s in unary.
Equations
- One or more equations did not get rendered due to their size.