A reversão de quantificadores é uma propriedade importante que está frequentemente por trás de teoremas bem conhecidos.
Por exemplo, na análise, a diferença entre e é a diferença entre continuidade pontual e uniforme . Um teorema bem conhecido diz que todo mapa contínuo pontual é uniformemente contínuo, desde que o domínio seja agradável, ou seja, compacto .∀ϵ>0.∀x.∃δ>0∀ϵ>0.∃δ>0.∀x
De fato, a compactação está no centro da reversão do quantificador. Considere dois Datatypes e dos quais é aberta e é compacto (ver abaixo a explicação destes termos), e deixe ser uma relação semidecidível entre e . A instrução pode ser lido da seguinte maneira: todo ponto em é coberto por algum . Como os conjuntos são "abertos computacionalmente" (semidecidáveis) eXYXYϕ(x,y)XY∀y:Y.∃x:X.ϕ(x,y)yYUx={z:Y∣ϕ(x,z)}UxYé compacto, existe uma subcapa finita. Provamos que
implica
Frequentemente, podemos reduzir a existência da lista finita para um único . Por exemplo, se é ordenado linearmente e é monótono em em relação à ordem, podemos considerar como o maior de .
∀y:Y.∃x:X.ϕ(x,y)
∃x1,…,xn:X.∀y:Y.ϕ(x1,y)∨⋯∨ϕ(xn,y).
x1,…,xnxXϕxxx1,…,xn
Para ver como esse princípio é aplicado em um caso familiar, vejamos a afirmação de que é uma função contínua. Mantemos como uma variável livre para não confundir um quantificador universal externo:
Como é compacto e a comparação de reais é semidecidável, a instrução é semidecidável. Os reais positivos são evidentes e é compacto, para que possamos aplicar o princípio:
f:[0,1]→Rϵ>0
∀x∈[0,1].∃δ>0.∀y∈[x−δ,x+δ].|f(y)−f(x)|<ϵ.
[x−δ,x+δ]ϕ(x,δ)≡∀y∈[x−δ,x+δ].|f(y)−f(x)|<ϵ[0,1]∃δ1,δ2,…,δn>0.∀x∈[0,1].ϕ(δ1,x)∨⋯ϕ(δn,x).
Como é antimonotônico em o menor de já faz o trabalho, portanto, precisamos apenas de um :
O que temos é
a continuidade
uniforme de .
ϕ(δ,x)δδ1,…,δnδ∃δ>0.∀x∈[0,1].∀y∈[x−δ,x+δ].|f(y)−f(x)|<ϵ.
f
Em termos vagos, um tipo de dados é compacto se tiver um quantificador universal computável e manifesto se tiver um quantificador existencial computável. Os números inteiros (não negativos) são evidentes porque, para decidir semidecidir se , com semidecidável, realizamos a busca paralela por meio de encaixe . O espaço Cantor é compacto e aberto, conforme explicado por Abstract Stone Duality, de Paul Taylor, e " Topologia Sintética de Tipos de Dados e Espaços Clássicos ", de Martin Escardo (veja também a noção relacionada de espaços pesquisáveis ).N∃n∈N.ϕ(n)ϕ(n)2N
Vamos aplicar o princípio ao exemplo que você mencionou. Vemos um idioma como um mapa de palavras (finitas) sobre um alfabeto fixo para valores booleanos. Como as palavras finitas estão em correspondência bijetiva computável com números inteiros, podemos ver um idioma como um mapa de números inteiros para valores booleanos. Ou seja, o tipo de dados de todas as linguagens é, até o isomorfismo computável, precisamente o espaço Cantor nat -> bool
ou na notação matemática , que é compacta. Um tempo polinomial máquina de Turing é descrito pelo seu programa, o qual é uma cadeia finito, assim, o espaço de todos os (representações) máquinas de Turing pode ser tomado como sendo ou , o que é evidente.2Nnat
N
Dada uma máquina de Turing e um idioma , a instrução que diz que "o idioma é rejeitado por " é semidecidável porque é de fato decidível: basta executar com a entrada e ver o que faz. As condições para o nosso princípio são satisfeitas! A declaração "toda máquina oracle tem uma linguagem tal que não é aceita por " é escrita simbolicamente como
Após a inversão dos quantificadores, obtemos
Mcrejects(M,c)cMMcMbbMb
∀M:N.∃b:2N.rejects(Mb,b).
∃b1,…,bn:2N.∀M:N.rejects(Mb1,b1)∨⋯∨rejects(Mbn,bn).
Ok, então estamos limitados a muitos idiomas. Podemos combiná-los em um único? Vou deixar isso como um exercício (para mim e você!).
Você também pode estar interessado na questão um pouco mais geral de como transformar para uma declaração equivalente da forma ou vice-versa. Existem várias maneiras de fazer isso, por exemplo:∀x.∃y.ϕ(x,y)∃u.∀v.ψ(u,v)