L'inversione dei quantificatori è una proprietà importante che è spesso alla base di teoremi ben noti.
Ad esempio, in analisi la differenza tra e è la differenza tra continuità puntuale e uniforme . Un teorema ben noto afferma che ogni mappa continua puntuale è uniformemente continua, a condizione che il dominio sia bello, cioè compatto .∀ϵ>0.∀x.∃δ>0∀ϵ>0.∃δ>0.∀x
In effetti, la compattezza è al centro dell'inversione dei quantificatori. Considerare due Datatypes e di cui è palese e è compatto (vedi sotto per la spiegazione di questi termini), e lasciate sia una relazione semidecidibili tra e . L'istruzione può essere letto come segue: ogni punto in è coperto da alcuni . Poiché gli insiemi sono "computably open" (semidecidable) eXYXYϕ(x,y)XY∀y:Y.∃x:X.ϕ(x,y)yYUx={z:Y∣ϕ(x,z)}UxYè compatto esiste un sottofondo finito. Abbiamo dimostrato che
implica
Spesso possiamo ridurre l'esistenza dell'elenco finito a una singola . Ad esempio, se è ordinato in modo lineare e è monotono in rispetto all'ordine, allora possiamo prendere per essere il più grande di .
∀y:Y.∃x:X.ϕ(x,y)
∃x1,…,xn:X.∀y:Y.ϕ(x1,y)∨⋯∨ϕ(xn,y).
x1,…,xnxXϕxxx1,…,xn
Per vedere come questo principio viene applicato in un caso familiare, osserviamo l'affermazione che è una funzione continua. Manteniamo come variabile libera per non confonderci con un quantificatore universale esterno:
Poiché è compatto e il confronto dei reali è semidecidibile, l'istruzione è semidecidabile. I reali positivi sono palesi e è compatto, quindi possiamo applicare il principio:
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).
Poiché è antimonotone in il più piccolo di fa già il lavoro, quindi ne abbiamo bisogno solo uno :
Ciò che abbiamo è la continuità
uniforme di .
ϕ(δ,x)δδ1,…,δnδ∃δ>0.∀x∈[0,1].∀y∈[x−δ,x+δ].|f(y)−f(x)|<ϵ.
f
In termini vaghi, un tipo di dati è compatto se ha un quantificatore universale calcolabile e evidente se ha un quantificatore esistenziale calcolabile. Gli interi (non negativi) sono palesi perché al fine di stabilire se , con semidecidabile, eseguiamo la ricerca parallela a coda di rondine . Lo spazio Cantor è compatto e palese, come spiegato dalla Dual Stone astratta di Paul Taylor e dalla " Topologia sintetica di tipi di dati e spazi classici " di Martin Escardo (vedi anche la nozione correlata di spazi ricercabili ).N∃n∈N.ϕ(n)ϕ(n)2N
Applichiamo il principio all'esempio che hai citato. Vediamo una lingua come una mappa da parole (finite) su un alfabeto fisso a valori booleani. Poiché le parole finite sono in corrispondenza biiettiva calcolabile con numeri interi, possiamo vedere una lingua come una mappa da numeri interi a valori booleani. Cioè, il tipo di dati di tutte le lingue è, fino all'isomorfismo calcolabile, precisamente lo spazio di Cantor nat -> bool
, o nella notazione matematica , che è compatto. Una macchina di Turing a tempo polinomiale è descritta dal suo programma, che è una stringa finita, quindi lo spazio di tutte le (rappresentazioni di) macchine di Turing può essere considerato o , che è palese.2Nnat
N
Data una macchina di Turing e un linguaggio , l'istruzione che dice "il linguaggio è rifiutato da " è semidecidibile perché in realtà è decidibile: basta eseguire con input e vedere cosa lo fa. Le condizioni per il nostro principio sono soddisfatte! L'affermazione "ogni macchina oracolo ha un linguaggio tale che non è accettato da " è scritta simbolicamente come
Dopo l'inversione dei quantificatori otteniamo
Mcrejects(M,c)cMMcMbbMb
∀M:N.∃b:2N.rejects(Mb,b).
∃b1,…,bn:2N.∀M:N.rejects(Mb1,b1)∨⋯∨rejects(Mbn,bn).
Ok, quindi siamo finiti in molte lingue. Possiamo combinarli in un unico? Lo lascerò come esercizio (per me e te!).
Potresti anche essere interessato alla domanda leggermente più generale su come trasformare a un'istruzione equivalente del modulo o viceversa. Esistono diversi modi per farlo, ad esempio:∀x.∃y.ϕ(x,y)∃u.∀v.ψ(u,v)