Input-XOR symmetry and essential coordinates of MCSP #
Flipping a subset of input variables via xorTranslate a (x ↦ fun i => x i ^^ a i)
induces a permutation tableTranslate a of the 2 ^ n truth-table coordinates that acts
transitively on Fin (2 ^ n).
- Invariance of
DeMorgan.binaryCostcomplexity: Because NOT gates have zerobinaryCost, precomposing a target withxorTranslate apreservesCircuit.costComplexity DeMorgan.interpretation DeMorgan.binaryCostfor everya : Fin n → Bool. Consequently,mcspCostScalar DeMorgan.interpretation DeMorgan.binaryCost n sis invariant undertableTranslate afor everys. - Invariance of
Binary(B₂) gate complexity: Absorbing input negations into the 16 binary gate operations ofBinary.signaturepreservesProgram.sizeandCircuit.sizewhenever the output wire is a gate, and uses at most 1 gate when the output wire is an input. Consequently,mcspScalar Binary.interpretation n sis invariant undertableTranslate afor alls ≥ 1. - All coordinates are essential: Any non-constant function on
Fin N → Boolthat is invariant under a transitive family of coordinate permutations depends essentially on every coordinatei : Fin N. In particular, whenevermcspCostScalarormcspScalaris non-constant (hypothesishne), every truth-table bit is essential, forcingc.inputSupport = Finset.univ. The frontier boundsCircuit.card_inputSupport_le_sizeandCircuit.card_inputSupport_le_costthen give2 ^ n ≤ c.size + 1for fan-in-2 circuits and2 ^ n ≤ c.cost DeMorgan.binaryCost + 1for De Morgan circuits.
The non-constancy hypothesis is discharged for the De Morgan predicate in
Complexitylib.Algebraic.LowerBound.MCSP.NonVacuity, which shows that
mcspCostScalar DeMorgan.interpretation DeMorgan.binaryCost (n + 1) s is non-constant whenever
some truth table has exact binaryCost complexity s ≥ 1, and exhibits such a table for s = 1.
For the Binary predicate mcspScalar Binary.interpretation n s, non-constancy remains a
hypothesis.
Input XOR translation and truth-table coordinate permutations #
Coordinate i of xorTranslate a x is xor (x i) (a i).
xorTranslate a is an involution.
Applying xorTranslate a twice is the identity.
tableTranslate a is an involution.
tableTranslate a maps the index of x to the index of xorTranslate a x.
Applying tableTranslate a twice is the identity.
Precomposing a truth table with tableTranslate a corresponds to precomposing the
associated target with xorTranslate a.
The family of permutations tableTranslate a acts transitively on Fin (2 ^ n).
De Morgan binaryCost invariance under xorTranslate #
A single-output De Morgan circuit computing x ↦ xor (x i) neg with zero binaryCost.
Equations
- One or more equations did not get rendered due to their size.
Instances For
deMorganLiteralCircuit i neg computes x ↦ xor (x i) neg.
deMorganLiteralCircuit i neg has zero binaryCost.
An n-output De Morgan circuit computing xorTranslate a with zero binaryCost.
Equations
- Algebraic.MCSP.deMorganXorTranslateCircuit a = Cslib.Circuits.Circuit.parallelFin n fun (i : Fin n) => Algebraic.MCSP.deMorganLiteralCircuit i (a i)
Instances For
deMorganXorTranslateCircuit a computes xorTranslate a.
deMorganXorTranslateCircuit a has zero binaryCost.
Precomposing a target with xorTranslate a preserves DeMorgan.binaryCost complexity.
mcspCostScalar for DeMorgan.binaryCost is invariant under tableTranslate a.
Full binary basis (B₂) gate-complexity invariance under xorTranslate #
Mask for a wire under input XOR translation: input i is masked by a i, while internal
gate wires are unmasked.
Equations
- Algebraic.MCSP.wireXorMask a = Cslib.Circuits.Wire.elim a fun (x : Fin g) => false
Instances For
The mask of input wire i is a i.
Gate wires are unmasked.
Absorb input XOR masks into a single Binary.signature gate line.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Absorb input XOR masks into every gate of a Binary.signature program without changing
its gate count.
Equations
Instances For
negateInputsBinaryProgram a p evaluates p on the translated input xorTranslate a x.
For 1 ≤ s, transforming a Binary.signature circuit of size ≤ s produces a circuit of
size ≤ s computing the xorTranslate a-shifted target.
For 1 ≤ s, mcspScalar Binary.interpretation n s is invariant under tableTranslate a.
Essential coordinates of transitive non-constant Boolean functions #
If F is invariant under precomposition with π : Equiv.Perm (Fin N), then EssentialAt F i
implies EssentialAt F (π i).
Any non-constant function on Fin (2 ^ n) → Bool that is invariant under tableTranslate a
for all a : Fin n → Bool has every coordinate i : Fin (2 ^ n) essential.
If every coordinate is essential for a scalar function F, then every circuit (in any basis)
computing a single-output target T with T x 0 = F x reads every input.
Input-support bounds for De Morgan circuits #
Every De Morgan operation has arity at most its binaryCost plus one, so the weighted
frontier bound Circuit.card_inputSupport_le_cost applies to DeMorgan.binaryCost.
A De Morgan circuit with m outputs reads at most m + c.cost DeMorgan.binaryCost inputs.
Essential coordinates and 2 ^ n - 1 circuit size / cost bounds for non-constant MCSP #
Whenever mcspCostScalar DeMorgan.interpretation DeMorgan.binaryCost n s is non-constant,
every truth-table coordinate i : Fin (2 ^ n) is essential.
Any circuit (in any basis) computing non-constant
mcspCostTarget DeMorgan.interpretation DeMorgan.binaryCost n s must include every truth-table
coordinate in its inputSupport.
2 ^ n ≤ c.cost DeMorgan.binaryCost + 1 for any De Morgan circuit computing
mcspCostTarget DeMorgan.interpretation DeMorgan.binaryCost n s, provided this predicate is
non-constant (hne).
2 ^ n ≤ c.size + 1 for any fan-in-2 circuit (in any basis) computing
mcspCostTarget DeMorgan.interpretation DeMorgan.binaryCost n s, provided this predicate is
non-constant (hne).
Whenever 1 ≤ s and mcspScalar Binary.interpretation n s is non-constant,
every truth-table coordinate i : Fin (2 ^ n) is essential.
Any circuit (in any basis) computing mcspTarget Binary.interpretation n s (1 ≤ s),
provided this predicate is non-constant, must include every truth-table coordinate in its
inputSupport.
2 ^ n ≤ c.size + 1 for any fan-in-2 circuit (in any basis) computing
mcspTarget Binary.interpretation n s (1 ≤ s), provided this predicate is non-constant
(hne).