Documentation

Complexity.Computability.Circuit.Monotone.Clique.Essential

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 #

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.

theorem Cslib.Circuits.Monotone.essentialAt_clique {n k : ℕ} (hk : 2 ≤ k) (hkn : k ≤ n) (i : Fin (Clique.edgeCount n)) :

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.