 
Summary: Com S 631: Lower bounds and Separation Results
Lecture 6 Scribe: Aaron Sterling
1. Circuits
The underlying hardware of a machine is a circuit. Circuits perform the actual computa
tion. So, given a function, can a circuit that is not too large compute it? That is the main
question of Circuit Complexity.
We will consider Boolean functions f : {0, 1}n
{0, 1}. A circuit is a DAG G such
that each node is an node, a node, a ¬node or an Input or Output node. The  and
nodes have indegree 2. The ¬node has indegree 1. The Input node has indegree 0. The
Output nodes have outdegree 0. Each Input node is labeled with a variable xi.
Definition 1. Given a Boolean function f : {0, 1}n
{0, 1}, and a circuit C, we say C
computes f if C has n input nodes labeled x1, x2, . . . , xn and for every x = x1x2 . . . xn n
,
C(x1 . . . xn) = f(x1, . . . , xn). The size of the circuit is the number of nodes in it.
Definition 2. Given a function f, CSize(f) = min{C  C computes f}. This is the circuit
size of f.
Definition 3. Given a circuit C, the depth of C, d(C), is the length of the longest path
from the length of an input node to an output node.
