Dada una maquina M por representar, nuestro sistema de codificacin necesita que acomodemos los estados de M en una lista cuyo primer elemento corresponda al estado inicial y el 2 al estado de parada. Con base en el orden de la lista, podemos hablar del primer estado de M, del segundo estado de M y en general del estado j de M. Estableceremos que el estado j de M se representara con una cadena de ceros de longitud j+2. As , el estado inicial estar representado por 0, el estado de parada por 00 y el siguiente (si existe) por 000. Luego, representaremos los smbolos R y L, as como los smbolos en (los smbolos de cinta de M distintos del espacio en blanco) como cadenas de ceros. Esto se hace acomodando en una lista los smbolos de y representando L con 0, R con 00, el primer smbolo de la lista con 000, el segundo smbolo con 0000 y en general el smbolo j con una cadena de ceros de longitud j+2. Si ahora establecemos que el smbolo en blanco se representara con la cadena vaca, obtenemos un sistema en el cual podemos representar los smbolos L y R, los estados de M y los smbolos de la cinta de M por medio de cadenas de ceros. De esta manera, es posible representar toda la transicin como cuatro cadenas de cero separados por unos. Ejemplos: (, x) = (h, R) 01000100100 Donde x es el smbolo representado por 000 y h es el estado de parada. (, ) = (h, ) 011001 Donde h es el estado de parada. Recordamos que un espacio es la cadena vaca. Observe que una lista de todas las transiciones posibles para una maquina de Truing con smbolos de cinta {} constituye una descripcin completa de la maquina. Por lo tanto, cualquier maquina de este tipo se puede representar como una lista de transiciones codificada. Adoptaremos la regla convencional de aadir un 1 para separar las transiciones de la lista. Ejemplo:
/x
x/R
(, ) = (h, x) y (, x) = (h, R)
011001000 y 01000100100
10110010001010001001001
As, tenemos una funcin sobreyectiva de N a las maquinas de Turing con alfabeto y smbolos de cinta {}. Empleamos la notacin Mi para representar la maquina que esta funcin relaciona con el entero i. Con base en esta funcin podemos construir otra, esta vez de * sobre la coleccin de maquinas de Turing con alfabeto y smbolos de cinta {}. Basta con asociar una cadena w de * con la maquina M|w|, donde |w| representa la longitud de w. A fin de hacer mas sencilla esta notacin, utilizaremos Mw para representar la maquina asociada a w por medio de esta funcin. Observe que los smbolos de w tambin se encuentran en el alfabeto de Mw, por lo que tiene sentido aplicar Mw a la cadena de entrada w. Definimos el lenguaje L0 ={w / Mw no acepta w} de *; una cadena de w de * se halla en L0 si y solo si esta no es aceptada por su maquina Mw correspondiente. Ahora nuestra tarea es mostrar que L0 no es aceptado por maquinas de Turing. Para esto, mostramos que se llega a una contradiccin si se supone lo contrario: Si L0 fuera aceptado por alguna maquina de Turing podemos suponer que su alfabeto es y su conjunto de cinta es {}. As mismo, L0 debe ser aceptado por Mw0 para alguna cadena w0 *. Por lo tanto L0 = L(Mw0) Ahora nos preguntamos si la cadena w0 existe o no en L(Mw0) (tiene que estar o no estar). Con base en la definicin de L0, sabemos que w0 L(Mw0) w0 L0 w0 L(Mw0) w0 L0 Sin embargo como L0 = L(Mw0), ambos enunciados son contradictorios. ABSURDO