Em uma fórmula ITE , é possível calcular polinomialmente uma lista de atribuições reduzida para descrever todas as avaliações, o que a torna verdadeira.ϕ
Para fazer isso, basta olhar para sua fórmula como uma árvore com nós rotulados por variáveis e folhas por e . Ramos esquerdos são a parte "then" que define a variável como true e ramos direitos são a parte "else" que define false. Cada ramificação que leva a uma licença será rotulada por um conjunto de atribuição de variáveis parciais, por exemplo . Computar a lista de todos esses conjuntos de sua fórmula é polinomial. Você pode calcular uma forma normal dessa lista removendo um conjunto, se ele estiver contido em outro, e mesclando conjuntos que diferem em uma variável: se e estão na sua lista, você os remove e adiciona011{x,y¯¯¯,z}{x,y¯¯¯,z}{x,y,z}{x,z}, o que significa que ele funciona, independentemente do valor de . No entanto, se você tiver e , não poderá mesclá-los e mantê-los assim. Você aplica essas regras até estabilizar, mais uma vez esse procedimento é polinomial.y{x,y¯¯¯,z,t}{x,y,z}
Finalmente, escolha uma ordenação arbitrária de variáveis , e chamá- o peso de . O peso de uma lista é a soma de todos os pesos que aparecem em que (com multiplicites). Aplique "rotações" sempre que possível, para minimizar o peso total da sua forma normal. Uma rotação alterações a com ( é uma lista, e e também pode ser negada variáveis). Podemos ver que ele faz a diminuição do peso total em{x1,…,xn}ixi{x⃗ ,xi,xj},{x⃗ ,xj¯¯¯¯¯}{x⃗ ,xi},{x⃗ ,xi¯¯¯¯¯,xj¯¯¯¯¯}i<jx⃗ xixjj−i. Espero que agora a forma normal seja única, tentarei uma prova formal mais tarde.
Então, duas fórmulas são equivalentes se tiverem a mesma lista de forma normal de atribuições. Então, o problema parece estar em .P