Aqui está uma alternativa possível a um argumento de preenchimento, baseado na generalização de Schöning do teorema de Ladner. Para entender o argumento, você precisa ter acesso a este documento (que infelizmente estará atrás de um muro de pagamento para muitos):
Uwe Schöning. Uma abordagem uniforme para obter conjuntos diagonais em classes de complexidade. Teórico Computer Science 18 (1): 95-103, 1982.
Vamos aplicar o teorema principal desse artigo para e serem linguagens e e como classes de complexidade, como a seguir:A1A2C1C2
- A1=∅ (ou qualquer idioma em )P
- A2=SAT
- C1=NPC
- C2=NP∩P/poly
Por uma questão de clareza, o fato de provarmos que é implica .NP⊈P/polyNPI⊈P/poly
Supondo que tenhamos e . É claro que e estão fechados sob variações finitas. O artigo de Schöning inclui uma prova de que é recursivamente apresentável (cuja definição precisa pode ser encontrada no artigo), e a parte mais difícil do argumento é provar que é recursivamente apresentável.A uma ∉ C 1 A 2 ∉ C 2 C 1 C 2 C 1 C 2NP⊈P/polyA1∉C1A2∉C2C1C2C1C2
Sob essas suposições, o teorema implica que existe uma linguagem que não está em nem em ; e dado que , sustenta que é Karp-redutível a e, portanto, . Dado que está em mas não está nem em , segue-se que .C 1 C 2 Um 1 ∈ P A A 2 A ∈ N P A N P N P N P ∩ P / p o l y N P I ⊈ P / p o l yAC1C2A1∈PAA2A∈NPANPNPNP∩P/polyNPI⊈P/poly
Resta provar que é recursivamente apresentável. Basicamente, isso significa que existe uma descrição explícita de uma sequência de máquinas determinísticas de Turing que todos param em todas as entradas e são tais que . Se houver um erro no meu argumento, provavelmente está aqui, e se você realmente precisar usar esse resultado, precisará fazer isso com cuidado. De qualquer forma, combinando todas as máquinas de Turing não determinísticas de tempo polinomial (que podem ser simuladas deterministicamente porque não nos importamos com o tempo de execução de cadaM 1 , M 2 , ... N P ∩ P / p o l y = { L ( H k ) : k = 1 , 2 , ... } H K H K H KNP∩P/polyM1,M2,…NP∩P/poly={L(Mk):k=1,2,…}Mk) e todos os polinômios, representando limites superiores no tamanho de uma família de circuitos booleanos para um determinado idioma, acredito que não é difícil obter uma enumeração que funcione. Em essência, cada pode testar se seu NTM de tempo polinomial correspondente concorda com alguma família de circuitos de tamanho polinomial até o comprimento da cadeia de entrada que é fornecida pesquisando todos os circuitos booleanos possíveis. Se houver acordo, o como o NTM, caso contrário, ele rejeita (e, como resultado, representa uma linguagem finita).MkMk
A intuição básica por trás do argumento (que está oculta no resultado de Schöning) é que você nunca pode ter duas classes de complexidade "agradáveis" (ou seja, com apresentações recursivas) sendo disjuntas e sentadas juntas. A "topologia" de classes complexas não permite: você sempre pode construir uma linguagem adequadamente entre as duas classes alternando de alguma forma as duas para trechos extremamente longos de comprimentos de entrada. O teorema de Ladner mostra isso para e , e a generalização de Schöning permite fazer o mesmo em muitas outras classes.N P CPNPC