Every edge is essential to the clique function #
For 2 ≤ k ≤ n, removing one edge from the complete graph on a k-set through it destroys every
k-clique, so the k-clique function depends on every edge (essentialAt_clique). A monotone
circuit has fan-in at most two, so it has at least n.choose 2 - 1 gates
(edgeCount_le_succ_size). This settles small clique sizes, where the method of approximations
says nothing.
It also records that monotone circuits compute the clique function at all, as the disjunction over
the k-sets of the conjunction of their edges (exists_computes_clique), so that the lower bounds
for it are not vacuous.
Main results #
Cslib.Circuits.Monotone.exists_computes_clique: some monotone circuit computesk-clique.Cslib.Circuits.Monotone.essentialAt_clique: every edge is essential tok-clique.Cslib.Circuits.Monotone.edgeCount_le_succ_size,Cslib.Circuits.Monotone.edgeCount_le_two_pow_depth: the resulting size and depth bounds.
Monotone programs have fan-in at most two.
Monotone circuits compute cliques: the disjunction over the k-sets of the conjunction
of their edges.
The monotone circuit complexity of k-clique is finite.
For 2 ≤ k ≤ n, every edge is essential to k-clique.
For 2 ≤ k ≤ n, a monotone circuit computing k-clique has at least n.choose 2 - 1
gates.
For 2 ≤ k ≤ n, a monotone circuit computing k-clique has depth at least log₂ C(n, 2).
There are at least (n / 2) ^ 2 possible edges.