Si mostra che uno dei due modelli può simulare l'altro, a cui viene data una macchina nel modello A, si mostra che esiste una macchina nel modello B che calcola la stessa funzione. Si noti che questa simulazione non deve essere calcolabile (ma di solito lo è).
Si consideri, ad esempio, automi pushdown con due stack (2-PDA). In un'altra domanda , vengono descritte le simulazioni in entrambe le direzioni. Se lo facessi formalmente, prenderesti una macchina Turing generale (una tupla) e costruiresti esplicitamente quale sarebbe il corrispondente 2-PDA, e viceversa.
Formalmente, una simile simulazione può assomigliare a questa. Permettere
M= ( Q , Σio, ΣO, δ, q0, QF)
essere una macchina di Turing (con un nastro). Poi,
AM=(Q∪{q∗1,q∗2},ΣI,Σ′O,δ′,q∗1,QF)
con e dati daΣ′O=ΣO∪.{$}δ′
(q∗1,a,hl,hr)→δ′(q∗1,ahl,hr) per tutti e , per tutti , per tutti con , per tutti ,a∈ΣIhr,hl∈ΣO
(q∗1,ε,hl,hr)→δ′(q∗2,hl,hr)hr,hl∈ΣO
(q∗2,ε,hl,hr)→δ′(q∗2,ε,hlhr)hr,hl∈ΣOhl≠$
(q∗2,ε,$,hr)→δ′(q0,$,hr)hr∈ΣO
(q,ε,hl,hr)→δ′(q′,ε,hla)⟺(q,hr)→δ(q′,a,L)per tutti e , per tutto ,q∈Qhl∈ΣO
(q,ε,$,hr)→δ′(q′,$,□a)⟺(q,hr)→δ(q′,a,L)q∈Q
(q,ε,hl,hr)→δ′(q′,ahl,ε)⟺(q,hr)→δ(q′,a,R) per tuttoq∈Q,hl∈Σ′O ,
(q,ε,hl,$)→δ′(q,hl,□$) per tuttiq∈Q eeper tuttihl∈Σ′O
(q,ε,hl,hr)→δ′(q′,hl,a)⟺(q,hr)→δ(q′,a,N)q∈Q,hl∈Σ′O
è un equivalente 2-PDA. Qui, supponiamo che la macchina di Turing usi come simbolo vuoto, entrambe le pile iniziano con un marcatore (che non viene mai rimosso) e significa che consuma input , cambia gli stati da a e aggiorna le pile in questo modo:□∈ΣO$∉ΣO(q,a,hl,hr)→δ′(q′,l1…li,r1…rj)AMaqq′
[ fonte ]
Resta da dimostrare che entra in uno stato finale su se e solo se fa. Questo è abbastanza chiaro dalla costruzione; formalmente, devi tradurre accettando le corse su in accettando le corse su e viceversa.AMx∈Σ∗IMMAM