Strictness of the conditional chain bound #
In CSLib's Boolean basis (AND, OR, NOT, and constants, each of cost one),
let f(x,y) = x ∧ y and g(x,y) = ¬(x ∧ y). Then
C(f,g) = C(g) = 2, whereas C(f | g) = 1.
The two-gate NAND circuit already contains the AND output. Supplying only
NAND as a free input loses access to that intermediate wire.
All equalities are kernel-checked. The tiny one-gate lower bound enumerates
the finite operation, wiring, output, and input choices using decide.
The two-input conjunction as a single-output target.
Equations
- Algebraic.ConditionalComplexity.andTarget input x✝ = (input 0 && input 1)
Instances For
The negation of two-input conjunction as a single-output target.
Equations
- Algebraic.ConditionalComplexity.nandTarget input x✝ = !(input 0 && input 1)
Instances For
Two gates with both the intermediate AND and final NAND exposed.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The shared circuit has exactly two gates: the AND and the NOT that turns it into the NAND.
The shared circuit computes the pair of functions.
NAND requires exactly two gates in the AND/OR/NOT basis.
Exposing the intermediate conjunction in the NAND circuit is free.
Given NAND as a supplied value, one NOT gate recovers AND.
The chain upper bound can be strict: its two sides here are 2 and 3.