• Aucun résultat trouvé

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.