Documentation

Complexitylib.Circuits.KarchmerWigderson

The monotone Karchmer--Wigderson correspondence #

The protocol model tracks its zero-input and one-input rectangles in the type. Alice partitions the one-input side, Bob partitions the zero-input side, and a leaf supplies one coordinate separating the whole remaining rectangle.

The translations are depth-exact:

Consequently a Boolean function has a depth-d monotone formula exactly when its root Karchmer--Wigderson relation has a depth-d protocol in this model. No uniformity condition is present.

theorem Complexity.KarchmerWigderson.Protocol.eval_toFormula_eq_false {N : } {zeroInputs oneInputs : Set (BitString N)} (protocol : Protocol N zeroInputs oneInputs) {input : BitString N} (hinput : input zeroInputs) :

A protocol's formula is false throughout its zero-input rectangle.

theorem Complexity.KarchmerWigderson.Protocol.eval_toFormula_eq_true {N : } {zeroInputs oneInputs : Set (BitString N)} (protocol : Protocol N zeroInputs oneInputs) {input : BitString N} (hinput : input oneInputs) :

A protocol's formula is true throughout its one-input rectangle.

theorem Complexity.KarchmerWigderson.Protocol.depth_toFormula {N : } {zeroInputs oneInputs : Set (BitString N)} (protocol : Protocol N zeroInputs oneInputs) :
protocol.toFormula.depth = protocol.depth

Protocol-to-formula translation preserves depth exactly.

theorem Complexity.KarchmerWigderson.Protocol.toFormula_computes {N : } (function : BitString NBool) (protocol : RootProtocol function) :
(toFormula protocol).Computes function

The formula extracted from a root protocol computes the underlying function.

theorem Complexity.KarchmerWigderson.Protocol.exists_protocol_of_formula {N : } (formula : MonotoneFormula N) (function : BitString NBool) (computes : formula.Computes function) :
∃ (protocol : RootProtocol function), depth protocol = formula.depth

Every monotone formula computing function yields a root protocol of exactly the same depth.

theorem Complexity.KarchmerWigderson.Protocol.exists_formula_of_protocol {N : } (function : BitString NBool) (protocol : RootProtocol function) :
∃ (formula : MonotoneFormula N), formula.Computes function formula.depth = depth protocol

Every root protocol yields a monotone formula of exactly the same depth.

theorem Complexity.KarchmerWigderson.Protocol.exists_protocol_depth_iff_formula_depth {N : } (function : BitString NBool) (depthBound : ) :
(∃ (protocol : RootProtocol function), depth protocol depthBound) ∃ (formula : MonotoneFormula N), formula.Computes function formula.depth depthBound

Monotone Karchmer--Wigderson correspondence. A root protocol of depth at most depthBound exists exactly when a monotone formula of that depth exists.