Вы находитесь на странице: 1из 18

Apuntes para

MATEMATICAS DISCRETAS
Cap. 3: El Paradigma Logicial
Andreas Polymeris, DIICC, Universidad de Concepci on, Chile
Marzo del 2009
1. Tesis de Church
Los primeros modelos formales, de lo que se debe entender por una computadora, en realidad
buscaban mas bien precisar la noci on de algoritmo matematico, es decir de una mecanica de
calculo efectivo. Es por eso que estos modelos son bastante antiguos, datan de los a nos 30.
Los m as famosos son el -calculo de Alonzo Church, la maquina de Turing de Alan Turing y
la maquina de Post de Emil Post. Luego se demostro que estos modelos son equivalentes: que
todo calculo que puede realizarse efectivamente de acuerdo a uno de estos modelos, tambien
puede ser realizado efectivamente en los otros dos. Que todos los problemas que uno de estos
computadores puede resolver tambien pueden ser resueltos por los otros dos. Esto parece indicar
que el concepto de computacion logicial no es uno que dependa del modelo particular que uno
escoja para jarlo. En [vEB90] leemos:
The existence of many dierent machine models does not necessarily mean that there are
no uniform underlying notions of computational complexity. In the theory of computation a
large variety of models and formal calculi has been proposed to capture the notion of eective
computation. This has not lead to a proliferation of computation theories, due to the basic fact
that the proposed formalisms have all been shown to be equivalent in the following sense: each
computation in one formalism can be simulated by a computation in the other formalism. From
the equivalence one concludes that if a problem is unsolvable in one particular model, then it
is also unsolvable for all other formalized computing devices to which this particular model is
related by mutual simulation. Consequently the notion of (un)solvability does not really depend
on the model used. It has allowed us to return to an informal and intuitive style of working,
relying on what has become known as the inessential use of Churchs Thesis: whatever is felt
to be eectively computable can be brought within the scope of one of the formal models.. . . The
validity of Curchs Thesis is something which cannot be proven mathematically. At best the
thesis could be invalidated by some convincing counterexample, but so far no counterexample
has been discovered.
Note que implcitamente se esta admitiendo que no todo problema puede ser resuelto por
estas maquinas en el pr oximo Captulo 4 retomaremos este asunto pero que, de acuerdo a
1
la informal Tesis de Church, todo problema que pueda ser resuelto algortmicamente, tambien
lo puede ser por una de estas maquinas. Lo que no excluye que pueda haber problemas que si
puedan ser resueltos, pero solo de forma no-algortmica, bas andose en facultades particulares
de sistemas computantes no-logicos. Por ejemplo, el famoso fsico R. Penrose, en [Pen91] dice:
Ahora que los computadores electr onicos de alta-velocidad han llegado a ser una parte tan
familiar de nuestras vidas, poca gente parece sentir la necesidad de cuestionarse esta tesis (de
Church) en su forma original. En lugar de ello, se ha dirigido la atenci on hacia el tema de si
los sistemas fsicos reales (incluyendo presumiblemente los cerebros humanos) sujetos como
est an a leyes fsicas precisas son capaces de realizar m as, menos o exactamente las mismas
operaciones l ogicas y matematicas que las maquinas de Turing. Personalmente, acepto de buen
grado la forma matematica original de la Tesis de Church-Turing. Por otro lado, su relaci on
con el comportamiento de los sistemas fsicos reales es un tema aparte que ocupara nuestra
atenci on m as adelante en este libro.
Penrose apuesta por la fsica cuantica. Pero en todo lo que sigue estaremos sobre todo
preocupados en tratar de captar lo esencial de las maquinas computantes que nos son famil-
iares, nuestros computadores electronicos, digitales. Y todos estos trabajan algortmicamente,
en base a conmutadores electr onicos, transistores que se realizan fsicamente en base a la tec-
nologa de los semiconductores, fsica que permite realizar las operaciones logico-matematicas
caractersticas como veremos del paradigma logicial que subyace a la Tesis de Church.
2. Maquina de Post
Una maquina de Post M := (I, START, S) sobre el alfabeto B := {0, 1} es un diagrama
de ujo de una variable computada x

B

, donde

B := {0, 1, } y es un smbolo auxiliar que
s olo se usa internamente a la m aquina.
Un diagrama de ujo (I, S) es, en primera aproximacion, un grafo dirigido, sobre un
conjunto nito I de nodos. Cada nodo i I corresponde a una instruccion.
Cada instruccion en el diagrama de ujo tiene una de las dos siguientes formas: Es una
instruccion de testeo TEST o es una instrucciones de asignacion ASIGN. Pero estas instruc-
ciones no son simples nodos ligados por las aristas del grafo dirigido; porque las de TEST tienen
una sola puerta de entrada pero tres puertas de salida, cada una marcada por uno de los tres
signos de

B; en cambio las de ASIGN tienen al reves tres diferentes puertas de entrada,
marcadas por los signos de

B, y una sola de salida. Exactamente uno de todos estos nodos es
distinguido como el de inicio START I.
M as all a de este conjunto de nodos-instrucciones I, la maquina-diagrama de ujo s olo consta
de un conjunto nito S de aristas dirigidas que unen, cada una, una puerta de salida de
un nodo i I, con una puerta de entrada de otro nodo i

I que bien puede ser el mismo.


Con la especicacion de estos nodos I, la distincion del nodo START, y las especicaciones de
las aristas S, la maquina propiamente tal (I, START, S), queda determinada; y por lo tanto,
tambien el procesamiento que ejecuta, de la variable x cuyo valor inicial obtiene del ambiente
de la m aquina.
Entendemos que que este procesamiento siempre se incia en la instrucci on START, y
2
que x en ese momento asume un valor de input x B

, especicado desde el exterior de la


m aquina. En iteraciones sucesivas, este procesamiento se dar a de acuerdo al diagrama de ujo,
cambiando, mientras sea posible, el actual nodo instruccion i y el actual valor de x. Lo primero,
porque en cada iteracion el proceso uira a traves de una de las aristas que salen del nodo
actual siempre que existan tales y por lo tanto va a dar a un nuevo nodo; lo segundo,
porque este uir podra involucrar modicaciones del x actual:
Si el nodo antiguo i es de asignacion y por lo tanto tiene solo una puerta de salida
entonces el procesamiento escojera, arbitrariamente, una de las aristas que salen de ese nodo,
independientemente del valor actual de x. Si no hay una tal arista, entonces el procesamiento
se detendra en el nodo actual. Si, en cambio el nodo actual es de testeo, entonces la seleccion
de la puerta de salida, depender a de la cabeza h(x)

B de x, es decir, del primer dgito de
x: el proceso seleccionar a la puerta marcada por ese smbolo de

A. Note que esta seleccion no
puede funcionar si el valor actual de x es el de la palabra vaca ; que entonces se dara una
detencion en el nodo de testeo en cuestion. As como tambien se dara una detencion, si de
la puerta seleccionada no sale ninguna arista; puesto que, como en el caso de los otros tipos
de nodos, la seleccion de la arista por la que uira el proceso, es arbitraria siempre que
haya al menos una. Pero si una arista de salida es seleccionada, entonces entendemos que este
procesamiento cortara la cabeza h(x) de x, que por lo tanto la palabra que es transmitida por
la arista seleccionada corresponder a al cuerpo restante t(x)

B

, que comienza con el segundo


dgito de x porque x = h(x)t(x).
Si el nuevo nodo i

, al que va a dar la arista seleccionada en la iteracion, es de testeo, entonces


el nuevo valor que asumir a la variable computada, es el que uye por la arista la informacion
que llega; que, si x es el valor antiguo, podemos denotar por x

:= t(x), entendiendo que si


el nodo antiguo era de asignaci on, entonces t(x) := x. En cambio, si el nuevo nodo i

es de
asignacion, entonces, para determinar el nuevo valor, habr a que yuxtaponerle a la cola al
t(x) que llego uyendo, el signo z



B que marca la puerta de entrada en que incide la arista
de ujo seleccionada. Por lo tanto, el nuevo valor x

de la variable computada se determinar a de


acuerdo a x

:= t(x)z

.
Est a claro que de forma analoga se pueden denir M aquinas de Post sobre cualquier alfa-
beto nito B. Entonces el n umero de puertas de entrada a los nodos de asignaci on, as como el
n umero de puertas de salida de los nodos de testeo ser a |B| + 1.
Se puede formalizar esta noci on de maquina de Post como listado. Para ello, al estilo de otros
lenguajes de programacion, se podra listar estas instrucciones en cualquier orden, indicando
cada vez el tipo de la instruccion, as como todas las aristas que inciden en el, y las diferentes
puertas de entrada y salida que para ello usan. Para caracterizar esas aristas, habra que indicar
de que instrucci on y que puerta de salida provienen, y a cu al instruccion y cual puerta derivan,
respectivamente. Pero, debido a estas ultimas complicaciones, resulta m as facil formalizar estas
m aquinas como listados de aristas:
Es decir, especicar m as all a de los nodos el diagrama de ujo como un conjunto nito
S que expresa las aristas, descritas como pares ordenados de pares ordenados ((i, z), (z

, i

)),
tales que el par ordenado (i, i

) I I corresponda al de las instrucciones (antigua, nueva)


3
que la arista en cuestion relaciona, y que el par ordenado (z, z

)

B

B indique la condi-
cion de salida en i y el efecto de entrada de la arista en i

, respectivamente. Entendemos que

B :=

B {}, y que si el nodo i es de asignacion, tendremos z := es decir, la salida
es incondicional, independiente del valor actual de x. En cambio, si es de testeo, entonces z
corresponder a a la marca de la puerta de salida que usa la arista en cuestion. Simetricamente
entendemos que si la instruccion i

es de testeo, entonces tendremos z

:= es decir, la en-
trada no tiene efecto directo sobre el valor de x. En cambio, si es de asignacion, entonces z

corresponder a a la marca de la puerta de llegada que usa la arista en cuesti on.


Los procesamientos que una tal sistema de cuartetos S, puede ejecutar o que permite
a partir de un input x B

, son las secuencias (i


0
, x
0
), (i
1
, x
1
), (i
2
, x
2
), . . . I

B

, tales que
(START, x) = (i
0
, x
0
) y n N\{0}, (z, z

)

B

B y w

B

, tal que zw = x
n1
, x
n
= wz

y ((i
n1
, z), (z

, i
n
)) S.
Note por lo tanto que las M aquinas de Post efectivamente son casos particulares de Sistemas
Computantes como los caracterizamos en el Captulo 2. Para este caso paricular el conjunto
C de los potenciales estados internos del Sistema, es C := I

B

, es decir el de los pares


(Nodo,Palabra). Que la relacion de transicion G C C del Sistema esta especicada por
las aristas del diagrama de ujo de la Maquina, es decir, por los pares de pares ((i, z), (z

, i

))
que arroja el diagrama de ujo. Que dado un estado interno (j, x) C, el pr oximo estado s olo
puede ser un (j

, x

) C, tal que exista una arista ((i, z), (z

, i

)) con i = j, i

= j

, y que exista
una palabra w

B

, tal que zw = x y wz

= x

.
En lo que se reere al input hay una mnima diferencia con lo asumido en el Captulo
2. Porque ah suponamos, para simplicar, que el conjunto A de los potenciales inputs es
esencialmente igual a C. Para las M aquinas de Post esta claro que A = B

, porque el computo
siempre se inicar a en el nodo destacado START.
Y en lo que se reere al output tambien hay una diferencia insignicante. Porque en el
Captulo 2 entendamos que un tal output tiene lugar, siempre y cuando el estado interno
dejaba de variar, es decir, se mantena jo. Aqu, en cambio, estamos entendiendo que se da un
output siempre y cuando el estado alcanzado ya no permite seguir iterando; es decir, cuando se
d a un quiebre en la terminologa del Captulo 2. Pero la diferencia no es signicativa, puesto
que podemos entender que las Maquinas de Post que hemos considerado no tienen puntos jos,
ya que estos demandaran aristas triviales del tipo ((i, ), (, i)). Y que dada una tal M aquina
y un quiebre de ella, es facil modicarla de tal manera que el quiebre se transforme en punto
jo. Basta considerar el nodo de quiebre i I y agregar una arista trivial ((i, ), (, i)).
2.1. Ejemplo
Sea I := {ST, T1, T2, A0, A1, A} el conjunto de nodos de esta maquina. START := ST.
Y entendamos que el conjunto de aristas S est a dado por la siguiente tabla de pares de pares:
4
ST A
A T1
T1 0 T1
T1 1 T2
T1 0 A0
T2 0 T2
T2 1 T1
T2 1 A1
Vemos entonces que esta m aquina consta de 2 nodos de testeo, T1, T2, de 4 nodos de
asignaci on ST, A0, A1, A, y de las 8 aristas listadas. Es determinstica, pues de cada puerta de
salida sale a lo m as una arista. Puesto que solo para las puertas de salida de A0 y A1 no hay
aristas, el procesamiento s olo puede detenerse en uno de estos dos nodos.
De hecho, dado un input x B

, el procesamiento se detendr a en A0, ssi (x) = 0; y en


caso contrario, se detendr a en A1. Eso, porque el procesamiento va sencillamente eliminando
los 0 que lee, as como los pares de 1; hasta llegar al que inicialmente se yuxtapuso a x para
marcar su nal. Es decir que antes de la asignaci on nal tendremos x = ; y que s olo la corre-
spondiente asignaci on nal otorga a x el valor de la suma binaria del input.
2.2. Ejemplo
La siguiente tabla especica el diagrama de ujo de la m aquina de Post que consideraremos.
Tiene 17 nodos; 7 de testeo todos los que tienen nombres que comienzan con T y 10 de asig-
naci on los 9, cuyos nombres comienzan con A, m as STA, que es la instrucci on inicial START.
STA A
A TI sigue
TI 1 TC1 TI 0 TC0
TC1 1 TR11 TC0 0 TR00
TC1 0 TR10 TC0 1 TR01
TR11 A TR00 A
TR11 1 1 A1M1 TR00 0 0 A0M0
A1M1 TR11 A0M0 TR00
TR11 0 1 A1C1 TR00 1 0 A0C0
A1C1 TR10 A0C0 TR01
TR10 1 0 A1C0 TR01 0 1 A0C1
A1C0 TR11 A0C1 TR00
TR10 0 0 A1M0 TR01 1 1 A0M1
A1M0 TR10 A0M1 TR01
Esta maquina, lo que hace, es aclarar si el input es un palndromo o no; y entendemos que
una palabra x B

es un palndromo, ssi x = x, donde x es la palabra x leida de atras para


adelante. La tabla deja claro que la maquina es determinstica, y que solo se puede detener en
las puertas marcadas con de las instrucciones de testeo; excluyendo a las de TR11 y TR00,
5
que son las que llevan a iterar reiniciando el computo.
La idea que gua el dise no de esta maquina, es la siguiente: Un input x = x
1
x
2
x
n1
x
n
con n 2, es un palndromo, ssi x
1
= x
n
y x
2
x
n1
es un palndromo. En cambio, si n < 2, x
siempre es un palndromo. Es por eso que se puede proceder iterativamente: en cada iteraci on,
aclarando la igualdad del primer y ultimo dgito de la palabra con que se inica la iteraci on en
cuesti on, y al mismo tiempo cortando estos dos dgitos; hasta que o bien se determine que los
examinados son diferentes lo que permitira rechazar la condici on de palndromo del input
o se determine que la palabra restante tiene longitud menor a 2 lo que llevara a aceptar la
palindromicidad del input. Esta comprension de la cuesti on planteada nos llev o al dise no que
sigue:
Al iniciar una nueva iteracion con una palabra x = x
1
x
m
que en la primera iteraci on,
con m := n, corresponde al input; es decir, cada vez que se pasa a A, se marca su n, lo que
lleva a que la palabra procesada ahora sea x. Luego, en TI, se determina el valor de h(x),
pasando el control a TC1 o TC0, dependiendo de si h(x) = 0 o h(x) = 1, respectivamente.
Si en cambio h(x) = , la m aquina se detiene en TI, porque la puerta de TI, marcada
con no permite ninguna arista en S. Evidentemente que esta detencion debe ser interpretada
como de aceptacion, puesto que h(x) = es equivalente a x = ; es decir, x es un palndromo;
y puesto que el proceso ha llevado a un reinicio iterativo con esta palabra restante, se debe
concluir que el input tambien es un palndromo.
Si en cambio el control pasa a TC1, ya no volver a a los nodos mencionados arriba hasta
que se reinicie una nueva iteracion. Porque ahora, la m aquina determinara si el ultimo dgito
del x con que se inicio la actual iteraci on es decir el x
m
es, como el primero, un 1. Para
ello comenzar a testeando el h(x
2
x
n
) de la palabra que entra a TC1. Si es , se detendra en
TC1, y este test deja claro que |x| = 1, y que por lo tanto el input fue un palndromo.
En caso contrario el control pasa a TR11 o TR10, dependiendo de si la cabeza cortada fue
un 1 o un 0. De hecho, el control volver a a TR11 o TR10, cada vez que la ultima cabeza cortada
ha sido un 1 o un 0, respectivamente; hasta que en una de estas dos instrucciones de testeo, se
llegue a . Pero note que mientras esto ultimo no suceda, se recuperaran las cabezas cortadas,
salvo la ultima, antes de toparse con . Porque cuando el control se encuentre por (j 1)-aba
vez en TR11 o TR10, la palabra en la m aquina tendra la forma x
j+1
x
m
x
2
x
j1
. Esto
queda inductivamente claro, debido a que es cierto con j = 2 la primera vez; y que si es
cierto para la (j 1)-aba vez, tambien lo ser a para la j-aba vez si es que esta tiene lugar.
Porque en todo caso el considerado test corta la cabeza x
j+1
y (solo) lleva a una asignacion que
yuxtapone a la palabra en la maquina, x
j
. Esto ultimo, se debe a que el control parte de TR11,
ssi x
j
= 1, y en caso contrario, parte de TR10. Lo que queda claro en base a las aristas que
abandonan las diferentes puertas de TC1, TR11 y TR10.
As que este iterar lo ultimo visto, nalmente lleva a que la palabra en la m aquina sea
x
2
x
m1
, y que el control estara en TR11 o TR10, dependiendo de si x
m
= 1 o no. Que
por eso es correcto que si el control se encuentra en TR10, la puerta no tenga arista en S
que permita continuar; que se produzca una detenci on que, en este caso, debe ser interpretada
como rechazo de la cuesti on original. Que en cambio, si el control termina en TR11, la puerta
lleve a A reiniciando una nueva iteracion grande, ahora con x

y m

, donde x

:= x
2
x
m1
y m

:= m2.
6
S olo falta dejar claro que si el test de TI lleva a TC0 en vez de TC1, entonces la maquina
procede de forma simetrica intercambiando todo 1 por 0 a la recien descrita para TC1.
Que por lo tanto la m aquina tambien cumple su cometido para los casos caracterizados por
x
1
= 0.
3. Generalizaci on
Note que toda m aquina de Post (I, START, S), especicada como diagrama de ujo, puede
ser formalizada como conjunto de cuartetos del tipo que acabamos de caracterizar. Pero note
tambien que al reves, no todo tal conjunto nito de cuartetos S sobre I determina directamente
un diagrama de ujo del tipo considerado inicialmente. Porque, por ejemplo, para una colecci on
cualquiera de cuartetos no es de excluir que haya dos cuartetos ((i, z), (z

, i

)), ((i, ), (z, i)),


tales que z = , y entonces la instruccion i, debiera ser de testeo y de asignacion a la vez; o
al menos poder jugar ambos roles; permitir una selecci on arbitraria del tipo de la instrucci on.
Pero, como veremos m as adelante, siempre se puede dise nar una maquina de Post equivalente;
en un sentido semantico que se reere a la relaci on input/output y que por lo tanto remite a los
procesamiento que hacen estos sistemas computantes.
De momento es tal vez mas importante notar que si no insistimos en diferenciar instrucciones
de testeo y de asignaci on dr asticamente; es decir, si permitimos que seg un el caso un mismo nodo
cumpla las dos funciones, usualmente podremos simplicar bastante el conjunto de cuartetos
que codica una maquina. As, en el ultimo ejemplo, tambien hubieramos podido ahorrarnos
todos los nodos de asignaci on que comienzan con A, generalizando algunos de los de testeo los
que abajo ahora comienzan con G. Porque el siguiente conjunto de cuartetos es semanticamente
equivalente al anterior.
STA GI sigue
GI 1 TC1 GI 0 TC0
TC1 1 GR11 TC0 0 GR00
TC1 0 GR10 TC0 1 GR01
GR11 GI GR00 GI
GR11 1 1 GR11 GR00 0 0 GR00
GR11 0 1 GR10 GR00 1 0 GR01
GR10 1 0 GR11 GR01 0 1 GR00
GR10 0 0 GR10 GR01 1 1 GR01
Es sensato ampliar la denicion de arista-cuarteto, permitiendo ahora que z, z

. Esta
convencion por supuesto incluye la anterior que restringa estas palabras a las de longitud 1:
la palabra vaca mas las tres de longitud 1 que corresponden a los smbolos de

B. Veamos un
ejemplo.
Dado un par (p, p

) B

, queremos una m aquina de Post que x B

aclare la
existencia de un v B

, tal que pv = x; que si ello es el caso, entregue el output x

:= vp

, y en
7
caso contrario se detenga en otro nodo, con x

:= x.
No es difcil, pero bastante engorroso, dise nar la maquina requerida hagalo! Hay que
construir un diagrama de ujo que esencialmente consta de una cascada de instrucciones de
testeo de altura |p| y a cada una de las 3|p| puertas de salida de esta casacada, hay que
agregarle 3|p| diferentes cascadas de asignaciones, donde s olo una corresponde a p

.
En cambio, con las aristas-cuartetos ampliadas, bastan dos nodos NO, SI entendiendo
que START := NO y la arista ((NO, p), (p

, SI)); . Puesto que entendemos que el c omputo


se inicia, con x, en NO, y que la arista indicada ser a usada, ssi v B

con pv = x; y que en
este caso se corta el comienzo p, se yuxtapone al resto v la palabra p

, y se pasa al nodo SI,


donde el proceso se detiene.
Pero insistamos: si bien estas facultades ampliadas de dise no nos permiten especicaciones
mucho m as escuetas, al menos en este ejemplo queda claro que tambien se podra haber reducido
el dise no a un diagrama de ujo del tipo de los que usabamos al inicio de este captulo.
4. Sistema de Post
Un Sistema de Post est a denido por un alfabeto A y una relaci on binaria P A

. Es
un Sistema Computante cuyo conjunto de estados internos potenciales C es A

cuyos inputs
y outputs potenciales tambien son tales palabras y cuya relacion de transicion G est a especi-
cada por P como sigue: (v, v

) A

, (v, v

) G, ssi (p, p

) P y u A

tal que v = pu y
up

= v

. Entenderemos, como en las Maquinas de Post, que el proceso de computo al que da


lugar un tal Sistema de Post se detiene con el estado interno v A

, ssi se da un quiebre, es
decir, no se puede seguir iterando ya que no existe (p, p

) P tal que u A

con v = pu. Y
entendemos que (solo) entonces el proceso arroja el output v.
En lo que sigue veremos que para toda Maquina de Post sobre B se puede determinar un
Sistema de Post, sem anticamente equivalente a la M aquina; que ello es incluso muy f acil de
lograr. Para ello primero hay que escojer un alfabeto A que incluya a

B, que tenga un signo
destacado | B, y que mas alla de ello permita codicar el conjunto de nodos I como (diferentes)
palabras de A\{|}; es decir, hay que determinar una funcion de codicacion f : I (A\{|})

.
Y como esto ultimo siempre se podra lograr utilizando B, se podra denir A := B {, |}.
Pero tambien, por comodidad, se puede optar por un A m as amplio.
Luego se dene la relacion de Post P, determinando primero un par (p, p

) P para cada
cuarteto ((i, z), (z

, i

)) S de la M aquina de Post. Concretamente se determina p := |f(i)|z y


p

:= z

|f(i

)|. Para nalmente ampliar este P incluyendo los tres pares (0, 0), (1, 1) y (, ).
Note por lo tanto que P incluir a dos tipos de pares (p, p

): aquellos para los cuales p comienza


con | y p

termina con |, y aquellos en que tanto p como p

corresponden a un signo del alfabeto

B. Gracias a estos ultimos pares sabemos que siempre que el estado interno v de este Sistema
de Post comience con alg un signo del alfabeto

B se dar a la iteracion trivial que sencillamente
corta ese signo y lo vuelve a pegar a la cola de v, para as producir el siguiente estado v

.
Esto se repetir a hasta que el estado v comience con |.
Y (solo) entonces tendra lugar si es posible una iteracion del Sistema que emula a
8
la que hara la Maquina. Porque, dado un input x B

, entendemos que el Sistema ini-


cia su c omputo con la palabra v := |START|x. Que por lo tanto el proximo estado que
asumir a sera v

:= wz

|f(i

)|; gracias a alg un cuarteto ((START, z), (z

, i

)) de la M aquina, tal
que w

B

con x = zw. Por eso, luego de una secuencia nita de iteraciones triviales del
Sistema, este asumir a el estado |f(i

)|wz

, es decir el que codica el estado que hubiera asumido


la Maquina. Y este devenir se repetira luego de la misma manera. Debido a lo cual est a claro que
el Sistema de Post es semanticamente equivalente a la Maquina, pues tendr a la misma relacion
input-output que la M aquina; y tambien esta claro que todo output del Sistema tendra la forma
|f(i)|x, con alg un i I, x

B

; y que a partir de un tal estado interno del Sistema queda


totalmente identicado el output (i, x) que hubiera arrojado la M aquina.
5. Emulador
Est a a disposici on un Emulador de Sistemas de Post; es decir un programa en C++, que
alimentado con la especicacion de un Sistema de Post y con una Palabra, hace lo que el Sistema
de Post hara con la Palabra.
El Sistema de Post esta denido como en la seccion anterior. S olo que el Alfabeto A es jo
e incluye todos los smbolos ASCII, menos \ y %, dos signos que est an reservados y tienen
funciones de control. La especicaci on del Sistema se entrega al Emulador por medio de un
archivo Sistema.sip . Las lneas de este archivo no pueden exceder caLin signos; donde este
int est a especicado en EjecSistema.cpp. La primera lnea de Sistema.sip s olo describe el
Sistema de Post. Luego vienen tantas (pares de) lneas, como Pares tenga el Sistema. Todo esto
se cierra con lneas que comienzan con %.
El programa EjecSistema.cpp que ejecuta la Emulacion, primero lee esa especicacion del
Sistema, construye una versi on operativa del Sistema que comentare mas abajo, despliega esta
ultima en pantalla, y luego pide la especicaci on de la Palabra con la que se debe iniciar el
c omputo. Esta Palabra se debe ingresar por pantalla como secuencia de m aximo caLin
signos ASCII (menos {\, %}).
Luego el C omputo propiamente tal, quedara de maniesto como secuencia de lneas de
output en pantalla: Cada lnea comenzar a con la Palabra a la que ha llevado la iteracion,
seguida de luego se us o y el Par del Sistema que se usa para la proxima iteraci on.
Este Par s olo no aparece cuando se tiene la Palabra Final, que es la primera para la cual el
Sistema no ofrece un Par que le permita seguir iterando. Note que si el Sistema siempre tiene
un tal Par, entonces el c omputo no se detendra (y habr a que forzar la detencion con Ctrl+C).
El Emulador esta, como ya dije, programado en C++. Est a especicado en los dos archivos
EjecSistema.cpp y Palab.cpp; donde el primero necesita del segundo. Es por eso que primero
me referire a Palab.cpp:
Est a centrado en la class Nodo que es una estructura tipo Lista que permite albergar la
Palabra que esta siendo computada por el Sistema, de manera funcional al c omputo; es decir,
de manera que, dado cualquier Par (Prefijo,Sufijo) se pueda determinar con el metodo
9
Calza facilmente si la Palabra comienza con Prefijo, y si ello es el caso, cortar ese comienzo
de Palabra, y agregarle, al nal, Sufijo con el metodo Cuelga.
Lo delicado es evitar la producci on de basura informatica, al cortar; y por ello es que se
us o esta estructura tipo Lista que se propone en C++ Unleashed (pag. 79). Solo hubo que
agregarle los metodos Calza y Cuelga ya mencionados.
Esta misma estructura tipo Lista tambien es usada en EjecSistema.cpp para albergar el
Sistema de manera que se pueda facilmente recorrer; para de esa manera ejecutar una iteracion
de la Palabra usando el metodo Ejec que agregue a esta class Ebon, y que remite a la class
Nodo de Palab.cpp.
Veamos un ejemplo: el del Paldromo ya usado arriba. El Sistema de Post que obtenemos a
partir de la M aquina vista en la Secci on 3, es el siguiente:
|STA|, |GI|
|GI|1, |TC1|
|TC1|1, |GR11|
|TC1|0, |GR10|
|GR11|, |GI|
|GR11|1, 1|GR11|
|GR11|0, 1|GR10|
|GR10|1, 0|GR11|
|GR10|0, 0|GR10|
|GI|0, |TC0|
|TC0|0, |GR00|
|TC0|1, |GR01|
|GR00|, |GI|
|GR00|0, 0|GR00|
|GR00|1, 0|GR01|
|GR01|0, 1|GR00|
|GR01|1, 1|GR01|
0, 0
1, 1
,
Si Sistema.sip describe este Sistema de Post, entonces, si EjecSistema se ejecuta con
|STA|11011, la ejecuci on se detiene con la Palabra |TC0|, indicando que 11011 es un paldromo
de longitud impar y con centro 0. Si se ejecuta con |STA|10101, se detiene con |TC1| indicando
lo mismo que arriba pero para centro 1. Si se ejecuta con |STA|1001, se detiene con |GI|,
indicando que es un palndromo de longitud par. Y si, por ejemplo, se ejecuta con |STA|1111011,
se detiene con |GR10|1, indicando que 1111011 no es palndromo, porque alrededor del centro
1 hay dos signos diferentes.
10
6. Otro Ejemplo
En este ejercicio usaremos por primera vez una alfabeto B diferente a {0, 1}.
Dado el alfabeto B := {0, 1, <, >}, entendemos que una palabra x B

es o codica a
un arbol binario, ssi x = 0 o si existen arboles binarios v, w, tales que x =< v1w >; y s olo en
estos casos. Sea B

el conjunto de los arboles binarios.


Note que esta denicion sintactica implica que, si denimos z =< 010 >, para todo x
con x = 0, existe p, q B

, tal que x = pzq; y que para todos los p, q B

, con x = pzq,
resulta que p0q para demostrar estos resultados, use, por ejemplo, inducci on sobre |x|. En
cambio, si x B

\, entonces toda cadena de reemplazos de z en x por 0, en alguna iteraci on


llevara nalmente a un x B

que no contiene z como subpalabra ya que los reemplazos


disminuyen la longitud de la palabra y x = 0 puesto que en caso contrario tendramos que
tener x .
C omo se puede usar este ultimo resultado para implementar una Maquina de Post que,
dado cualquier x B

, aclara si x o no? El siguiente Sistema de Post propone una re-


spuesta. La M aquina indicada es correcta, debido al Teorema recien demostrado y a que:
ssi la palabra computada x# en SOL ostenta x = 0, la Maquina responde SI;
y que en caso contrario se pasa al nodo BUS, donde:
ssi x no contiene la subpalabra z, la M aquina responde NO;
y en caso contrario, se determina p, q B

, tal que x = pzq;


y se vuelve a SOL con la palabra p0q#.
Debido a que la longitud de la palabra computada disminuye en cada iteracion, siempre se
llegar a a una detenci on, que s olo puede tener lugar en los nodos SI, NO. El que entonces las
respuestas son correctas, se demuestra por induccion.
|STA|, #|SOL|
|SOL|0#, |SI|
|SOL|, |BUS|
|BUS|<010>, 0|PAS|
|BUS|0, 0|BUS|
|BUS|1, 1|BUS|
|BUS|<, <|BUS|
|BUS|>, >|BUS|
|BUS|#, |NO|
|PAS|0, 0|PAS|
|PAS|1, 1|PAS|
|PAS|<, <|PAS|
|PAS|>, >|PAS|
|PAS|#, #|SOL|
0, 0
1, 1
<, <
11
>, >
#, #
7. Pendientes
Antes de retomar este Ejercicio, veamos que signica que un Sistema de Post (A, P) sea
parcial-funcional, o, como tambien se dice, determinista: El que la relacion de computo G
determine una funcion parcial, es equivalente a decir, que v A

existe a lo m as un (p, p

) P
tal que u A

con v = pu. Lo que es equivalente a decir que (p, p

), (q, q

) P, si r A

,
con pr = q, entonces (p, p

) = (q, q

). Por supuesto que esta caracterizacion es valida para todos


los otros sistemas computantes que hemos visto aqu; ya que son equivalentes a Sistemas de
Post.
Ahora note que el Sistema de Post que usamos en el ultimo Ejercicio, no es determinista,
porque si en alguna iteraci on se d a un estado interno de la forma |SOL|0y, entonces el Sistema
permite dos diferentes reemplazos: el que lleva a y|SI|, y el que lleva a 0y|BUS|. Lo primero
no debiera suceder, a menos que y = ; y en este caso, lo segundo no debiera suceder, porque
llevara a una detenci on en |NO|; lo que es un output erroneo, ya que 0 .
El que nuestro Emulador no produzca tales errores, se debe a que siempre escoje el primer
Par, en la lista P, que permite una iteraci on: que P es entendido como lista y no como conjunto
de Pares (que pueden ser recorridos y contemplados en cualquier orden). Eso explica el que
cuando y = , el c omputo se detenga en |SI|. Adem as, debido a que la Palabra Inicial |STA|x
no contiene signos , se puede asegurar que si en alguna iteraci on se tiene una Palabra |SOL|0y,
entonces necesariamente se tendra y = .
Note tambien que al menos en el ejemplo que estamos considerando, hubiese sido facil
dise nar un Sistema de Post parcial-funcional, es decir determinista P

, que haga lo mismo


que hace P. Dise nelo!
Ello no obstante, nos hemos apartado de la denicion de P como conjunto. Y (s olo) cuando
P no es determinista, la ejecucion determinista que resulta de recorrer P siempre en el mis-
mo orden que indica su interpretaci on como lista, corresponde a s olo una de las ejecuciones
que, seg un hemos planteado, la relaci on-conjunto P permite. No insitiremos aqu en esta prob-
lem atica del no-determinismo, porque preferimos dejarla para el Captulo 6.
As mismo hemos estado dejando pendiente otra cuestion ya aludida anteriormente. Vimos
que para toda M aquina de Post se puede construir un Sistema de Post que es sem anticamente
equivalente. Pero no discutimos la contraposici on de esa cuestion: Existe para todo Sistema
de Post una Maquina de Post sem anticamente equivalente? Es decir, dado un Sistema de Post,
podemos siempre dise nar una M aquina de Post como las caracterizamos al comienzo de este
Captulo, tal que para todo input al Sistema, la M aquina, inicializada con ese input, ostente
los mismos resultados que hubiera podido ostentar el Sistema?
No es difcil entender que ello es el caso. Esencialmente esta m aquina es una generalizaci on
de la que visualizabamos mas arriba; y se basa en dos nodos de asignaci on START y ASIGN-.
12
START s olo tiene una arista de salida que va a dar a ASIGN-, por la unica puerta de entrada,
marcada con , que este usara. Luego, colgado a este ultimo nodo, habr a que construir una
cascada de testeos, tal que p

P := {p; p

con (p, p

) P}, si la palabra procesada v comienza


con p, esto quede de maniesto. Entonces a las puertas de salida que corresponden a estos p

P,
basta colgarles secuencias de asignaciones que construyan los p

con (p, p

) P pueden haber
haber varias tales secuencias, colgadas en paralelo y luego pasen hacia adelante el resto de la
palabra v, hasta llegar a , momento en que el procesamiento se devuelve a ASIGN-.
Las otras salidas de la cascada las que no corresponden a

P deben ser complementadas
comos sigue: Si existe continuacion dentro de la cascada porque a un hay p

P que pueda ser
alcanzado, no agregar nada. Pero si lo ultimo no es el caso, hay que diferenciar dos subcasos:
Si la salida se da luego de haber pasado por alguna puerta que corresponde a un p

P,
simplemente agregar nuevamente lo que los testeos han cortado, pasar todo hacia adelante y
volver a ASIGN-. En cambio, si no se da el subcaso anterior, entonces, agregar lo que los
testeos han borrado, pasar resto hacia adelante, y detenerse cuando se ha leido .
La unica diferencia en terminos de procesamiento ser a que la maquina puede procesar in-
denidamente, a un cuando el sistema no lo hace nunca a partir de un determinado input. Pero
esta posibilidad adicional que en estos caso tiene la m aquina, ya que no lleva a detencion, no
altera el que los dos sistemas tengan las mismas relaciones input/output.
Adem as, esta diferencia procedural no se da, cuando los sistemas a emular son sistemas
parcial-funcionales, es decir, deterministas, porque excluyen arbitrariedad, aseguran a priori,
que siempre se dar a exactamente un procesamiento.
8. Ejercicios
8.1. Asignaci on o Testeo
Vimos, en la Secci on 2, que toda M aquina de Post M dene un Sistema de Cuartetos S
que para cualquier input x B

da lugar al mismo proceso de computo que hubiera ejecutado


la M aquina de Post. Sin embargo no todo Sistema de Cuartetos reeja una Maquina de Post;
porque para los cuartetos ((i, z), (z

, i

)) S s olo se demanda que i, i

I y z, z



B. Por lo
tanto el Sistema podra tambien ofrecer otra arista (j, w), (w

, j

)) S, tal que, o bien i = j


pero z = = w, o bien i

= j

pero z

= = w

. En estos casos los nodos i, i

no podran ser
ni de testeo ni de asignaci on.
Sin embargo para cualquier Sistema de Cuartetos S se puede dise nar una Maquina de Post
M que sea equivalente al Sistema, en la medida en que sus respectivas relaciones de input/output
en B

(I

B

) resulten iguales. Demuestrelo! al menos para el caso en que el c omputo del


Sistema nunca lleva a palabras computadas vacas.
Breve Soluci on
Una primera transformaci on del Sistema nos lleva a denir I

:= I

I, donde este conjunto

I contiene un nuevo nodo de asignacion



i por cada nodo original i I. Luego transformamos
13
todos los nodos originales quit andoles sus puertas de entrada etiquetadas por signos a A.
Por esto, es que debemos tambien desviar las aristas que entraban a tales puertas que hemos
eliminado, haciendolas llegar ahora a las puertas del correspondiente nodo de asignaci on creado

i

I, bajo la misma etiqueta a la cual estaba asociada dicha arista en el nodo original en
cambio las aristas que llegan a una puerta etiquetada por , no sufren modicaciones. Adem as,
creamos una nueva arista por cada nodo de asignaci on

i

I; una que sale de su unica puerta
de salida y entra por la unica puerta de entrada del correspondiente nodo original, ambas eti-
quetadas con .
Puesto que ning un computo se detendr a en alguno de las nodos de asignacion

i

I, est a claro
que la nueva M aquina es equivalente al Sistema, en cuanto a mantener esta relacion input-output
que se desea. S olo que los nodos originales i I, a pesar de que han sido transformados, a un no
son de testeo, porque y s olo por ello algunos ostentan puertas de salida, usadas por alguna
arista, etiquetadas con .
Debemos entonces eliminar dichas puertas de salida de los nodos originales, pero para ase-
gurarnos de que la m aquina resultante sera equivalente a la original, se debe simular de alguna
forma el c omputo que hubiera tenido lugar al usarse tal arista etiquetada con , pero ahora
usando las otras aristas etiquetadas con a A de ese nodo. Eliminamos, como dijimos, de
los nodos originales las puertas de salida etiquetadas con , y por cada arista que sala de esa
puerta, agregamos | A | nuevas aristas, cada una asociada a una puerta de salida etiquetada con
un a distinto en tal nodo. Todo esto es valido bajo la suposici on de que la palabra computada
en aquel momento por la maquina no es vaca (tal como se propuso considerar en el enunciado
de este problema); y que por lo tanto tiene una cabeza a A que, ahora cort andola, permite
usar la nueva arista creada.
Pues bien: para emular efectivamente lo que hubiera sucedido se debe restaurar, inmedi-
atamente despues de salir de alguna de las puertas de salida de un nodo original, la palabra
computada, agreg andole al inicio la cabeza a A cortada en la puerta de salida. Se hace nece-
sario para esto usar un signo auxiliar

\A, y dos nuevos nodos, uno de asignaci on seguido


por un nuevo nodo general que luego, en una siguiente transformacion de la m aquina, pode-
mos dividir en uno de asignacion seguido por uno de testeo. Entonces, la nueva arista creada
entrar a al nuevo nodo de asignaci on por una puerta asociada a

; luego pasara al nuevo nodo


general entrando por una puerta etiquetada con el elemento a cortado por la primera arista, y
abandonar a ese nodo solo cuando la cabeza sea

. Para esto ultimo se agregaran tantas nuevas


aristas como puertas de salida etiquetadas con a A tiene este nodo general, las cuales entrar an
en las puertas de entrada del mismo nodo con la misma etiqueta. Solo cuando ese nodo sea
abandonado denitivamente, se entrara al nodo y puerta que la arista de la maquina original
indicaba, con una palabra igual a la que se tendra si se hubiera usado la arista original que
iniciaba desde la puerta de salida etiquetada con .
Como nunca se dar a detenci on en los nuevos nodos, la m aquina obtenida sigue siendo
equivalente a la original. Al realizar una segunda transformacion de la maquina para transformar
14
los nuevos nodos generales agregados (si bien tambien es posible haber hecho todo esto en un
solo paso), se obtiene una m aquina con s olo nodos de asignaci on o testeo equivalente a la
original, siempre que, como supusimos arriba, en ning un momento la palabra computada sea
vaca porque en ese caso la transformaci on que acabamos de hacer no hubiera resultado
equivalente, ya que en la nueva M aquina el control no puede salir del nodo que queremos
convertir en de testeo. Tambien se tiene que, bajo consideraciones m as especcas, se puede
lograr que la transformaci on presentada sea mas economica, en cuanto a los recursos (nodos y
aristas) que contiene su especicaci on, controlando, por ejemplo, que los nodos que ya son de
asignaci on o testeo en la m aquina original, no originen nuevos nodos

i

I.
8.2. Duplicaci on de Palabras
Dise ne una maquina generadora de Post que duplique palabras, es decir, que alimentada con
cualquier palabra x {0, 1}

, nalmente se detenga en STOP generando la duplicacion xx


del input x.
8.3. Reemplazo de Palabras
Sea B := {0, 1} y (w, w

) B

. Dado x B

entenderemos que un x

sigue a x,
ssi (1.) (v, v

) B

, tal que x = vwv

y vw

= x

, y adem as (2.), (u, u

) B

con x = uwu

y uw

= x

, si y B

con uy = v, entonces y = .
Dise ne una maquina de Post que a partir de cualquier input x
0
B

, vaya generando
cuando el control de la m aquina se encuentre en un determinado nodo de output provisorio
una secuencia x
1
, x
2
, . . ., tal que j {1, 2, . . .}, x
j
sigue a x
j1
. Esto, hasta que resulte un
x
n
B

, tal que no exista x

que siga a x
n
. Entonces la m aquina debe detenerse en un
nodo de output nal ostentando la palabra x
n
.
Explique por que esta m aquina resultara determinista; que por lo tanto, dado x
0
, la secuen-
cia estara totalmente determinada.
Demuestre que ello no obstante, la secuencia puede resultar innita; que por lo tanto en
estos casos la m aquina no se detendr a nunca. Pero que si tenemos |w| |w

|, la no-detenci on
s olo es posible para el caso w = w

.
Finalmente presente una codicacion de su m aquina, que la especique como conjunto nito
de cuartetos ((i, z), (z

, i

)); de acuerdo a lo discutido en clases.


8.4. Retorno Posible
Un Sistema de Post sobre el alfabeto A := {0, 1}, es un conjunto nito
P := {(p
1
, q
1
), (p
2
, q
2
), . . . , (p
n
, q
n
)} de pares (p
j
, q
j
) A

. Para cada tal sistema P, sea

P := {(z
1
z
2
z
m
, w
1
w
2
w
m
); m 1, i {1, 2, . . . , m}, (z
i
, w
i
) P}.
15
Los c omputos que un tal sistema P puede realizar (en tiempo nito) a partir de una palabra
inicial x A

, son las secuencias nitas x


0
, x
1
, . . . , x
m
A

, tales que x = x
0
y i {1, . . . , m},
(z
i
, w
i
) P, v
i
A

con x
i1
= z
i
v
i
y v
i
w
i
= x
i
.
Demuestre que entonces vale z
1
z
2
z
m
x
m
= xw
1
w
2
w
m
. Que por lo tanto, si este
c omputo en alguna iteraci on retorna a la palabra inicial x, existir a (z, w)

P, tal que zx = xw.
Sin embargo esto ultimo no implica que x sea una palabra inicial a la cual se puede retornar.
De un contraejemplo.
En cambio la existencia de un v A

y un (z, w)

P con zv = vw, s implica como
deber a ir quedando claro la existencia de una palabra inicial x A

, a partir de la cual se
puede retornar.
Esto, porque si v A

con zv = vw, tambien debe existir un v con zv = vw y |v| |z| = |w|


demuestrelo; haciendo ver que si para el primer v vale |v| > |z|, entonces existe un u A

,
con zu = uw y |u| < |v|.
Y si existe un v con zv = vw y |v| |z|, tambien debe existir un u A

con vu = z y
w = uv demuestrelo.
Y nalmente, esto ultimo conlleva la existencia de un x A

que, inicializando el c omputo,


permite un retorno a x demuestrelo.
Por que todo esto implica que el problema de la existencia de un tal x que permite retorno,
es un problema computacionalmente semidecidible?
8.5. Maquina de Sort
Dise ne una Maquina de Post capaz de sortear secuencias nitas x {0, 1}

.
Es decir que, alimentada con cualquier input x := x
1
x
2
. . . x
n
{0, 1}

,
n N y i N := {1, 2, . . . , n}, x
i
{0, 1},
el computo que tal input gatilla, lleve a una detenci on;
y en ese momento la maquina ostente un output z := z
1
z
2
. . . z
n
valor de la palabra computada, tal que:
|{i N; z
i
= 1}| = |{i N; x
i
= 1}|, y i, j N, si z
i
= 0 y z
j
= 1, entonces i j.
Explique lo que su maquina hace. Demuestre que siempre logra el sorteo requerido.
8.6. Maquina Contadora
Dise ne una Maquina de Post capaz de contar los dgitos de cualquier x {0, 1}

.
Es decir que, alimentada con cualquier input x {0, 1}

,
el computo que tal input gatilla, lleve a una detenci on;
y en ese momento la maquina ostente un output z := z
0
z
1
z
m
{0, 1}

16
valor de la palabra computada, tal que:
|x| = {z
i
2
i
; i {0, 1, . . . , m}}, y si x = , entonces z
m
= 1;
es decir, que el output z sea una codicaci on binaria de la longitud |x| del input x
a pesar de que esta codicaci on no es la m as usual, porque para obtener aquella habra que
leer la palabra z de atras para adelante; pero no se preocupe de este detalle, que evidentemente
sera f acil de superar.
Explique lo que su maquina hace. Demuestre que siempre logra el conteo requerido.
8.7. Maquina Extensional
Dise ne una Maquina de Post capaz de producir la codicacion unaria de cualquier n umero
natural especicado binariamente a saber, a partir de una comprension del n umero, producir
una extension del mismo.
Es decir que, alimentada con cualquier input x := x
m
x
m1
x
1
x
0
{0, 1}

, m N,
el computo que tal input gatilla, lleve a una detenci on;
y en ese momento la m aquina ostente un output z {0}

una palabra computada de s olo


ceros, tal que: |z| = {x
i
2
i
; i {0, 1, . . . , m}};
es decir, que el output z sea una codicacion unaria del n umero natural que codica binaria-
mente el input x a pesar de que esta codicaci on binaria no es la mas usual, porque para
obtener aquella habra que cortar todos los ceros que nos son precedidos por alg un uno.
Su maquina puede basarse en el siguiente resultado matematico:
Si y := y
n
y
1
y
0
{0, 1}

, denimos g(y) := {y
i
2
i
; i {0, 1, . . . , n}} N, entonces,
y := y
n
y
1
y
0
{0, 1}

y s {0, 1}, g(ys) = 2 g(y) +s.


Explique lo que su maquina hace. Demuestre que siempre produce la extension requerida.
8.8. Operaciones en Arboles Binarios
Considere los arboles binarios vistos en Ejercicio 6 de este Captulo, y preguntemonos si
las operaciones basicas del tipo de datos arbol binario, pueden ser implementadas mediante
M aquinas de Post. Estas operaciones basicas, sin incluir la distincion del arbol 0, son tres:
La primera corresponde a la funci on (total) de composicion binaria c : , que
para cualquier par (v, w) entrega la composicion c(v, w) :=< v1w > .
M as all a de esta composicion, el tipo de datos que nos interesa solo conoce las dos opera-
ciones unarias p, q : , que son funciones parciales, puesto que s olo est an denidas para
los x con x = 0. En tales casos sabemos que existe un unico par (v, w) , tal que
x =< v1w >; y entendemos que p(x) := v entrega el lado izquierdo de x y q(x) := w entrega el
17
lado derecho de x.
Pues bien; lo que Usted ahora debe hacer, es dise nar tres M aquinas de Post que implementen
las funciones denidas; una para cada una de las tres operaciones b asicas. Ello, comenzando
con la composicion; donde entenderemos que dado un par (v, w) , el input a la M aquina
tendr a la forma v#w.
Luego considere la determinaci on del lado derecho q(x) de un input x . Y nalmente,
la del lado izquierdo p(x). Note que en estos dos casos, tambien debe aclarar, si x es el arbol
distinguido 0 o no.
Explique en cada caso detenidamente que hace la M aquina. Demuestre que efectivamente
hace lo que debe hacer.
Para nalmente denir la tres M aquinas requeridas, especifquelas como Sistemas de
Post.
Referencias
[Pen91] Roger Penrose. La nueva mente del emperador. Grijalbo Mondadori, 1991.
[vEB90] P. van Emde Boas. Machine models and simulations. In [vLE90], chapter 1. The MIT
Press/Elsevier, 1990.
[vLE90] J. van Leeuwen (Ed.). Handbook of Theoretical Computer Science: Algorithms and
Complexity, volume A. The MIT Press/Elsevier, 1990.
18

Вам также может понравиться