Teor´ıa de la Computabilidad Composición y recursión primitiva

Anuncio
Composición y recursión primitiva
Definición
Sea f : Nk → N y g1 , . . . , gk : Nn → N. h : Nn → N se obtiene a
partir de f y g1 , . . . , gk por composición si
Teorı́a de la Computabilidad
h(x1 , . . . , xn ) = f (g1 (x1 , . . . , xn ), . . . , gk (x1 , . . . , xn ))
Primer cuatrimestre 2010
Departamento de Computación - FCEyN - UBA
Definición
clase 1
h : Nn+1 → N se obtiene de g : Nn+2 → N y f : Nn → N por
recursión primitiva si
Funciones Primitivas recursivas, iteración, esqueleto de funciones
primitivas recursivas, recursión anidada en varias variables
h(x1 , . . . , xn , 0) = f (x1 , . . . , xn )
h(x1 , . . . , xn , t + 1) = g (t, x1 , . . . , xn , h(x1 , . . . , xn , t))
1
Funciones primitivas recursivas P1
2
Recursión anidada en una variable
Definición
f se define a partir de g1 , . . . , gn por recursión anidada en una
variable si
Funciones iniciales
I
O(x) = 0
I
S(x) = x + 1
I I n (x1 , . . . , xn )
i
f (~x , 0) = g (~x )
f (~x , y ) = h(~x , y )
= xi para todo n ≥ 1 y i ∈ {1, . . . , n}
donde h(~x , y ) es un término numérico construido por
Definición
La clase P1 de funciones primitivas recursivas es la clase de
funciones más chica:
I
números naturales n
I
las variables ~x e y
I
conteniendo las funciones iniciales
I
el sı́mbolo f
I
cerrada por composición
I
I
cerrada por recursión primitiva
los valores de f usados en la definición de f (~x , y ) son de la
forma f (~t, s) donde s tiene un valor numérico < y
Teorema
P1 está cerrada por recursión anidada en una variable.
3
4
Caracterización alternativa de P1
Caracterización alternativa de P1 (demo)
Sea C la clase más chica de funciones que satisfacen las
condiciones del teorema.
C ⊆ P1 Las funciones de codificación y decodificación son primitivas
recursivas. La iteración f (x, n) = t (n) (x) es un caso especial
de recursión primitiva:
Definición
Una función f se define por iteración a partir de t si
f (x, n) = t (n) (x)
f (x, 0) = x
donde t (n) denota el resultado de n aplicaciones sucesivas de t (por
convención t (0) (x) = x).
f (x, n + 1) = t(f (x, n))
P1 ⊆ C Hay que ver que C es cerrada por recursión primitiva.
Observar que C tiene cod./decod. de pares y composición, por
lo tanto tiene cod./decod. de n-uplas para cualquier n fijo.
Sean g , h ∈ C y sea f definida como
Teorema
La clase de funciones primitivas recursivas es la clase más chica:
I
conteniendo las funciones iniciales y funciones de codificación
y decodificación de pares
I
cerrada por composición
I
cerrada por iteración
f (~x , 0) = g (~x )
f (~x , y + 1) = h(~x , y , f (~x , y ))
Basta ver que esta función está en C:
s(~x , n) = h~x , n, f (~x , n)i
5
La función
6
La familia de funciones (hn )n∈N
s(~x , 0) = h~x , 0, f (~x , 0)i
= h~x , 0, g (~x )i
Sea
está en C porque g y h·i están en C. Podemos transformar
h0 (x) = x + 1
s(~x , n) = h~x , n, f (~x , n)i
| {z }
y
(x)
hn+1 (x) = hn (x)
Proposición
z
x ≤ hn (x).
en
Demostración.
s(~x , n + 1) = h~x , n + 1, f (~x , n + 1)i
Por inducción en n. Para n = 0 es trivial. Para n + 1, suponer
(∀z) z ≤ hn (z). Es fácil probar por inducción en m que
(m)
x ≤ hn (x). En particular
= h~x , n + 1, h(~x , n, f (~x , n))i
| {z }
z
con esta función, que también está en C:
(x)
x ≤ hn (x) = hn+1 (x).
t(~x , n, z) = h~x , n + 1, h(~x , n, z)i.
Como C está cerrada por iteración, está en C esta función:
s(~x , n) = t (n) (s(~x , 0)).
7
8
Propiedades de (hn )n∈N
Propiedades de (hn )n∈N
Proposición
Proposición
Si n ≤ m y x > 0 entonces hn (x) ≤ hm (x).
Si x ≤ y entonces hn (x) ≤ hn (y ).
Demostración.
Demostración.
(x)
Basta probar (∀x > 0) hn (x) ≤ hn+1 (x) = hn (x).
(m)
Basta probar hn (z) ≤ hn (z) por inducción en m > 0.
Para m = 1 es trivial. Para m + 1,
Por inducción en n. Para n = 0 es trivial. Para n + 1,
hn+1 (x)
hn (z)
≤
≤
=
(m)
hn (z)
(m)
hn (hn (z))
(m+1)
hn
(z)
(x)
=
≤
≤
=
por HI
por Proposición de pág. 8
hn (x)
(y )
hn (x)
(y )
hn (y )
hn+1 (y ).
por Proposición de pág. 8 (y − x veces)
por HI (y veces)
9
Propiedades de (hn )n∈N
10
Propiedades de (hn )n∈N
Proposición
Proposición
h1 (x) = 2x.
h2 (x) = x · 2x .
Demostración.
Demostración.
Basta probar h0 (x) = x + m por inducción en m. Para m = 0 es
trivial. Para m + 1,
Basta probar h1 (x) = x · 2m por inducción en m. Para m = 0 es
trivial. Para m + 1,
(m)
(m+1)
h0
(x)
=
=
=
=
(m)
(m)
h0 (h0 (x))
h0 (x + m)
(x + m) + 1
x + (m + 1).
(m+1)
h1
por HI
porque h0 (z) = z + 1
11
(x)
=
=
=
=
(m)
h1 (h1 (x))
h1 (x · 2m )
(x · 2m ) · 2
x · 2m+1
por HI
porque h1 (z) = 2z
12
Todas las hn son primitivas recursivas
Cada función primitiva recursiva es dominada por alguna hn
Teorema
Para cada f primitiva recursiva, hay un n tal que f (~x ) ≤ hn (
para casi todo ~x .
P
~x )
Demostración.
Por inducción en la caracterización alternativa de P1 (pág. 5).
Veamos que:
Teorema
Para cada n, hn es primitiva recursiva.
Demostración.
Obvio, pues la función sucesor está en P1 y P1 está cerrada por
iteración.
I
las funciones iniciales y las funciones de codificación y
decodificación lo cumplen
I
si h, g1 , . . . , gm lo cumplen,
f (~x ) = h(g1 (~x ), . . . , gm (~x ))
también lo cumple
I
si t lo cumple,
f (x, y ) = t (y ) (x)
13
también lo cumple.
14
Cada función primitiva recursiva es dominada por alguna hn
Cada función primitiva recursiva es dominada por alguna hn
Funciones iniciales, codificación y decodificación
Composición
I
I
I
Supongamos que
O(x) = 0 está dominada por h0
S(x) = x + 1 está dominada por h0
Iin (x1 , . . . , xn ) = xi está dominada por h0 porque
X
Iin (x1 , . . . , xn ) ≤
xj
f (~x ) = h(g1 (~x ), . . . , gm (~x ))
y por HI tenemos que para un n ≥ 2Psuficientemente grande (usar
ProposiciónPde pág. 9), gi (~x ) ≤ hn ( ~x ) para casi todo ~x y
h(~y ) ≤ hn ( ~y ) para casi todo ~y .
j


X
≤ h0 
xj 
f (x)
j
I
hx, y i = 2x (y + 1) − 1 está dominada por h2 porque
h2 (x + y ) = (x + y ) · 2x+y ≥ 2x (y + 1) − 1
I
para casi todo x, y .
π1 (x), π2 (x) ≤ x, dominadas por h0 (x)
15
=
≤
≤
=
≤
≤
=
≤
=
h(gP
x ), . . . , gm (~x ))
1 (~
hn ( 1≤i≤m gi (~x ))
P
P
hn ( 1≤i≤m hn ( ~x ))
P
hn (m · hn (P ~x ))
hn (h2 (hn (P ~x )))
hn (hn (hn ( ~x )))
(3) P
hnP( ~x )
( ~x ) P
hn P
( ~x )
hn+1 ( ~x )
por HI sobre h
por HI sobre gi y Prop. pág. 10
P
si m ≤ ~x y porque h2 (z) = z · 2z
por n ≥ 2 y Props. págs. 9 y 10
si 3 ≤
P
~x y Prop. pág. 8
16
Cada función primitiva recursiva es dominada por alguna hn
Iteración
La función diagonal domina a cualquier primitiva recursiva
Teorema
La función diagonal d(x) = hx (x) domina toda función primitiva
recursiva N → N.
Demostración.
Supongamos que
f (x, y ) = t
(y )
Sea f una función primitiva recursiva. Existe n tal que para casi
todo x,
(x)
y por HI para algún n, t(x) ≤ hn (x) para casi todo x.
f (x, y )
=
≤
≤
=
t (y ) (x)
(y )
hn (x)
(x+y )
hn
(x + y )
hn+1 (x + y )
f (x)
por HI y veces y Prop. pág. 10
por Props. págs. 8 y 10
≤
≤
=
hn (x)
hx (x)
d(x)
si x > n y por Prop. de pág. 9
Entonces para casi todo x, f (x) ≤ d(x).
Corolario
d no es primitiva recursiva.
Demostración.
17
Si lo fuera, d(x) + 1 también lo serı́a. Por teorema anterior, para
casi todo x tenemos d(x) + 1 ≤ d(x). Absurdo.
18
Funciones n-primitivas recursivas Pn
Recursión anidada en n variables
Sea ≤lex el orden lexicográfico de Nn .
Definición
f se define a partir de g1 , . . . , gn por recursión anidada en n
variables si
f (~x , ~0) = g (~x )
f (~x , ~y ) = h(~x , ~y )
Definición
La clase Pn de funciones n-primitivas recursivas es la clase de
funciones más chica:
(~0 ∈ Nn )
(~y ∈ Nn , ~y 6= ~0)
donde h(~x , ~y ) es un término numérico construido por
I
números naturales
I
las variables ~x e ~y
I
el sı́mbolo f
I
los valores de f usados en la definición de f (~x , ~y ) son de la
forma f (~t,~s ) donde ~s ∈ Nn tiene un valor numérico <lex ~y .
19
I
conteniendo las funciones iniciales
I
cerrada por composición
I
cerrada por recursión anidada en a lo sumo n variables
20
P1 no está cerrado por recursión anidada en 2 variables
Jerarquı́a de funciones n-recursivas
Teorema
P1 ⊂ P2 .
Demostración.
Las funciones (hn )n∈N se pueden describir ası́:
hn(0) (x)
h0 (x) = x + 1
hn+1 (x) =
hn(x) (x)
hn(z+1) (x)
El resultado anterior se puede generalizar.
= x
=
hn (hn(z) (x))
Teorema
(z)
hn (x)
Para todo n, Pn ⊂ Pn+1 .
Se pueden ver como una única función h(n, z, x) =
definidas por recursión anidada en las variables n y z (pensar hn
(1)
como hn ):
h(n, 0, x) =
x
h(n + 1, 1, x)
h(0, 1, x) = x + 1
h(n, z + 1, x)
Si h fuese primitiva recursiva, también lo serı́a
= h(n, x, x)
= h(n, 1, h(n, z, x))
d(x) = hx (x) = h(x, 1, x)
y esto contradice el Teorema de pág. 18.
21
22
Descargar