Internal: Bridge from CircDesc to Circuit Model #
This internal module connects the CircDesc counting model to the general
Circuit model by proving that circuits over Basis.andOr2 encode faithfully
into circuit descriptors.
The public theorems shannon_lower_bound_circuit and
schnorr_lower_bound_circuit are accessible through Circ.Shannon and
Circ.Schnorr respectively.
Encoding #
Encode a Basis.andOr2 gate as a GateSlot.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Encode a circuit over Basis.andOr2 as a circuit descriptor.
Internal gates map to positions 0..G-1; the output gate to position G.
Equations
- CircuitComplexity.circuitToDesc c i = if h : ↑i < G then CircuitComplexity.encodeGate (c.gates ⟨↑i, h⟩) ⋯ else CircuitComplexity.encodeGate (c.outputs 0) ⋯
Instances For
Semantic Equivalence #
Wire values agree between Circuit.wireValue and wireValD for wires
in the range 0..N+G-1.
Circuit evaluation agrees with descriptor evaluation.
Padding #
Pad a descriptor to a larger size by appending copy gates.
Each padded gate is OR(last_output, last_output) which copies the
original output value.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Main Theorems #
Shannon lower bound for circuits: for N ≥ 6, there exists a Boolean function on N inputs that cannot be computed by any fan-in-2 AND/OR circuit of size at most 2^N/(5N).
Schnorr's lower bound for circuits: any fan-in-2 AND/OR circuit computing XOR_N (or its complement) has at least 2(N-1) internal gates, i.e., G + 1 (total gates including output) ≥ 2N - 1.