Você mostra que um dos modelos pode simular o outro, que recebe uma máquina no modelo A, mostra que existe uma máquina no modelo B que calcula a mesma função. Observe que esta simulação não precisa ser computável (mas geralmente é).
Considere, por exemplo, autômatos de empilhamento com duas pilhas (2-PDA). Em outra pergunta , as simulações em ambas as direções são descritas. Se você fizesse isso formalmente, usaria uma máquina de Turing geral (uma tupla) e construiria explicitamente qual seria o 2-PDA correspondente e vice-versa.
Formalmente, essa simulação pode ser assim. Deixei
M=(Q,ΣI,ΣO,δ,q0,QF)
seja uma máquina de Turing (com uma fita). Então,
AM=(Q∪{q∗1,q∗2},ΣI,Σ′O,δ′,q∗1,QF)
com e fornecido porΣ′O=ΣO∪.{$}δ′
(q∗1,a,hl,hr)→δ′(q∗1,ahl,hr) para todos os e , para todos os , para todos os com , para todos os ,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)para todos e , para todos , para todos , para todos e e para todos osq∈Qhl∈ΣO
(q,ε,$,hr)→δ′(q′,$,□a)⟺(q,hr)→δ(q′,a,L)q∈Q
(q,ε,hl,hr)→δ′(q′,ahl,ε)⟺(q,hr)→δ(q′,a,R)q∈Q,hl∈Σ′O
(q,ε,hl,$)→δ′(q,hl,□$)q∈Qhl∈Σ′O
(q,ε,hl,hr)→δ′(q′,hl,a)⟺(q,hr)→δ(q′,a,N)q∈Q,hl∈Σ′O
é um 2-PDA equivalente. Aqui, assumimos que a máquina de Turing usa como símbolo em branco, ambas as pilhas começam com um marcador (que nunca é removido) e significa que consome a entrada , alterna os estados de para e atualiza as pilhas da seguinte forma:□∈ΣO$∉ΣO(q,a,hl,hr)→δ′(q′,l1…li,r1…rj)AMaqq′
[ fonte ]
Resta mostrar que entra em um estado final em se e somente se faz isso. Isto é bastante claro pela construção; formalmente, você deve traduzir aceitando execuções em em aceitando execuções em e vice-versa.AMx∈Σ∗IMMAM