Each language version is independently generated for its own context, not a direct translation.
Imagine que você precisa construir uma casa (uma função lógica) usando apenas dois tipos de blocos: blocos de "E" (AND) e a capacidade de inverter a cor de um bloco (NOT) de graça.
Neste mundo, existem duas formas de construir essa casa:
- A Árvore (Fórmula): Você constrói uma estrutura onde cada bloco é usado apenas uma vez. Se você precisa usar um bloco em dois lugares diferentes, você é obrigado a construir duas cópias idênticas dele. É como ter que comprar dois tijolos iguais para fazer duas paredes, mesmo que você pudesse usar um só se pudesse "puxar" a parede de um lado para o outro.
- O Circuito (DAG): Aqui, você pode fazer um "atalho". Se um bloco é útil em dois lugares, você constrói um só e divide o fio para ele ir para os dois lados. Isso é chamado de "compartilhamento".
O artigo de Kirill Krinkin investiga uma pergunta simples: Quanto de tamanho (quantos blocos) a gente economiza ao usar os atalhos do Circuito em vez da Árvore?
A resposta que ele encontrou é surpreendentemente simples e elegante.
A Grande Descoberta: A "Diferença de Um"
A maioria das pessoas esperaria que, para funções complexas, a Árvore fosse muito maior que o Circuito (talvez o dobro, o triplo, ou até exponencialmente maior).
Mas o autor descobriu que, neste sistema específico (onde inverter a cor é grátis), a economia é sempre exatamente 0 ou 1 bloco.
- Ou a Árvore e o Circuito têm o mesmo tamanho (diferença 0).
- Ou o Circuito é exatamente um bloco menor que a Árvore (diferença 1).
Nunca é 2, 3 ou 100 blocos. É sempre "nenhum" ou "um". O autor chama isso de Teorema da Lacuna Unitária.
Por que isso acontece? (A Analogia do "Bloco Mágico")
O segredo está em uma regra especial deste sistema: existe um bloco "1" (verdadeiro) que é grátis.
Imagine que você pode dizer: "Esta parede é feita de '1' E 'Minha Função'". Como o "1" é grátis, você não gasta nada para fazer essa conexão. Isso limita drasticamente o quanto a Árvore pode ser ineficiente. Ela nunca pode ficar "descontrolada".
Quando o Compartilhamento Acontece?
O autor descobriu regras muito claras sobre quando vale a pena fazer o "atalho" (compartilhar o bloco):
- Regra do Tamanho Mínimo: Se a sua casa é pequena (usa 3 blocos ou menos), você nunca precisa de atalhos. A Árvore já é perfeita. O compartilhamento só começa a aparecer quando a casa precisa de 4 blocos ou mais.
- Regra das Variáveis: Para que o compartilhamento valha a pena, a casa precisa ter pelo menos tantas "janelas" (variáveis de entrada) quanto o número total de blocos usados. Se você tem 5 variáveis, precisa de pelo menos 5 blocos para que o compartilhamento apareça.
Como funciona o "Atalho"? (Os Dois Mecanismos)
Quando o Circuito é 1 bloco menor que a Árvore, o autor provou que existe apenas uma única porta sendo compartilhada. E essa porta é compartilhada de apenas duas formas possíveis:
- O Espelho (Dual-Polarity): Imagine que você tem um bloco que precisa ser usado em um lugar "normal" e em outro lugar "invertido" (como um espelho). Na Árvore, você teria que construir dois blocos (um normal, um invertido). No Circuito, você constrói um só e usa o fio normal em um lado e o fio invertido no outro. É como usar o mesmo espelho para ver o reflexo e o reflexo invertido.
- O Repetidor (CSE - Mesma Polaridade): Imagine que você precisa usar o mesmo bloco duas vezes, exatamente da mesma forma, em dois lugares diferentes. Na Árvore, você constrói duas cópias. No Circuito, você constrói uma e divide o fio.
O autor provou que não existe nenhuma outra maneira de economizar exatamente 1 bloco. Se você tentar compartilhar mais de uma porta ou de outras formas, ou não economiza nada, ou o sistema não é o mais eficiente possível.
Resumo da Ópera
Pense na construção de circuitos lógicos como uma brincadeira de Lego onde:
- Você pode inverter a cor das peças de graça.
- Você tem uma peça "mágica" que custa zero.
- A pergunta é: "Quanto eu economizo se puder usar uma peça em dois lugares ao invés de comprar duas?"
A resposta deste artigo é: Você nunca economiza mais de uma peça.
- Se a estrutura for simples, você não economiza nada.
- Se for complexa o suficiente, você economiza exatamente uma peça, e só existe uma maneira específica de fazer isso (ou usando o espelho, ou dividindo o fio).
Isso é importante porque mostra que, mesmo em sistemas complexos, a "economia" de recursos tem uma estrutura muito rígida e previsível. Não é um caos; é uma regra de "tudo ou nada" (ou zero, ou um).
O autor também criou um "dicionário" de todas as casas possíveis até certo tamanho e mostrou que, em cerca de 85% dos casos, não há economia nenhuma. Mas nos 15% restantes, a economia é sempre exatamente de um bloco, seguindo um padrão perfeito.