Theorem: BPP languages have poly-size circuits

Proof: Let \(M\) be a BPP machine with exponentially small error probability, smaller than \(2^{-n}\) for inputs of length \(n\).
(Error reduction implies that every BPP language has such a machine.)

For every \(n\), there exist a polynomial-size circuit \(C\) such that \(C(x,r)=M(x,r)\) for all \(x\) of length \(n\) and \(r\) of length \(m=t_M(n)\). (We constructed such a circuit in the reduction from TM-SAT to CIRCUIT-SAT.)

Now the circuit \(C\) satisfies \(\Pr_r \{ C(x,r)\neq L_M(x)\}<2^{-n}\) for every \(n\)-bit input \(x\). What does that mean? We claim that there exists a single \(m\)-bit string \(r^*\) such that \(C(x,r^*)=L_M(x)\) for all \(x\). Indeed, by the union bound, \(\Pr_r\{ \exists x. C(x,r)\neq L_M(x)\}<1\), which implies as desired that the event \(\{ \exists x. C(x,r)\neq L_M(x)\}\) cannot hold for all \(m\)-bit strings \(r\).

Finally, we can hardwire the random string \(r^*\) into the circuit \(C\) in order to obtain a circuit that computes \(L_M(x)\) on all inputs \(x\) of length \(n\).