Uma vez que a L´ogica Combinat´oria pode ser vista como uma Linguagem de Pro- grama¸c˜ao, ent˜ao deve poder representar as fun¸c˜oes efectivamente comput´aveis, isto ´e, as fun¸c˜oes parciais recursivas. De facto isto ´e verdade, como passamos a provar.
Tese de Church: A classe das fun¸c˜oes efectivamente comput´aveis ´e precisa- mente a classe das fun¸c˜oes parciais recursivas.
O leitor poder´a consultar o Apˆendice A onde se faculta uma abordagem destes assuntos. Optamos por coloc´a-los em Apˆendice pois para um leitor familiarizado com os mesmos tornaria a leitura desta sec¸c˜ao um pouco cansativa.
Quanto `a nota¸c˜ao necess´aria a esta sec¸c˜ao: para cada k ≥ 1, Nkdenota o produto
cartesiano de k factores de N, isto ´e, Nk = N × ... × N
| {z }
k vezes
. Logo N1 ´e N. O caso em que k = 0 corresponde `as constantes naturais. Em geral, tamb´em usamos as seguintes abreviaturas:
• para quaisquer x1, ..., xk ∈ N para cada x1 ∈ N, ..., xk ∈ N
• quando n˜ao ´e necess´ario especificar k, escrevemos −→x para denotar o k-uplo (x1, ..., xk) ∈ Nk.
Uma fun¸c˜ao num´erica k-´aria, ou fun¸c˜ao num´erica de aridade k, digamos f , ´e uma fun¸c˜ao do tipo f : X ⊆ Nk → N. Como nesta sec¸c˜ao apenas iremos trabalhar
com fun¸c˜oes num´ericas de aridade k, por vezes apenas escrevemos fun¸c˜ao k-´aria ou at´e fun¸c˜ao. As fun¸c˜oes ser˜ao normalmente representadas pelas letras min´usculas f , g, h, etc, mas por vezes utilizamos tamb´em letras gregas, com vista a evidˆenci´a-las perante outras.
Sendo f uma fun¸c˜ao num´erica k-´aria, dizemos que f est´a definida para o k- uplo (x1, ..., xk) ∈ Nk, denota-se por f (x1, ..., xk) ↓, quando existe n ∈ N tal
que f (x1, ..., xk) = n; caso contr´ario diz-se que f n˜ao est´a definida para o k-uplo
(x1, ..., xk) ∈ Nk e escrevemos f (x1, ..., xk) ↑ .
Uma fun¸c˜ao n´umerica k-´aria que n˜ao est´a definida para algum k-uplo (x1, ..., xk) ∈
Nk, diz-se propriamente parcial; caso contr´ario, diz-se total. Como usual, uma fun¸c˜ao num´erica k-´aria parcial n˜ao ´e mais que uma fun¸c˜ao propriamente parcial ou total. Utilizamos a nota¸c˜ao f : Nk* N para afirmar que f ´e uma fun¸c˜ao num´erica,
k-´aria, parcial.
Dadas duas fun¸c˜oes num´ericas f e g, de aridade k, escrevemos f (x1, ..., xk) '
g (x1, ..., xk) para afirmar que f (x1, ..., xk) est´a definida se e somente se g (x1, ..., xk)
n˜ao est´a definida para um determinado k-uplo, tamb´em a outra n˜ao o est´a para esse k-uplo.
Defini¸c˜ao 38 Seja f uma fun¸c˜ao num´erica parcial k-´aria, arbitr´aria.
Dizemos que f ´e definivel combinatorialmente, ou ainda f ´e definiv´el-LC, se existe um termo F tal que, para quaisquer x1, ..., xk ∈ N se tem:
i) F x1...xk=w f (x1, ..., xk), se f (x1, ..., xk) ↓;
ii) F x1...xk n˜ao ´e normaliz´avel, se f (x1, ..., xk) ↑ .
Caso uma fun¸c˜ao parcial k-´aria f seja definiv´el-LC por um termo F , tamb´em afirmamos que o termo-LC F define-LC a fun¸c˜ao f .
Pela defini¸c˜ao, caso o termo F defina-LC uma fun¸c˜ao parcial f , ent˜ao est´a garan- tido, para qualquer k-uplo (n1, ..., nk) tal que f (n1, ..., nk) ↓, que F n1...nk ´e norma-
liz´avel, pelo Corol´ario 27, al´ınea a), j´a que F n1...nk =w f (n1, ..., nk), f (n1, ..., nk) ´e
um numeral e qualquer numeral est´a na forma normal. Por esta raz˜ao, na defini¸c˜ao 38 podemos mesmo substituir, na al´ınea i), =w por w. Al´em disso, o processo de
normaliza¸c˜ao providˆencia um algoritmo para calcular a fun¸c˜ao f num dado “input”. Basta ir efectuando sistematicamente todas as redu¸c˜oes poss´ıveis. Caso f esteja de- finida nesse input, sabemos que este processo p´ara num numeral, o qual d´a o valor da fun¸c˜ao; caso contr´ario, o processo n˜ao termina.
Quando uma fun¸c˜ao k-´aria ´e total, afirmar que a fun¸c˜ao ´e defin´ıvel combinatori- almente ´e garantir a existˆencia de um termo F que satisfaz a al´ınea i) da defini¸c˜ao acima, pois a fun¸c˜ao est´a definida para qualquer −→x ∈ Nk.
Conforme referimos, vejamos que toda a fun¸c˜ao parcial recursiva ´e defin´ıvel com- binatorialmente, pelo que as fun¸c˜oes num´ericas definiveis combinatorialmente con- cordam com a no¸c˜ao de computabilidade efectiva, permitindo abordar o estudo da computabilidade no contexto da L´ogica Combinat´oria.
Defini¸c˜ao 39 A classe F RP RIM das fun¸c˜oes primitivas recursivas ´e a me-
nor classe:
• que cont´em as seguintes fun¸c˜oes totais designadas por fun¸c˜oes at´omicas: I) A fun¸c˜ao constante nula Zero : N → N tal que, para todo n ∈ N, Zero (n) = 0; II) A fun¸c˜ao Sucessor Suc : N → N tal que, para todo o n ∈ N, Suc (n) = n + 1;
III) Para todo k ≥ 1 e cada 1 ≤ i ≤ k, a fun¸c˜ao projec¸c˜ao Pik : Nk → N tal que, para qualquer k-uplo (n1, ..., nk) tem-se Pik(n1, ..., nk) = ni.
• e ´e fechada para:
IV) a composi¸c˜ao: se g : Nk → N pertence a FR
P RIM e para cada 1 ≤ i ≤ k, hi :
Nj → N s˜ao elementos de FRP RIM, ent˜ao a fun¸c˜ao f : Nj → N , em que para
qualquer (n1, ..., nj) ∈ Nj se tem f (n1, ..., nj) = g (h1(n1, ..., nj) , ..., hk(n1, ..., nj)),
pertence a F RP RIM.. Diz-se que f se obt´em por composi¸c˜ao a partir de g e
h1, ..., hk, e denota-se por f = go hh1, ..., hki .
V) e a recurs˜ao primitiva: se g : Nk → N e h : Nk+2 → N pertencem a FR P RIM,
ent˜ao a fun¸c˜ao f : Nk+1 → N tal que que para qualquer y ∈ N e x
1, ..., xk∈ N
se tem
f (0, x1, ..., xk) = g (x1, ..., xk)
f (y + 1, x1, ..., xk) = h (y, f (y, x1, ..., xk) , x1, ..., xk)
pertence a F RP RIM. Diz-se que f se obt´em por recurs˜ao a partir de g e h e
denotamos por f = rec (g, h) .
Lema 40 Qualquer fun¸c˜ao at´omica φ ´e defin´ıvel combinatorialmente por um com- binador φ que est´a na forma normal.
Demonstra¸c˜ao. Sendo φ ´e uma fun¸c˜ao at´omica, ent˜ao: I) Para φ = Zero basta considerar Zero ≡Q I;
II) Para φ = Suc, tomamos Suc ≡P B; III) Para φ = Pk
i , para todo k ≥ 1 e cada 1 ≤ i ≤ k, consideramos Pik ≡ λx1...xk.xi.
´
E imediato que todos os termos indicados est˜ao na forma normal.
Lema 41 Existe um termo R que satisfaz a seguinte propriedade para quaisquer X, Y e k
(
RXY 0 =w X
RXY k + 1 =w Y k RXY k
Demonstra¸c˜ao. Para uma melhor compreens˜ao de como construimos o combinador R, consideremos a seguinte fun¸c˜ao primitiva recursiva φ definida por recorrˆencia: φ (0) = m e φ (k + 1) = ϕ (k, φ (k)), com ϕ uma fun¸c˜ao primitiva recursiva.
Para calcular φ (k) vamos considerar o par ordenado (0, φ (0)), isto ´e, o par (0, m), seguidamente iterar k vezes uma opera¸c˜ao f tal que f (n, φ (n)) = (n + 1, ϕ (n, φ (n))) e finalmente escolher a segunda componente do par ordenado `a esquerda da igual- dade anterior. Para definirmos o combinador R seguiremos um processo, combina- torial, an´alogo ao descrito.
Primeiro definimos D ≡ λxyz.z (Q y) x.
Pela defini¸c˜ao 36 e pelo Teorema 33 temos para quaisquer X, Y e k ( DXY 0 =w X DXY k + 1 =w Y (2.2) pois DXY 0 ≡ (λxyz.z (Q y) x) XY 0 w 0 (Q Y ) X ≡ Q I (Q Y ) X, por 0 ≡ Q I → w IX w X e DXY k + 1 w k + 1 (Q Y ) X ≡ XBk (Q Y ) X → w B (Q Y ) k (Q Y ) X w Q Y k (Q Y ) X → w Y
Intuitivamente, o termo Dm n pode ser visto como um construtor do par orde- nado (m, n), uma vez que a propriedade (2.2) d´a-nos um m´etodo efectivo de escolher uma das suas componentes.
Por outro lado, tamb´em D pode ser, informalmente, visto como um termo “con- dicional”, no sentido que DXY Z ≡ (Se Z ≡ 0 ent˜ao X, sen˜ao Y ).
Consideremos agora o termo Q ≡ λyv.D Suc v0 y v0 v1, sendo Suc o combinador que define a fun¸c˜ao at´omica Sucessor. Este termo satisfaz as seguintes propriedades para quaisquer X, Y e k
Q1) QY DkX =w D k + 1
Basta ter em conta o Teorema 33 e a propriedade (2.2): QY DkX = w D Suc DkX0 Y DkX0 DkX1 = w D Suc k Y kX = w D k + 1 Y kX
Assim, QY “imita” a opera¸c˜ao f acima descrita, caso Y seja um termo que defina ϕ.
Q2) (QY )k D0X =w DkXk para algum termo Xk (na verdade, Xk cor-
responde ao valor de φ (k) acima, caso Y defina ϕ e X seja m). Mostramos esta propriedade por indu¸c˜ao sobre k
• Passo base: Se k = 0 ´e imediato.
• Hip´otese de indu¸c˜ao: Admitamos (QY )k D0X =w DkXk, para algum
Xk.
(QY )k+1 D0X = w QY
(Qy)k D0X
= w QY DkXk , para algum Xk por hip´otese
de indu¸c˜ao
= w D k + 1 Xk+1, para algum Xk+1 por Q1)
Finalmente, definimos R ≡ λxyu.u (Qy) D0x 1. Tem-se
RXY k ≡ k (QY ) D0X 1, pelo Teorema 33 = w (QY )k D0X 1, pelo Teorema 37
= w DkXk1, pela propriedade Q2)
= w Xk, pela propriedade (2.2)
Por ´ultimo, vejamos que R satisfaz (2.1):
RXY 0 = w 0 (QY ) D0X 1, pelo Teorema 33
= w (QY )0 D0X 1, pelo Teorema 37
= w D0X1, por defini¸c˜ao de (QY )0
e
RXY k + 1 = w k + 1 (QY ) D0X 1, pelo Teorema 33
= w (QY )
k+1 D0X 1, pelo Teorema 37
= w (QY )
(QY )k D0X1, por defini¸c˜ao de (QY )k+1 = w QY DkXk 1, de acordo com a propriedade Q2)
= w D k + 1 Y kXk 1, pela propriedade Q1) = w Y kXk, pela propriedade (2.2) = w Y k RXY k
Lema 42 Qualquer fun¸c˜ao primitiva recursiva φ ´e defin´ıvel combinatorialmente por um termo φ que admite forma normal.
Demonstra¸c˜ao. O termo φ ser´a escolhido por indu¸c˜ao sobre a forma como obtemos fun¸c˜oes primitivas recursivas.
• Se φ ´e uma fun¸c˜ao at´omica: ´e imediato pelo Lema 40;
• Se φ = go hh1, ..., hki, com g : Nk → N, h1, ..., hk : Nj → N todas fun¸c˜oes
primitivas recursivas:
Por hip´otese de indu¸c˜ao, as fun¸c˜oes g, h1, ...e hk s˜ao defin´ıveis-LC pelos termos,
respectivamente G, H1, ... e Hk. Ent˜ao a fun¸c˜ao φ = go hh1, ..., hki ´e definivel-LC
pelo termo φ ≡ λx1...xj. (G (H1x1...xj) ... (Hkx1, ...xj)), como facilmente se verifica.
Al´em disso, por hip´otese de indu¸c˜ao os termos G, H1, ... e Hkadmitem forma normal,
pelo que tamb´em o termo φ. • Se φ =rec(g, h), com g : Nk
→ N e h : Nk+2
→ N fun¸c˜oes primitivas recursivas: Por hip´otese de indu¸c˜ao, g e h s˜ao fun¸c˜oes definiveis-LC pelos termos G e H, respectivamente, que admitem forma normal. Considerando R o termo definido no Lema 41, basta considerar o termo
φ ≡ λyx1...xk.R (Gx1...xk) (λyz.Hyzx1...xk) y, pois para quaisquer X1, ..., Xk
φ 0X1...Xk = w R (GX1...Xk) (λyz.HyzX1...Xk) 0 ,pelo Teorema 33
e
φ k + 1X1...Xk = w R (GX1...Xk) (λyz.HyzX1...Xk) k + 1, tendo em
conta o Teorema 33
= w (λyz.HyzX1...Xk) k R (GX1...Xk) (λyz.HyzX1...Xk) k ,
aplicando (2.1)
= w (λyz.HyzX1...Xk) k φ kX1...Xk , por defini¸c˜ao de φ
= w Hk φ kX1...Xk X1...Xk, pelo Teorema 33
Por G e H admitirem forma normal, tamb´em φ admite forma normal.
Lema 43 Existe um combinador µ na forma normal tal que:b (
b
µXY =w Y , se XY =w 0
b
µXY =w bµX SucY , se XY =w n + 1 para algum n
(2.3)
Demonstra¸c˜ao. Definimos µ ≡ λxy.Tx (xy) (Tx) y em que:b T ≡ λx.D0 λuv.u x Suc v u Suc v
D ≡ λxyz.z (Q y) x que satisfaz as propriedades mencionadas em (2.2). Sejam X e Y termos arbitr´arios e consideremos u, v /∈ V L (XY ) . Ent˜ao, tendo em conta o Teorema 33:
b
µXY = w TX(XY )(TX)Y
= w D0 λuv.u X Suc v u Suc v (XY ) (TX)Y
Por (2.2), tem-se: • Se XY =w 0 : b µXY =w 0(TX)Y ≡ 0≡QI Q I(TX)Y =w IY =w Y • Se XY =w n + 1, para algum n:
Novamente por aplica¸c˜ao do Teorema 33:
b
µXY = w λuv.u X Suc v u Suc v (TX)Y
= w TX X SucY (TX) SucY
= w µX SucYb
Lema 44 Toda a fun¸c˜ao total recursiva φ ´e definivel combinatorialmente por um termo φ que admite forma normal.
Demonstra¸c˜ao. Seja φ : Nk → N uma fun¸c˜ao total recursiva. Pelo teorema de
Kleene para a forma normal existem fun¸c˜oes primitivas recursivas g e h tal que φ (x1, ..., xk) = h (µy (g (x1, ..., xk, y) = 0))
Sabemos, por φ ser total, que para quaisquer x1, ..., xk∈ N existe y ∈ N tal que
g (x1, ..., xk, y) = 0. Tamb´em, por g e h serem fun¸c˜oes primitivas recursivas, ent˜ao
s˜ao definiveis-LC, digamos pelos termos G e H, respectivamente.
Primeiro iremos definir um termo J com a seguinte inten¸c˜ao: uma das formas para calcular µy ´e, por exemplo, definir um algor´ıtmo θ (y) que d´a o resultado final y se g (x1, ..., xk, y) = 0, e passa para θ (y + 1), caso contr´ario. Claro, que este
algor´ıtmo deve come¸car com y = 0, para que o resultado da execu¸c˜ao seja o menor y que satisfaz g (x1, ..., xk, y) = 0.
Definimos J ≡ λx1...xky.bµ (Gx1..., xk) y, com bµ conforme Lema 43. Temos que: JX1...XkY = w µ (GXb 1..., Xk) Y , pelo Teorema 33 = w ( Y , se GX1..., XkY =w 0 JX1...Xk SucY , se GX1..., XkY =w n + 1 por (2.3)
O termo J conforme definido pode ser visto como a forma combinat´oria do al- gor´ıtmo supramencionado. Por outras palavras, Jx1...xky ´e da forma: se Gx1..., xky =w
0 ent˜ao y caso contr´ario Jx1..., xk Sucy.
Definimos, ainda, F ≡ λx1...xk.H Jx1...xk0e consideramos
φ ≡ λx1...xk.bµ (Gx1...xk) 0I (F x1...xk).
Realmente, φ define-LC a fun¸c˜ao f e φ admite forma normal pois, para quaisquer x1...xk ∈ N, temos que
• Existe um y tal que µy (g (x1, ..., xk, y) = 0), pelo que φ (x1...xk) = h (y);
• Donde φx1...xk =w yI (F x1...xk) =w Iy(F x1...xk) =w F x1...xk =w Hy =w
h (y) =w φ (x1...xk).
Demonstra¸c˜ao. Imediato pelos lemas anteriores.
Por ´ultimo, para provarmos que toda a fun¸c˜ao parcial recursiva ´e defin´ıvel com- binatorialmente precisamos de apresentar outra no¸c˜ao.
De facto, sendo φ uma fun¸c˜ao parcial recursiva k-´aria necessitamos de garantir a existˆencia de um termo φ que garanta as duas condi¸c˜oes da defini¸c˜ao 38 e que seja claro que φx1...xk n˜ao ´e normaliz´avel quando φ (x1, ..., xk) n˜ao est´a definido, para
alguns x1, ..., xk ∈ N. Contudo, caso um termo n˜ao seja normaliz´avel, isto ´e, n˜ao
admita forma normal, n˜ao basta exibir uma qualquer sequˆencia de redu¸c˜ao, desse termo, infinita, pois vimos, em sec¸c˜oes anteriores, que um termo pode admitir uma sequˆencia de redu¸c˜ao infinita e admitir forma normal. Intuitivamente, j´a percebe- mos, pelos exemplos facultados, que a escolha do redexe contra´ıdo em cada passo de contrac¸c˜ao ´e fundamental para conseguirmos obter a forma normal de um termo, caso exista. Passamos a formalizar estas no¸c˜oes.
Defini¸c˜ao 46 Uma sequˆencia de contrac¸c˜oes finita ou infinita M ≡ M0 →w M1 →w
... diz-se uma sequˆencia de redu¸c˜ao do termo M. Designamos por comprimento da redu¸c˜ao o n´umero de contrac¸c˜oes dessa sequˆencia de redu¸c˜ao. Se uma sequˆencia de redu¸c˜ao de um termo ´e finita, termina ao fim de n contrac¸c˜oes, o comprimento da redu¸c˜ao ´e n. Se uma sequˆencia de redu¸c˜ao de um termo ´e infinita, o seu comprimento ´e ∞.
Defini¸c˜ao 47 Sejam X e Y dois termos tal que X →w Y . Dizemos que X ´e
contra´ıdo em Y por contrac¸c˜ao do redexe mais `a esquerda, escrevemos X →e w
Y se: i) X ≡Q X1X2 e Y ≡ X1; ii) X ≡P X1X2X3 e Y ≡ X1X3(X2X3) ; iii) X ≡ X1X2, X1 e →w Y1, X2 →w Y2 e Y ≡ Y1Y2 Escrevemos X e
w Y se X w Y e pelo menos uma das contrac¸c˜oes na
sequˆencia de redu¸c˜ao de X para Y ´e feita atrav´es da contrac¸c˜ao do redexe mais `
a esquerda. A rela¸c˜ao e
w designa-se por redu¸c˜ao mais `a esquerda.
Lema 48 Seja X um termo que admite uma sequˆencia de redu¸c˜ao infinita X0, ..., Xn, ...
i) X0 ´e X;
ii) Xi e
w Xi+1.
Ent˜ao X n˜ao admite forma normal.
Demonstra¸c˜ao. Apˆendice B.
Este Lema faculta-nos o que necessitamos para provar o ambicionado resultado:
Teorema 49 Qualquer fun¸c˜ao parcial recursiva φ ´e definivel combinatorialmente por um termo φ que admite forma normal.
Demonstra¸c˜ao. Seja φ : Nk * N uma fun¸c˜ao parcial, arbitr´aria. Pelo Teorema
Kleene para a forma normal existem fun¸c˜oes primitivas recursivas g e h tal que φ (x1, ..., xk) ' h (µy (g (x1, ..., xk, y) = 0))
Por g e h serem fun¸c˜oes primitivas recursivas, ent˜ao s˜ao definiveis-LC, digamos pelos termos G e H, respectivamente.
Neste caso, sabemos que µy pode n˜ao estar definido para todo o k-uplo.
Consideramos φ ≡ λx1...xk. bµ (Gx1...xk) 0I (F x1...xk), com F e J os termos definidos na demonstra¸c˜ao do Lema 44, mais precisamente:
F ≡ λx1...xk.H Jx1...xk0
e J ≡ λx1...xky.bµ (Gx1..., xk) y. Sejam x1, ..., xk tais que:
• φ (x1, ..., xk) ↓:
Ent˜ao existe k tal que g (x1, ..., xk, k) = 0. Seja j = µy (g (x1, ..., xk, y) = 0).
Temos que φx1...xk =w jI (F x1...xk) =w Ij(F x1...xk) =w F x1...xk=w φ (x1...xk)
• φ (x1, ..., xk) ↑:
Ent˜ao n˜ao existe k tal que g (x1, ..., xk, k) = 0. Mas para cada k existe pk tal que
g (x1, ..., xk, k) = pk+ 1, tendo em conta que g ´e uma fun¸c˜ao primitiva recursiva,
logo total.
Consideremos X ≡ Gx1...xk e M ≡ F x1...xk.
Tem-se para todo natural k, que Xk ≡ Gx1...xkk =w g (x1, ..., xk, k), por g
ser recursiva primitiva e defin´ıvel-LC pelo termo G. Por g (x1, ..., xk, k) = pk+ 1,
aplicando o Teorema de Church-Rosser e tendo em conta que cada numeral est´a na forma normal, temos precisamente que Xk w pk+ 1.
Para provarmos que φx1...xk n˜ao ´e normaliz´avel basta exibir uma sequˆencia
de redu¸c˜ao infinita que satisfa¸ca o Lema 48. Tendo em conta o Teorema 33, que X ≡ Gx1...xk e M ≡ F x1...xk, apresententamos a seguinte sequˆencia de redu¸c˜ao:
φx1...xk w µX0IM , por defini¸c˜b ao de φ
w TX(X0)(TX)0IM , por defini¸c˜ao de µb
w TX(p0+ 1)(TX)0IM , por X0 w p0+ 1
w D0 λuv.u X Suc v u Suc v (p0+ 1)(TX)0IM , por
defini¸c˜ao de T
w λuv.u X Suc v u Suc v (TX)0IM, por (2.2) e
pk+ 1 6≡ 0
w TX X Suc 0 (TX) Suc 0 IM, pelo Teorema 33 w TX X1 (TX)1IM, por defini¸c˜ao de Suc
w...
w TX X2 (TX)2IM, de forma an´aloga w...
Claramente, esta sequˆencia de redu¸c˜ao Y0, ..., Yn, ... ´e infinita, em que
Y0 ≡ φx1...xk e
w Y1 ≡ TX X1 (TX)1IM e
Yi ≡ TX Xi (TX)iIM ew TX X i + 1 (TX) i + 1I M ≡ Yi+1,
para todo i ≥ 1, donde φx1...xk n˜ao admite forma normal.