Isso foi comprovado por Muller já em 1956. Aqui está a construção. Seja um parâmetro. Primeiro calculamos todas as funções possíveis nas primeiras entradas no tamanho (veja abaixo). Em seguida, construímos uma árvore de decisão para as outras variáveis , conectando-a à função correta nas variáveis restantes. Isso leva (veja abaixo), para um total de . Escolhendo , obtemos o limite desejado.kkO(22k)n−kO(2n−k)O(22k)+O(2n−k)k=log(n−logn)
Calculamos todas as funções possíveis em entradas indutivamente. Seja o tamanho de um circuito que computa todas as funções possíveis em entradas. Existem duas funções nas entradas zero, então . Toda função nas entradas pode ser escrita como , então . A solução dessa recorrência é .kZkkZ0=2f(x1,…,xk)kxkf(x1,…,xk−1,1)+xk¯¯¯¯¯f(x1,…,xk−1,0)Zk=Zk−1+22k⋅O(1)Zk=O(22k)
Para calcular a árvore de decisão, usamos uma construção semelhante: dada uma árvore para os primeiros variáveis, podemos construir uma árvore para os primeiros variáveis do formulário . A recorrência que obtemos é , cuja solução é .Tk−1kxkT+xk¯¯¯¯¯TWk=2Wk−1+O(1)Wk=O(2k)