Muestras que cualquiera de los modelos puede simular al otro, que tiene una máquina en el modelo A, muestra que hay una máquina en el modelo B que calcula la misma función. Tenga en cuenta que esta simulación no tiene que ser computable (pero generalmente lo es).
Considere, por ejemplo, autómatas pushdown con dos pilas (2-PDA). En otra pregunta , se resumen las simulaciones en ambas direcciones. Si hiciera esto formalmente, tomaría una máquina de Turing general (una tupla) y construiría explícitamente cuál sería el 2-PDA correspondiente, y viceversa.
Formalmente, tal simulación puede verse así. Dejar
M=(Q,ΣI,ΣO,δ,q0,QF)
ser una máquina de Turing (con una cinta). Luego,
AM=(Q∪{q∗1,q∗2},ΣI,Σ′O,δ′,q∗1,QF)
Σ′O=ΣO∪.{$}δ′
(q∗1,a,hl,hr)→δ′(q∗1,ahl,hr)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)q∈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
□∈ΣO$∉ΣO(q,a,hl,hr)→δ′(q′,l1…li,r1…rj)AM aq a q′ y actualiza las pilas así:
[ fuente ]
Queda por demostrar que UNAMETRO entra en un estado final en x ∈ Σ∗yo si y solo si METROlo hace Esto es bastante claro por construcción; formalmente, tienes que traducir aceptando carreras enMETRO en aceptar carreras en UNAMETRO y viceversa.