3.3 Conjuntos Σ-efectivamente enumerables

Un conjunto Sωn×Σm sera llamado Σ-efectivamente enumerable cuando sea vacio o haya una funcion F:ωωn×Σm tal que IF=S y F(i) sea Σ-efectivamente computable, para cada i{1,...,n+m}. Notese que para el caso n=m=0, la condicion de que F(i) sea Σ-efectivamente computable, para cada i{1,...,n+m} se cumple vacuamente y por lo tanto la definicion anterior nos dice que un conjunto Sω0×Σ0={} sera Σ-efectivamente enumerable sii es vacio o hay una funcion Σ-efectivamente computable F:ω{}, tal que IF=S. Por supuesto, esto nos dice que y {} son Σ-efectivamente enumerables.

El siguiente resultado nos permite entender mejor la idea subyacente a esta definicion.

3.7. Un conjunto no vacio Sωn×Σm es Σ-efectivamente enumerable sii hay un procedimiento efectivo P tal que

  1. (1) El conjunto de datos de entrada de P es ω

  2. (2) P se detiene para cada xω

  3. (3) El conjunto de datos de salida de P es igual a S. (Es decir, siempre que P se detiene, da como salida un elemento de S, y para cada elemento (x,α)S, hay un xω tal que P da como salida a (x,α) cuando lo corremos con x como dato de entrada)

Proof. El caso n=m=0 es facil y es dejado al lector. Supongamos entonces que n+m1.

() Supongamos que Sωn×Σm es Σ-efectivamente enumerable. Ya que S es no vacio, por definicion hay una funcion F:ωωn×Σm tal que IF=S y cada F(i) es Σ-efectivamente computable. Para cada i{1,...,n+m} sea Pi un procedimiento efectivo que compute a F(i). Notar que cada Pi tiene a ω como conjunto de datos de entrada y siempre termina. Sea P el siguiente procedimiento efectivo, con conjunto de datos de entrada igual a ω y conjunto de datos de salida contenido en ωn×Σm.

Etapa 1: Correr P1 con dato de entrada x y alojar el dato de salida en la variable X1

Etapa 2: Correr P2 con dato de entrada x y alojar el dato de salida en la variable X2

    

Etapa n: Correr Pn con dato de entrada x y alojar el dato de salida en la variable Xn

Etapa n+1: Correr Pn+1 con dato de entrada x y alojar el dato de salida en la variable A1

Etapa n+2: Correr Pn+2 con dato de entrada x y alojar el dato de salida en la variable A2

    

Etapa n+m: Correr Pn+m con dato de entrada x y alojar el dato de salida en la variable Am

Etapa n+m+1: Detenerse y dar (X1,...,Xn,A1,...,Am) como dato de salida

Dejamos al lector la verificacion de que el procedimiento P es efectivo y cumple las propiedades (1), (2) y (3).

() Supongamos P es un procedimiento efectivo el cual cumple las propiedades (1), (2) y (3). Definamos F:ωωn×Σm, de la siguiente manera: F(x)= dato de salida de P cuando lo corremos desde x Notar que para cada i{1,...,n+m} la funcion F(i) es Σ-efectivamente computable ya que el siguiente procedimiento efectivo la computa:

Etapa 1: Correr P desde x y guardar la salida en la variable V

Etapa 2: Dar como salida la coordenada i-esima de V  


Cuando un procedimiento P cumpla (1), (2) y (3) del lema anterior, diremos que P enumera a S. O sea que S es Σ-efectivamente enumerable sii es vacio o hay un procedimiento efectivo el cual enumera a S.

Dicho de otra forma un conjunto no vacio S es Σ-efectivamente enumerable sii hay un procedimiento efectivo P el cual tiene conjunto de datos de entrada ω y ademas para los sucesivos datos de entrada 0,1,2,3,..., el procedimiento P produce respectivamente los datos de salida e0,e1,e2,e3,... de manera que S={e0,e1,e2,...}. Cabe destacar aqui que puede suceder que ei=ej, para ciertos i,j, con ij.

Algunos ejemplos:

  1. E1 El conjunto S={xω:x es par} es Σ-efectivamente enumerable, cualesquiera sea Σ. El siguiente procedimiento enumera a S:

    1. - Calcular 2x, darlo como dato de salida y terminar.

  2. E2 Un procedimiento que enumera ω×ω es el siguiente:

    Etapa 1

    Si x=0, dar como salida el par (0,0) y terminar. Si x0, calcular x1=(x)1 y x2=(x)2.

    Etapa 2

    Dar como dato de salida el par (x1,x2) y terminar

    Como puede notarse el procedimiento es efectivo y ademas el conjunto de datos de salida es ω×ω ya que si tomamos un par cualquiera (a,b)ω×ω, el procedimiento lo dara como dato de salida para la entrada x=2a3b.

  3. E3 Veamos que ω2×Σ3 es Σ-efectivamente enumerable cualquiera sea el alfabeto no vacio Σ. Sea un orden total para el alfabeto Σ. Utilisando el orden podemos diseñar el siguiente procedimiento para enumerar ω2×Σ3:

    Etapa 1

    Si x=0, dar como salida (0,0,ε,ε,ε) y terminar. Si x0, calcular

    x1=(x)1

    x2=(x)2

    α1=((x)3)

    α2=((x)4)

    α3=((x)5)

    Etapa 2

    Dar como dato de salida la 5-upla (x1,x2,α1,α2,α3).

3.8. Sean S1,S2ωn×Σm conjuntos Σ-efectivamente enumerables. Entonces S1S2 y S1S2 son Σ-efectivamente enumerables.

Proof. El caso en el que alguno de los conjuntos es vacio es trivial. Supongamos que ambos conjuntos son no vacios y sean P1 y P2 procedimientos que enumeran a S1 y S2. El siguiente procedimiento enumera al conjunto S1S2:

  1. - Si x es par realizar P1 partiendo de x/2 y dar el elemento de S1 obtenido como salida. Si x es impar realizar P2 partiendo de (x1)/2 y dar el elemento de S2 obtenido como salida.

Veamos ahora que S1S2 es Σ-efectivamente enumerable. Si S1S2= entonces no hay nada que probar. Supongamos entonces que S1S2 es no vacio. Sea e0 un elemento fijo de S1S2. Sea P un procedimiento efectivo el cual enumere a ω×ω (ver el ejemplo de mas arriba). Un procedimiento que enumera a S1S2 es el siguiente

Etapa 1

Realizar P con dato de entrada x, para obtener un par (x1,x2)ω×ω.

Etapa 2

Realizar P1 con dato de entrada x1 para obtener un elemento e1S1

Etapa 3

Realizar P2 con dato de entrada x2 para obtener un elemento e2S2

Etapa 4

Si e1=e2, entonces dar como dato de salida e1. En caso contrario dar como dato de salida e0.

Dejamos al lector la prueba de que este procedimiento enumera a S1S2.  


Dejamos al lector la prueba del siguiente resultado.

3.9. Supongamos S1,...,Snω, L1,...,LmΣ son conjuntos no vacios. Entonces S1×...×Sn×L1×...×Lm es Σ-efectivamente enumerable sii S1,...,Sn,L1,...,Lm son Σ-efectivamente enumerables

3.10. Si Sωn×Σm es Σ-efectivamente computable entonces S es Σ-efectivamente enumerable.

Proof. Supongamos S. Sea (z,γ)S, fijo. Sea P un procedimiento efectivo que compute a χSωn×Σm. Ya vimos en el ejemplo anterior que ω2×Σ3 es Σ-efectivamente enumerable. En forma similar se puede ver que ωn×Σm lo es. Sea P1 un procedimiento efectivo que enumera a ωn×Σm. Entonces el siguiente procedimiento enumera a S:

Etapa 1

Realizar P1 con x de entrada para obtener (x,α)ωn×Σm.

Etapa 2

Realizar P con (x,α) de entrada para obtener el valor Booleano e de salida.

Etapa 3

Si e=1 dar como dato de salida (x,α). Si e=0 dar como dato de salida (z,γ).  


Como veremos mas adelante en la materia (Proposicion 4.15), hay conjuntos que son Σ-efectivamente enumerables y no Σ-efectivamente computables. Sin envargo tenemos el siguiente interesante resultado:

3.1. Sea Sωn×Σm. Son equivalentes

  1. (a) S es Σ-efectivamente computable

  2. (b) S y (ωn×Σm)S son Σ-efectivamente enumerables

Proof. (a)(b). Por el lema anterior tenemos que S es Σ-efectivamente enumerable. Notese ademas que, dado que S es Σ-efectivamente computable, (ωn×Σm)S tambien lo es (por que?). Es decir que aplicando nuevamente el lema anterior tenemos que (ωn×Σm)S es Σ-efectivamente enumerable.

(b)(a). Si S= o S=ωn×Σm es claro que se cumple (a). O sea que podemos suponer que ni S ni ωn×Σm son igual al conjunto vacio. Sea P1 un procedimiento efectivo que enumere a S y sea P2 un procedimiento efectivo que enumere a (ωn×Σm)S. Es facil ver que el siguiente procedimiento computa el predicado predicado χSωn×Σm:

Etapa 1

Darle a la variable T el valor 0.

Etapa 2

Realizar P1 con el valor de T como entrada para obtener de salida la upla (y,β).

Etapa 3

Realizar P2 con el valor de T como entrada para obtener de salida la upla (z,γ).

Etapa 4

Si (y,β)=(x,α), entonces detenerse y dar como dato de salida el valor 1. Si (z,γ)=(x,α), entonces detenerse y dar como dato de salida el valor 0. Si no suceden ninguna de las dos posibilidades antes mensionadas, aumentar en 1 el valor de la variable T y dirijirse a la Etapa 2.  


Supongamos que k,l,n,mω y que F:DFωk×Σlωn×Σm. Supongamos ademas que n+m1. Entonces denotaremos con F(i) a la funcion pin,mF. Notar que F(i):DFωk×Σlω, para cada i=1,...,nF(i):DFωk×ΣlΣ, para cada i=n+1,...,n+m Por lo cual cada una de las funciones F(i) son Σ-mixtas. Ademas notese que F=[F(1),...,F(n+m)]

3.2. Dado Sωn×Σm, son equivalentes

  1. (1) S es Σ-efectivamente enumerable

  2. (2) S=IF, para alguna F:DFωk×Σlωn×Σm tal que cada F(i) es Σ-efectivamente computable.

  3. (3) S=Df, para alguna funcion f la cual es Σ-efectivamente computable.

Proof. El caso n=m=0 es facil y es dejado al lector. Supongamos entonces que n+m1.

(1)(2) es trivial.

(2)(3). Para i=1,...,n+m, sea Pi un procedimiento el cual computa a F(i) y sea P un procedimiento el cual enumere a ω×ωk×Σl. El siguiente procedimiento computa la funcion f:IF{1}:

Etapa 1

Darle a la variable T el valor 0.

Etapa 2

Hacer correr P con dato de entrada T y obtener (t,z1,...,zk,γ1,...,γl) como dato de salida.

Etapa 3

Para cada i=1,...,n+m, hacer correr Pi durante t pasos, con dato de entrada (z1,...,zk,γ1,...,γl). Si cada procedimiento Pi al cabo de los t pasos termino y dio como resultado el valor oi, entonces comparar (x,α) con (o1,...,on+m) y en caso de que sean iguales detenerse y dar como dato de salida el valor 1. En el caso en que no son iguales, aumentar en 1 el valor de la variable T y dirijirse a la Etapa 2. Si algun procedimiento Pi al cabo de los t pasos no termino, entonces aumentar en 1 el valor de la variable T y dirijirse a la Etapa 2.

(3)(1). Supongamos S. Sea (z,γ) un elemento fijo de S. Sea P un procedimiento el cual compute a f. Sea P1 un procedimiento el cual enumere a ω×ωn×Σm. Dejamos al lector el diseño de un procedimiento efectivo el cual enumere Df.  


Dejamos como ejercicio la prueba de los dos siguientes lemas.

3.11. Sean n,mω y O{ω,Σ}. Supongamos f:Dfωn×ΣmO es Σ-efectivamente computable y SIf es Σ-efectivamente enumerable, entonces f1(S)={(x,α):f(x,α)S} es Σ-efectivamente enumerable

Sean n,mω y O{ω,Σ}. Supongamos f:Dfωn×ΣmO es Σ-efectivamente computable y SDf es Σ-efectivamente enumerable, entonces f|S es Σ-efectivamente computable