SlideShare una empresa de Scribd logo
1 de 69
Descargar para leer sin conexión
1




Fun¸oes Parciais Recursivas e C´lculo-λ
   c˜                          a

          Carlos A. P. Campani

          4 de novembro de 2008
1          ¸˜
    INTRODUCAO                                            2




     1    Introdu¸˜o
                 ca
      • Fun¸oes parciais recursivas s˜o equivalentes ao
            c˜                       a
        formalismo M´quina de Turing;
                     a
      • Representam as fun¸oes que podem ser computadas
                          c˜
        em uma m´quina.
                  a
1          ¸˜
    INTRODUCAO                                               3




     Tipos de formalismos para especificar algoritmos:
     Operacional M´quinas abstratas (M´quina de Turing);
                  a                   a
     Axiom´tico Regras definem os componentes da
            a
        linguagem (Gram´ticas);
                       a
     Funcional ou Denotacional Fun¸oes constru´
                                       c˜          ıdas de
        forma a serem compostas – linguagem-λ (Alonzo
        Church) e fun¸˜es parciais recursivas (Kleene).
                     co
1          ¸˜
    INTRODUCAO                                                  4




     Equivalˆncias entre m´quinas e gram´ticas (hierarquia de
            e             a             a
     Chomsky):
      • Autˆmatos finitos ≡ Gram´ticas regulares;
           o                   a
      • Autˆmatos de pilha n˜o-determin´
           o                 a         ısticos ≡
        Gram´ticas livres de contexto;
             a
      • M´quinas universais (M´quina de Turing) ≡
         a                      a
        Gram´ticas irrestritas.
            a
2    ´
    CALCULO-λ                                                  5




     2    C´lculo-λ
           a
       • Formalismo para representar fun¸oes proposto por
                                        c˜
         Alonzo Church (1941);
       • Fornece um sistema axiom´tico para o c´lculo com as
                                  a            a
         express˜es da linguagem-λ;
                o
       • Linguagem-λ ≡ linguagem funcional (LISP).
2    ´
    CALCULO-λ                                               6



     2.1    Defini¸˜o de Express˜o-λ
                 ca            a

     Defini¸˜o 1 ( express˜o-λ ou termo-λ)
          ca             a
      1. Uma vari´vel ´ uma express˜o-λ;
                 a e               a
      2. Se M ´ uma express˜o-λ e x ´ uma vari´vel, ent˜o
              e            a        e         a        a
         λxM ´ uma express˜o-lambda, interpretada como
              e           a
         “uma fun¸˜o com argumento x”;
                 ca
      3. Se F e A s˜o express˜es-λ, ent˜o (F A) ´ uma
                    a          o       a        e
         express˜o-λ, interpretada como “F aplicado ao
                a
         argumento A”;
      4. Nada mais ´ express˜o-λ.
                   e        a
2    ´
    CALCULO-λ                  7


     Exemplos 1
                M
      1. λx x ;
           F

      2. ( λxx (yz));
                       A

               F           A
      3. (λx (xx) y );
                   M

      4. (λxx λxx );
           F           A

      5. λx λy(xy).
                   M
2    ´
    CALCULO-λ                                       8




     Exerc´
          ıcio 1 Determine as express˜es v´lidas:
                                     o    a
      1. λxx;
      2. λx;
      3. λxλyx.
2    ´
    CALCULO-λ                                                9




     2.2    Vari´veis Livres e Limitadas
                a

     Se uma ocorrˆncia de uma vari´vel x est´ no escopo de
                   e               a         a
     um λx, ent˜o sua ocorrˆncia ´ dita limitada, caso
                a            e   e
     contr´rio ´ dita livre.
          a e
2    ´
    CALCULO-λ                                                  10




     Exemplo 1 (xλxλy(xy))
     Primeira ocorrˆncia de x ´ livre, a segunda ´ limitada.
                   e          e                  e
2    ´
    CALCULO-λ                                               11




     2.3    Substitui¸˜o de Vari´veis
                     ca         a

     M [x ← A] denota a substitui¸˜o uniforme de todas as
                                  ca
     ocorrˆncias livres de x por A.
          e
     Exemplo 2 (xλxλy(xy))[x ← λzz] = (λzzλxλy(xy)).
2    ´
    CALCULO-λ                             12




     2.4    Redu¸oes do C´lculo-λ
                c˜       a

                           (F A)
     F funcional;
     A argumento.

                    (λxM A) ⇒ M [x ← A]
                      F

     Exemplo 3
                      (λxx(yz)) ⇒ (yz)
2    ´
    CALCULO-λ                                             13




     Exemplos 2
      1. (λxxλxx) ⇒ λxx;
      2. ((λxλy(xy)λxx)x) ⇒ (λy(λxxy)x) ⇒ (λxxx) ⇒ x;
      3. (λx(xx)λx(xx)) ⇒ (λx(xx)λx(xx)) (irredut´vel);
                                                 ı
      4. (λxyz) ⇒ y (jogar fora alguma coisa).
2    ´
    CALCULO-λ                                    14




     Exerc´
          ıcio 2 Efetue as seguintes redu¸˜es:
                                         co
      1. (λz(λyzx)(xx))
      2. (λxxλxx)
      3. (λx(xx)λyy(xx))
2    ´
    CALCULO-λ                                                    15




     2.5    Currying
       • Ocorre quando da aplica¸˜o de um termo-λ em que
                                ca
         existem menos argumentos que vari´veis limitadas;
                                          a

                        (λxλy(xy)z) ⇒ λy(zy)

       • Na matem´tica: f (x, y), fixando um x qualquer,
                   a
         resulta em uma fun¸˜o de y;
                           ca
       • Natural de fazer na programa¸ao funcional/dif´ de
                                        c˜                ıcil
         fazer na programa¸ao procedural (necess´rio editar o
                            c˜                     a
         fonte e atribuir os valores que n˜o ser˜o lidos).
                                          a     a
2    ´
    CALCULO-λ                               16




     2.6    Aplica¸˜o-λ e Abstra¸˜o-λ
                  ca            ca
     Abstra¸˜o-λ M ⇒ λxM ;
           ca
     Aplica¸˜o-λ (λxM A) ⇒ M [x ← A].
           ca

                   (λxM A) ⇒ M [x ← A]
                     redex     contractum
2    ´
    CALCULO-λ                                           17




     Defini¸˜o 2 Uma express˜o-λ que n˜o pode ser mais
            ca               a        a
     reduzida ´ chamada forma normal.
              e
     Exemplo 4 λxx ´ uma forma normal.
                   e
     Exemplo 5 (λxx(yz)) n˜o ´ uma forma normal.
                          a e
     Exemplo 6 (λx(xx)λx(xx)) n˜o ´ uma forma normal.
                               a e
2    ´
    CALCULO-λ                                                                  18




     2.7     Teorema de Church-Rosser
       • Podem existir mais de uma redu¸˜o poss´
                                       ca      ıveis (mais
         de um redex)

                                      (λx(xx)(λyzλxx))
                                                   U
                                        gg             UUUUUU
                               ow gggggg                      &F
           ((λyzλxx)(λyzλxx))
                          W
                                                                   (λx(xx)z)
                               WWWWWWW
                                    W 'G                    ttt
                                                             ttt
                                                           tt
                                                          ttt
                (z(λyzλxx)) WW        ((λyzλxx)z)tttt ttt
                                                         t
                              WWWWW
                                   WWWWW            ttt
                                              u} tt
                                                   t
                                                     t
                                        W 'G
                                              (zz)
2    ´
    CALCULO-λ                                                                         19




       • Pode haver caminhos sem sa´
                                   ıda
                                       redex1

                             (λxy (λx(xx)λx(xx)))
                                          redex2


                (λxy(λx(xx)λx(xx)))
                               V
                        n           V VVVVV
                    nnnn                   VVVV
                 nnn                           V 'G
          y s{ nn
                                             (λxy(λx(xx)λx(xx)))
                                                g       D
                                         ggggggg            D
                                    ggggg                       D
                            y ow ggg                                D
                                                                        D
                                                                            D
                                                                                D4
2    ´
    CALCULO-λ                                                    20




       • Considerando os diversos caminhos, seria a resposta
         da avalia¸ao das express˜es unica? Ou seja, seriam as
                  c˜             o ´
         formas normais idˆnticas?
                           e
2    ´
    CALCULO-λ                                                  21




         Teorema 1 (Teorema de Church-Rosser)
         Para qualquer express˜o-λ P e para quaisquer Q e R,
                              a
         se P ⇒ Q e P ⇒ R, ent˜o existe um S tal que
                                 a
         Q ⇒ S e R ⇒ S.

                                     
                                         P ??
                                           ?
                                    
                                           ???
                                              ?
                                  
                                 
                                 
                                               ??
                                                ?
                              {Ó                  5
                           Q?
                            ?                          R
                              ??
                              ???                  
                                ??               
                                                   
                                 ?
                                   5          
                                             {Ó 
                                         S
2    ´
    CALCULO-λ                                                22




     2.8    Teorema da Normaliza¸˜o
                                ca

     Sempre usar o redex mais ` esquerda e mais externo
                              a
     primeiro em uma redu¸ao.
                          c˜
      estrat´gia normal ≈ call by name ≈ eal ≈ menor ponto
            e
                                fixo
2    ´
    CALCULO-λ                                         23




     2.9    Representa¸˜o dos Conectivos da
                      ca
            L´gica
             o

                       if A then B else C

                            T ≡ λxλyx
                ((T a)b) ≡ ((λxλyxa)b) ⇒ (λyab) ⇒ a
                            F ≡ λxλyy
                ((F a)b) ≡ ((λxλyya)b) ⇒ (λyyb) ⇒ b
2    ´
    CALCULO-λ                                24




                         not ≡ λx((xF )T )
     Exemplo 7 (notF )
     (λx((xF )T )F ) ⇒ ((F F )T ) ⇒ T
2    ´
    CALCULO-λ                        25




                and ≡ λxλy((xy)F )
                or ≡ λxλy((xT )y)
                →≡ λxλy((xy)T )
2    ´
    CALCULO-λ                                                  26




     2.10       Manipula¸˜o de Listas
                        ca

     Usar F e T como seletores de elementos de listas
     (if-then-else aninhados).
       • T ≡ λxλyx (primeiro elemento da lista);
       • F T ≡ λxλy(yλxλyx) ≡ λxλy(yT ) (segundo elemento
         da lista);
       • F 2 T ≡ λxλy(yλxλy(yλxλyx)) ≡ λxλy(yF T )
         (terceiro elemento da lista);
       • F i+1 T ≡ λxλy(yF i T ) (o (i + 2)-´simo elemento).
                                            e
2    ´
    CALCULO-λ                                                      27




                              φ0 , φ1 , . . . , φn−1
       • φ0 ≡ λx((xφ0 )ψ) (ψ ´ o terminador de lista);
                             e
       • φ0 , φ1 ≡ λx((xφ0 )λx((xφ1 )ψ)) ≡ λx((xφ0 ) φ1 );
       • φ0 , φ1 , . . . , φn−1 ≡ λx((xφ0 ) φ1 , . . . , φn−1 ).
2    ´
    CALCULO-λ                                           28




     (obtendo o primeiro elemento de uma lista)

      ( φ0 T ) ≡ (λx((xφ0 )ψ)λxλyx) ⇒ ((λxλyxφ0 )ψ) ⇒
                    ⇒ (λyφ0 ψ) ⇒ φ0
2    ´
    CALCULO-λ                                                 29



     (obtendo o segundo elemento de uma lista)

         ( φ0 , φ 1 , φ 2 F T ) ≡
         ≡ (λx((xφ0 )λx((xφ1 )λx((xφ2 )ψ))) λxλy(yλxλyx)) ⇒

         ⇒ ((λxλy(yλxλyx) φ0 )λx((xφ1 )λx((xφ2 )ψ))) ⇒
         ⇒ (λy(yλxλyx) λx((xφ1 )λx((xφ2 )ψ))) ⇒

         ⇒ (λx((xφ1 )λx((xφ2 )ψ)) λxλyx) ⇒
         ⇒ ((λxλyx φ1 )λx((xφ2 )ψ)) ⇒
         ⇒ (λyφ1 λx((xφ2 )ψ)) ⇒ φ1
2    ´
    CALCULO-λ                                      30




     2.11       Rela¸˜o com a Programa¸˜o
                    ca                ca
                Funcional (LISP)

                 T ≡ CAR   F ≡ CDR   ψ ≡ nil
            (CAR (CDR (CAR QUOTE((A B C) D))))=B
2    ´
    CALCULO-λ                                        31




     2.12       Representa¸˜o de N´ meros Inteiros
                          ca      u

                           i ≡ F iT
                            0≡T
                           1 ≡ FT
                          2 ≡ FFT
                              .
                              .
                              .
2    ´
    CALCULO-λ                                          32




                        suc ≡ λzλxλy(yz)

                (suc 1) ≡ (λzλxλy(yz)λxλy(yλxλyx)) ⇒
                λxλy(y λxλy(y λxλyx) ≡ F F T ≡ 2
                                 T

                            FT
2    ´
    CALCULO-λ                                             33




     Da observa¸ao que podemos escrever as express˜es-λ
                c˜                                o
     para pred, +, −, mult etc. concluimos que
                 C´lculo-λ ≈ m´quina de Turing
                  a           a
2    ´
    CALCULO-λ                                              34




     2.13       Igualdade do C´lculo-λ
                              a

     Defini¸˜o 3 (Redu¸˜o beta) (λxM A) ⇒ M [x ← A].
          ca         ca
     Defini¸˜o 4 (Redu¸˜o alfa) λxM ⇒ λyM [x ← y].
          ca         ca
     As redu¸oes alfa e beta induzem uma igualdade das
             c˜
     express˜es-λ (igualdade extensional).
            o
     = igualdade extensional;
     ≡ igualdade intencional (baseada na equivalˆncia de
                                                e
        abreviaturas).
2    ´
    CALCULO-λ                                                    35




     2.14       Sistema Axiom´tico do C´lculo-λ
                             a         a

     Serve para julgar a igualdade extensional entre termos do
     c´lculo-λ.
      a
     λ M = N se e somente se existe uma dedu¸˜o de
                                            ca
     M = N.
2    ´
    CALCULO-λ                                  36


     2.14.1     Axiomas/Regras de Inferˆncia
                                       e

                            M =M
                      (λxM A) = M [x ← A]
                            M =N
                            N =M
                         M = N, N = K
                            M =K
                            M =N
                         (M A) = (N A)
                            M =N
                         (F M ) = (F N )
                            M =N
                          λxM = λxN
2    ´
    CALCULO-λ                                         37




           C´lculo-λ=linguagem-λ+sistema axiom´tico
            a                                 a
3      ¸˜
    FUNCOES PARCIAIS RECURSIVAS                           38




     3    Fun¸oes Parciais Recursivas
             c˜
       • Propostas por Kleene (1936);
       • Equivalentes ao formalismo M´quina de Turing e
                                     a
         linguagem-λ.
3      ¸˜
    FUNCOES PARCIAIS RECURSIVAS                                39




     3.1    Fun¸˜es e Funcionais
               co

     Defini¸˜o 5 Uma fun¸ao parcial ´ uma rela¸˜o
            ca              c˜          e        ca
     f ⊆ A × B onde cada elemento de A se relaciona com,
     no m´ximo, um elemento de B. O conjunto A ´ chamado
          a                                        e
     de dom´ ınio da fun¸˜o e o conjunto B de co-dominio.
                        ca
     Nota¸ao: Denotamos a fun¸ao f ⊆ A × B como
          c˜                    c˜
     f : A → B e diz-se que o tipo de f ´ A → B.  a, b ∈ f
                                        e
     ´ denotado por f (a) = b.
     e
3      ¸˜
    FUNCOES PARCIAIS RECURSIVAS                        40




     Exemplo 8 Seja a fun¸˜o f : N → N, definida como
                              ca
     f (x) = x2 . Assim, f (3) = 9.
3      ¸˜
    FUNCOES PARCIAIS RECURSIVAS                               41




       • Uma fun¸ao ´ total se ela est´ definida para todo o
                 c˜ e                 a
         seu dom´
                ınio;
       • Uma fun¸ao f : A → B ´ parcial se
                  c˜            e
         ∃x ∈ A( ∃y ∈ Bf (x) = y). Exemplo: f : R → R,
         f (x) = 1/x. Observe que f (0) n˜o est´ definido.
                                         a     a
3      ¸˜
    FUNCOES PARCIAIS RECURSIVAS                            42




     Defini¸˜o 6 Um funcional ´ uma fun¸˜o que possui
           ca                 e        ca
     uma ou mais fun¸˜es como argumentos.
                    co
     Exemplo 9 Seja o funcional h : (N → N) × N → N, tal
     que h(f, x) = f (x) e f : N → N.
3      ¸˜
    FUNCOES PARCIAIS RECURSIVAS                                43



     3.2    Defini¸˜o de Fun¸˜o Parcial
                 ca        ca
            Recursiva
       • Fun¸oes parciais recursivas s˜o fun¸˜es constru´
             c˜                       a     co          ıdas
         sobre fun¸oes b´sicas usando cinco tipos de
                   c˜    a
         constru¸˜es: composi¸ao; condicional; recurs˜o
                 co           c˜                      a
         primitiva, recurs˜o while e minimiza¸ao;
                          a                   c˜
       • Fun¸ao Turing-comput´vel ≡ fun¸ao parcial
             c˜              a         c˜
         recursiva;
       • Fun¸ao Turing comput´vel para m´quina que sempre
            c˜                 a          a
         p´ra ≡ fun¸ao recursiva (total).
          a        c˜
3      ¸˜
    FUNCOES PARCIAIS RECURSIVAS                           44




     3.2.1    Fun¸˜es B´sicas
                 co    a

     Fun¸˜o sucessor s : N → N, definida como
        ca
        s(x) = x + 1;
     Fun¸˜o predecessor p : N → N, definida como
        ca
                         
                          x − 1 se x  0
                  p(x) =                    ;
                          0      se x = 0

     Proje¸˜o pi : Nn → N, definida como
           ca      n
        pi (x1 , x2 , . . . xn ) = xi , para 1 ≤ i ≤ n.
         n
3      ¸˜
    FUNCOES PARCIAIS RECURSIVAS                                                                                                 45




     3.2.2           Composi¸˜o Generalizada
                            ca

     Defini¸˜o 7 Sejam g, f1 , f2 , f3 , . . . , fk fun¸˜es parciais
            ca                                        co
     tais que g : Nk → N e fi : Nn → N para 1 ≤ i ≤ k. A
     fun¸˜o parcial h, definida como
         ca
     h(x1 , x2 , . . . , xn ) = g(f1 (x1 , x2 , . . . , xn ), f2 (x1 , x2 , . . . , xn ), . . . , fk (x1 , x2 , . . . , xn ))


      ´ a composi¸˜o das fun¸˜es g, f1 , f2 , f3 , . . . , fk .
      e          ca         co
3      ¸˜
    FUNCOES PARCIAIS RECURSIVAS                          46




     Exemplo 10 A fun¸˜o soma2 : N → N, definida como
                        ca
     soma2(x) = s(s(x)), usa a constru¸˜o composi¸˜o e
                                      ca          ca
     resulta numa fun¸˜o que soma dois ao valor de seu
                     ca
     argumento.
3      ¸˜
    FUNCOES PARCIAIS RECURSIVAS                           47




     3.2.3   Condicional

     Defini¸˜o 8 A fun¸˜o cond : {V, F } × N × N → N,
           ca           ca
     definida como
                                   
                                    g se b = V
                                      1
               cond(b, g1 , g2 ) =               ,
                                    g2 se b = F

     ´ a constru¸˜o condicional, onde b ´ uma express˜o
     e           ca                       e          a
     l´gica, g1 e g2 s˜o dois valores quaisquer.
      o               a
3      ¸˜
    FUNCOES PARCIAIS RECURSIVAS                            48




              cond(b, g1 , g2 ) = se b ent˜o g1 sen˜o g2
                                          a        a
3      ¸˜
    FUNCOES PARCIAIS RECURSIVAS                                49




     Exemplo 11 maior : N × N → N, definida como
     maior(x, y) = cond(x  y, x, y), resulta no maior valor
     entre x e y.
3      ¸˜
    FUNCOES PARCIAIS RECURSIVAS                                                                     50




     3.2.4      Recurs˜o Primitiva
                      a

     Defini¸˜o 9 A fun¸˜o f : Nn+1 → N, definida como
          ca         ca
         f (x1 , . . . , xn , y)   =   cond(y = 0, g(x1 , . . . , xn ), h(x1 , . . . , xn , p(y),
                                          f (x1 , . . . , xn , p(y))))


      ´ chamada de recurs˜o primitiva. Na defini¸˜o,
      e                  a                     ca
     h : Nn+2 → N e g : Nn → N s˜o duas fun¸˜es quaisquer.
                                a           co
3      ¸˜
    FUNCOES PARCIAIS RECURSIVAS                                                                        51




                                  8
                                   g(x , . . . , x )                                       se y = 0
                                       1            n
        f (x1 , . . . , xn , y) =
                                  : h(x1 , . . . , xn , p(y), f (x1 , . . . , xn , p(y)))   se y = 0
3      ¸˜
    FUNCOES PARCIAIS RECURSIVAS                                    52




     Exemplo 12
     zero(x) = cond(x = 0, p1 (x), p2 (p(x), zero(p(x)))), define
                            1       2
     uma fun¸˜o que resulta no valor constante zero.
             ca
3      ¸˜
    FUNCOES PARCIAIS RECURSIVAS                                                                             53




     3.2.5        Recurs˜o While
                        a

     Defini¸˜o 10 A fun¸˜o
          ca          ca
                                   8
                                    g(x , . . . , x )                                          se xi = 0
                                         1           n
       f (x1 , x2 , . . . , xn ) =
                                   : f (h1 (x1 , . . . , xn ), . . . , hn (x1 , . . . , xn ))   se xi  0


      ´ chamada de recurs˜o while.
      e                  a
3      ¸˜
    FUNCOES PARCIAIS RECURSIVAS                                             54




     3.2.6    Minimiza¸˜o
                      ca

     A fun¸ao f (x1 , . . . , xn ) = µy : h(x1 , . . . , xn , y), definida
          c˜
     como o menor valor y tal que h(x1 , . . . , xn , y) = 0 e para
     todo z  y, h(xn , . . . , xn , z) est´ definido, ´ chamada de
                                           a               e
     minimiza¸˜o.
              ca
3      ¸˜
    FUNCOES PARCIAIS RECURSIVAS                                  55




     3.2.7   Defini¸oes
                  c˜

     Defini¸˜o 11 As fun¸oes while recursivas compreendem
            ca            c˜
     a menor classe de fun¸˜es que inclui as fun¸˜es b´sicas e
                          co                    co    a
     ´ fechado sobre a composi¸˜o generalizada, condicional e
     e                        ca
     recurs˜o while.
           a
3      ¸˜
    FUNCOES PARCIAIS RECURSIVAS                            56




     Defini¸˜o 12 As fun¸oes primitivas recursivas
            ca              c˜
     compreendem a menor classe de fun¸˜es que inclui as
                                         co
     fun¸oes b´sicas e ´ fechado sobre a composi¸˜o
        c˜     a       e                        ca
     generalizada e recurs˜o primitiva.
                          a
3      ¸˜
    FUNCOES PARCIAIS RECURSIVAS                            57




     Defini¸˜o 13 As fun¸oes parciais recursivas
            ca              c˜
     compreendem a menor classe de fun¸˜es que inclui as
                                         co
     fun¸oes b´sicas e ´ fechado sobre a composi¸˜o
        c˜     a       e                        ca
     generalizada, recurs˜o primitiva e minimiza¸˜o.
                         a                      ca
3      ¸˜
    FUNCOES PARCIAIS RECURSIVAS                                    58




     fun¸oes Turing comput´veis ≡ fun¸oes while recursivas ≡
        c˜                   a       c˜
     fun¸oes parciais recursivas
        c˜
     fun¸oes primitivas recursivas
        c˜                           fun¸oes parciais recursivas
                                        c˜
3      ¸˜
    FUNCOES PARCIAIS RECURSIVAS                     59




     Exemplo 13 (Fun¸˜o while recursiva)
                     ca
                      
                       x                se y = 0
         soma(x, y) =
                       s(soma(x, p(y))) se y  0
3      ¸˜
    FUNCOES PARCIAIS RECURSIVAS                         60




     Exerc´ ıcio 3 Escreva as seguintes fun¸˜es while
                                           co
     recursivas:
      1. sub(x, y) = x − y;
      2. mult(x, y) = x × y;
      3. fat(x) = x!.
3      ¸˜
    FUNCOES PARCIAIS RECURSIVAS                                61




     Exemplo 14 Avalia¸˜o da fun¸˜o parcial recursiva
                          ca         ca
     f(x) = cond(x = 0, s(zero(x)), s(p2 (p(x), f (p(x))))):
                                       2
3      ¸˜
    FUNCOES PARCIAIS RECURSIVAS                                     62




     f(3) = cond(3 = 0, s(zero(3)), s(p2 (p(3), f (p(3))))) =
                                       2

          = s(p2 (p(3), f (p(3)))) = s(f (p(3))) =
               2

          = s(cond(p(3) = 0, s(zero(p(3))),
              s(p2 (p(p(3)), f (p(p(3)))))) =
                 2

          = s(s(p2 (p(p(3)), f (p(p(3)))))) = s(s(f (p(p(3))))) =
                 2

          = s(s(cond(p(p(3))) = 0,
              s(zero(p(p(3))))), s(p2 (p(p(p(3)))),
                                    2

              f (p(p(p(3)))))))))) =
          = s(s(s(p2 (p(p(p(3)))), f (p(p(p(3)))))))))))) =
                   2

          = s(s(s(f (zero(x))))) =
3      ¸˜
    FUNCOES PARCIAIS RECURSIVAS                            63




             = s(s(s(cond(0 = 0, s(zero(0)), s(p2 (p(0),
                                                2

                 f (p(0)))))))) = s(s(s(s(zero(0)))))

     Observe-se que “3” ´ uma abreviatura para
                         e
     “s(s(s(zero(x)))).”
4   PONTOS FIXOS                                             64




     4    Pontos Fixos
       • J´ vimos uma interpreta¸ao computacional das
          a                     c˜
         fun¸˜es recursivas;
            co
       • Pontos fixos: Interpreta¸˜o matem´tica das fun¸oes
                                ca       a            c˜
         recursivas.
4   PONTOS FIXOS                                                   65




     4.1    Defini¸oes
                 c˜

     Defini¸˜o 14 A fun¸˜o ⊥ : N → N, definida como
           ca           ca
     ⊥(x) = undef, ´ chamada de fun¸ao totalmente
                   e               c˜
     indefinida.
     Defini¸˜o 15 A rela¸˜o sobre F × F , onde F ´ o
             ca             ca                           e
     conjunto das fun¸˜es sobre N → N, definida como f1 f2
                      co
     se f1 (x) = y → f2 (x) = y, onde f1 , f2 ∈ F, ´ uma rela¸˜o
                                                   e         ca
     de ordem parcial sobre F.
     Observa¸˜o: ⊥
            ca         f , para qualquer f ∈ F.
4   PONTOS FIXOS                                        66




     Defini¸˜o 16 Um conjunto de fun¸˜es {fi |i ≥ 0} ´
          ca                       co               e
     chamado de cadeia se f1 f2 f3 · · · .
     Defini¸˜o 17 Uma fun¸˜o f ´ chamada ponto fixo do
            ca                ca e
     funcional F se F (f ) = f .
4   PONTOS FIXOS                                               67




     Teorema 2 O ponto fixo f0 do funcional F ´ o supremo
                                              e
     da cadeia F i (⊥), f0 = {F i (⊥)|i ≥ 0}.
     Observa¸˜es:
            co
       • F i = F ◦ F i−1 ;
       • F 0 (⊥)    F 1 (⊥)   F 2 (⊥)   ···;
       • Identificamos o ponto fixo do funcional com a fun¸˜o
                                                        ca
         computada pelo programa associado a este funcional.
4   PONTOS FIXOS                                                    68




     Exemplo 15 Seja f (x) = cond(x = 0, 1, x ∗ f (x − 1)).
     Cadeia:
      1. F 0 (⊥) = id(⊥) = ⊥ = undef;
      2. F 1 (⊥) = F (⊥) = cond(x = 0, 1, x ∗ ⊥(x − 1)) =
         cond(x = 0, 1, undef);
      3. F 2 (⊥) = F ◦ F 1 (⊥) = cond(x = 0, 1, x ∗ (F 1 (⊥))(x −
         1)) = cond(x = 0, 1, x ∗ cond(x − 1 = 0, 1, undef)) =
         cond(x = 0, 1, x ∗ cond(x = 1, 1, undef))
4   PONTOS FIXOS                                 69




          ıcio 4 Calcular F 3 (⊥).
     Exerc´
     Observa¸˜o:
            ca     {F i (⊥)|i ≥ 0} = fatorial.

Más contenido relacionado

La actualidad más candente

Matemática Financeira Administração
Matemática Financeira AdministraçãoMatemática Financeira Administração
Matemática Financeira AdministraçãoNilton Kimberly
 
Equacoes inequacoes trigonometricas
Equacoes inequacoes trigonometricasEquacoes inequacoes trigonometricas
Equacoes inequacoes trigonometricastioheraclito
 
Equação do 2º grau
Equação do 2º grauEquação do 2º grau
Equação do 2º grauDayzeCampany
 
Entropia E 2a Lei Da TermodinâMica
Entropia E 2a  Lei Da TermodinâMicaEntropia E 2a  Lei Da TermodinâMica
Entropia E 2a Lei Da TermodinâMicadalgo
 
Aula patologias em alvenarias
Aula patologias em alvenariasAula patologias em alvenarias
Aula patologias em alvenariasUNAERP
 
Pesquisa Operacional 1_Aula 2
Pesquisa Operacional 1_Aula 2Pesquisa Operacional 1_Aula 2
Pesquisa Operacional 1_Aula 2Joabe Amaral
 
Busca tabu
Busca tabuBusca tabu
Busca tabuiaudesc
 
Minimax e corte alfa beta
Minimax e corte alfa betaMinimax e corte alfa beta
Minimax e corte alfa betaMarcos Thomaz
 
Matemática Discreta - Fundamentos
Matemática Discreta - FundamentosMatemática Discreta - Fundamentos
Matemática Discreta - FundamentosRanilson Paiva
 
Intervalos numéricos
Intervalos numéricosIntervalos numéricos
Intervalos numéricosbethbal
 
Função Quadrática
Função QuadráticaFunção Quadrática
Função QuadráticaAab2507
 
Exercícios Resolvidos: Distribuição Binomial
Exercícios Resolvidos: Distribuição BinomialExercícios Resolvidos: Distribuição Binomial
Exercícios Resolvidos: Distribuição BinomialDiego Oliveira
 

La actualidad más candente (20)

Zero de função
Zero de funçãoZero de função
Zero de função
 
Logaritmo
LogaritmoLogaritmo
Logaritmo
 
Matemática Financeira Administração
Matemática Financeira AdministraçãoMatemática Financeira Administração
Matemática Financeira Administração
 
Ponto MáXimo E Ponto MíNimo
Ponto MáXimo E Ponto MíNimoPonto MáXimo E Ponto MíNimo
Ponto MáXimo E Ponto MíNimo
 
Equacoes inequacoes trigonometricas
Equacoes inequacoes trigonometricasEquacoes inequacoes trigonometricas
Equacoes inequacoes trigonometricas
 
Equação do 2º grau
Equação do 2º grauEquação do 2º grau
Equação do 2º grau
 
Entropia E 2a Lei Da TermodinâMica
Entropia E 2a  Lei Da TermodinâMicaEntropia E 2a  Lei Da TermodinâMica
Entropia E 2a Lei Da TermodinâMica
 
Aula patologias em alvenarias
Aula patologias em alvenariasAula patologias em alvenarias
Aula patologias em alvenarias
 
03 linguagens regulares
03   linguagens regulares03   linguagens regulares
03 linguagens regulares
 
Funções
FunçõesFunções
Funções
 
Pesquisa Operacional 1_Aula 2
Pesquisa Operacional 1_Aula 2Pesquisa Operacional 1_Aula 2
Pesquisa Operacional 1_Aula 2
 
Busca tabu
Busca tabuBusca tabu
Busca tabu
 
Tabela de Integrais
Tabela de  IntegraisTabela de  Integrais
Tabela de Integrais
 
Minimax e corte alfa beta
Minimax e corte alfa betaMinimax e corte alfa beta
Minimax e corte alfa beta
 
Matemática Discreta - Fundamentos
Matemática Discreta - FundamentosMatemática Discreta - Fundamentos
Matemática Discreta - Fundamentos
 
Equações de primeiro grau
Equações de primeiro grauEquações de primeiro grau
Equações de primeiro grau
 
Intervalos numéricos
Intervalos numéricosIntervalos numéricos
Intervalos numéricos
 
Função Quadrática
Função QuadráticaFunção Quadrática
Função Quadrática
 
Exercícios Resolvidos: Distribuição Binomial
Exercícios Resolvidos: Distribuição BinomialExercícios Resolvidos: Distribuição Binomial
Exercícios Resolvidos: Distribuição Binomial
 
Exercicio de Regressao Linear Simples
Exercicio de Regressao Linear SimplesExercicio de Regressao Linear Simples
Exercicio de Regressao Linear Simples
 

Similar a Funções parciais recursivas e cálculo-λ

[Alexandre] 2. Geometria
[Alexandre] 2. Geometria[Alexandre] 2. Geometria
[Alexandre] 2. Geometrialapodcc
 
Paradigmas de linguagens de programacao - aula#10
Paradigmas de linguagens de programacao - aula#10Paradigmas de linguagens de programacao - aula#10
Paradigmas de linguagens de programacao - aula#10Ismar Silveira
 
O que é logaritmo matematica
O que é logaritmo matematicaO que é logaritmo matematica
O que é logaritmo matematicagustavo-516
 
000004 logaritmo
000004 logaritmo000004 logaritmo
000004 logaritmojosewammes
 
Sistemas dinâmicos caóticos [com minha participação]
Sistemas dinâmicos caóticos [com minha participação]Sistemas dinâmicos caóticos [com minha participação]
Sistemas dinâmicos caóticos [com minha participação]Elton Ribeiro da Cruz
 
Anexo ma aula_fd_unidade1
Anexo ma aula_fd_unidade1Anexo ma aula_fd_unidade1
Anexo ma aula_fd_unidade1Carmem Almeida
 
aula02-clculodelimites-versocorrigida-121028114252-phpapp02.pdf
aula02-clculodelimites-versocorrigida-121028114252-phpapp02.pdfaula02-clculodelimites-versocorrigida-121028114252-phpapp02.pdf
aula02-clculodelimites-versocorrigida-121028114252-phpapp02.pdfEfraimAlmeida1
 
Paradigma Funcional - Caso de Estudo Haskell
Paradigma Funcional - Caso de Estudo HaskellParadigma Funcional - Caso de Estudo Haskell
Paradigma Funcional - Caso de Estudo HaskellSérgio Souza Costa
 

Similar a Funções parciais recursivas e cálculo-λ (20)

Calculo1 aula07
Calculo1 aula07Calculo1 aula07
Calculo1 aula07
 
Calculo1 aula07
Calculo1 aula07Calculo1 aula07
Calculo1 aula07
 
[Alexandre] 2. Geometria
[Alexandre] 2. Geometria[Alexandre] 2. Geometria
[Alexandre] 2. Geometria
 
Paradigmas de linguagens de programacao - aula#10
Paradigmas de linguagens de programacao - aula#10Paradigmas de linguagens de programacao - aula#10
Paradigmas de linguagens de programacao - aula#10
 
Lista de integração
Lista de integraçãoLista de integração
Lista de integração
 
O que é logaritmo matematica
O que é logaritmo matematicaO que é logaritmo matematica
O que é logaritmo matematica
 
Funções 1
Funções 1Funções 1
Funções 1
 
Calculo1 aula04
Calculo1 aula04Calculo1 aula04
Calculo1 aula04
 
Calculo1 aula04
Calculo1 aula04Calculo1 aula04
Calculo1 aula04
 
Função logarítmica
Função logarítmicaFunção logarítmica
Função logarítmica
 
000004 logaritmo
000004 logaritmo000004 logaritmo
000004 logaritmo
 
Limites2
Limites2Limites2
Limites2
 
Apostila 3 funções
Apostila 3 funçõesApostila 3 funções
Apostila 3 funções
 
Sistemas dinâmicos caóticos [com minha participação]
Sistemas dinâmicos caóticos [com minha participação]Sistemas dinâmicos caóticos [com minha participação]
Sistemas dinâmicos caóticos [com minha participação]
 
Anexo ma aula_fd_unidade1
Anexo ma aula_fd_unidade1Anexo ma aula_fd_unidade1
Anexo ma aula_fd_unidade1
 
aula02-clculodelimites-versocorrigida-121028114252-phpapp02.pdf
aula02-clculodelimites-versocorrigida-121028114252-phpapp02.pdfaula02-clculodelimites-versocorrigida-121028114252-phpapp02.pdf
aula02-clculodelimites-versocorrigida-121028114252-phpapp02.pdf
 
Mat limites 001
Mat limites  001Mat limites  001
Mat limites 001
 
Paradigma Funcional - Caso de Estudo Haskell
Paradigma Funcional - Caso de Estudo HaskellParadigma Funcional - Caso de Estudo Haskell
Paradigma Funcional - Caso de Estudo Haskell
 
Aula4 introbusto
Aula4 introbustoAula4 introbusto
Aula4 introbusto
 
Revisaoestatistica
RevisaoestatisticaRevisaoestatistica
Revisaoestatistica
 

Más de Carlos Campani

Técnicas de integração
Técnicas de integraçãoTécnicas de integração
Técnicas de integraçãoCarlos Campani
 
Lista de exercícios 3
Lista de exercícios 3Lista de exercícios 3
Lista de exercícios 3Carlos Campani
 
Lista de exercícios 2
Lista de exercícios 2Lista de exercícios 2
Lista de exercícios 2Carlos Campani
 
Aplicações da integração
Aplicações da integraçãoAplicações da integração
Aplicações da integraçãoCarlos Campani
 
Lista de exercícios 1
Lista de exercícios 1Lista de exercícios 1
Lista de exercícios 1Carlos Campani
 
ANÁLISE COMPLETA DE UMA FUNÇÃO
ANÁLISE COMPLETA DE UMA FUNÇÃOANÁLISE COMPLETA DE UMA FUNÇÃO
ANÁLISE COMPLETA DE UMA FUNÇÃOCarlos Campani
 
PROPRIEDADES DAS FUNÇÕES
PROPRIEDADES DAS FUNÇÕESPROPRIEDADES DAS FUNÇÕES
PROPRIEDADES DAS FUNÇÕESCarlos Campani
 
Funções, suas propriedades e gráfico
Funções, suas propriedades e gráficoFunções, suas propriedades e gráfico
Funções, suas propriedades e gráficoCarlos Campani
 
Solução de equações modulares
Solução de equações modularesSolução de equações modulares
Solução de equações modularesCarlos Campani
 
Equações polinomiais
Equações polinomiaisEquações polinomiais
Equações polinomiaisCarlos Campani
 
Instruções de Aprendiz
Instruções de AprendizInstruções de Aprendiz
Instruções de AprendizCarlos Campani
 
Álgebra básica, potenciação, notação científica, radiciação, polinômios, fato...
Álgebra básica, potenciação, notação científica, radiciação, polinômios, fato...Álgebra básica, potenciação, notação científica, radiciação, polinômios, fato...
Álgebra básica, potenciação, notação científica, radiciação, polinômios, fato...Carlos Campani
 

Más de Carlos Campani (20)

Técnicas de integração
Técnicas de integraçãoTécnicas de integração
Técnicas de integração
 
Lista de exercícios 3
Lista de exercícios 3Lista de exercícios 3
Lista de exercícios 3
 
Lista de exercícios 2
Lista de exercícios 2Lista de exercícios 2
Lista de exercícios 2
 
Aplicações da integração
Aplicações da integraçãoAplicações da integração
Aplicações da integração
 
Lista de exercícios 1
Lista de exercícios 1Lista de exercícios 1
Lista de exercícios 1
 
Integral
IntegralIntegral
Integral
 
Semana 14
Semana 14 Semana 14
Semana 14
 
Semana 13
Semana 13 Semana 13
Semana 13
 
Semana 12
Semana 12Semana 12
Semana 12
 
Semana 11
Semana 11Semana 11
Semana 11
 
Semana 10
Semana 10 Semana 10
Semana 10
 
Semana 9
Semana 9 Semana 9
Semana 9
 
ANÁLISE COMPLETA DE UMA FUNÇÃO
ANÁLISE COMPLETA DE UMA FUNÇÃOANÁLISE COMPLETA DE UMA FUNÇÃO
ANÁLISE COMPLETA DE UMA FUNÇÃO
 
PROPRIEDADES DAS FUNÇÕES
PROPRIEDADES DAS FUNÇÕESPROPRIEDADES DAS FUNÇÕES
PROPRIEDADES DAS FUNÇÕES
 
Funções, suas propriedades e gráfico
Funções, suas propriedades e gráficoFunções, suas propriedades e gráfico
Funções, suas propriedades e gráfico
 
Solução de equações modulares
Solução de equações modularesSolução de equações modulares
Solução de equações modulares
 
Equações polinomiais
Equações polinomiaisEquações polinomiais
Equações polinomiais
 
PROVAS DE TEOREMAS
PROVAS DE TEOREMASPROVAS DE TEOREMAS
PROVAS DE TEOREMAS
 
Instruções de Aprendiz
Instruções de AprendizInstruções de Aprendiz
Instruções de Aprendiz
 
Álgebra básica, potenciação, notação científica, radiciação, polinômios, fato...
Álgebra básica, potenciação, notação científica, radiciação, polinômios, fato...Álgebra básica, potenciação, notação científica, radiciação, polinômios, fato...
Álgebra básica, potenciação, notação científica, radiciação, polinômios, fato...
 

Funções parciais recursivas e cálculo-λ

  • 1. 1 Fun¸oes Parciais Recursivas e C´lculo-λ c˜ a Carlos A. P. Campani 4 de novembro de 2008
  • 2. 1 ¸˜ INTRODUCAO 2 1 Introdu¸˜o ca • Fun¸oes parciais recursivas s˜o equivalentes ao c˜ a formalismo M´quina de Turing; a • Representam as fun¸oes que podem ser computadas c˜ em uma m´quina. a
  • 3. 1 ¸˜ INTRODUCAO 3 Tipos de formalismos para especificar algoritmos: Operacional M´quinas abstratas (M´quina de Turing); a a Axiom´tico Regras definem os componentes da a linguagem (Gram´ticas); a Funcional ou Denotacional Fun¸oes constru´ c˜ ıdas de forma a serem compostas – linguagem-λ (Alonzo Church) e fun¸˜es parciais recursivas (Kleene). co
  • 4. 1 ¸˜ INTRODUCAO 4 Equivalˆncias entre m´quinas e gram´ticas (hierarquia de e a a Chomsky): • Autˆmatos finitos ≡ Gram´ticas regulares; o a • Autˆmatos de pilha n˜o-determin´ o a ısticos ≡ Gram´ticas livres de contexto; a • M´quinas universais (M´quina de Turing) ≡ a a Gram´ticas irrestritas. a
  • 5. 2 ´ CALCULO-λ 5 2 C´lculo-λ a • Formalismo para representar fun¸oes proposto por c˜ Alonzo Church (1941); • Fornece um sistema axiom´tico para o c´lculo com as a a express˜es da linguagem-λ; o • Linguagem-λ ≡ linguagem funcional (LISP).
  • 6. 2 ´ CALCULO-λ 6 2.1 Defini¸˜o de Express˜o-λ ca a Defini¸˜o 1 ( express˜o-λ ou termo-λ) ca a 1. Uma vari´vel ´ uma express˜o-λ; a e a 2. Se M ´ uma express˜o-λ e x ´ uma vari´vel, ent˜o e a e a a λxM ´ uma express˜o-lambda, interpretada como e a “uma fun¸˜o com argumento x”; ca 3. Se F e A s˜o express˜es-λ, ent˜o (F A) ´ uma a o a e express˜o-λ, interpretada como “F aplicado ao a argumento A”; 4. Nada mais ´ express˜o-λ. e a
  • 7. 2 ´ CALCULO-λ 7 Exemplos 1 M 1. λx x ; F 2. ( λxx (yz)); A F A 3. (λx (xx) y ); M 4. (λxx λxx ); F A 5. λx λy(xy). M
  • 8. 2 ´ CALCULO-λ 8 Exerc´ ıcio 1 Determine as express˜es v´lidas: o a 1. λxx; 2. λx; 3. λxλyx.
  • 9. 2 ´ CALCULO-λ 9 2.2 Vari´veis Livres e Limitadas a Se uma ocorrˆncia de uma vari´vel x est´ no escopo de e a a um λx, ent˜o sua ocorrˆncia ´ dita limitada, caso a e e contr´rio ´ dita livre. a e
  • 10. 2 ´ CALCULO-λ 10 Exemplo 1 (xλxλy(xy)) Primeira ocorrˆncia de x ´ livre, a segunda ´ limitada. e e e
  • 11. 2 ´ CALCULO-λ 11 2.3 Substitui¸˜o de Vari´veis ca a M [x ← A] denota a substitui¸˜o uniforme de todas as ca ocorrˆncias livres de x por A. e Exemplo 2 (xλxλy(xy))[x ← λzz] = (λzzλxλy(xy)).
  • 12. 2 ´ CALCULO-λ 12 2.4 Redu¸oes do C´lculo-λ c˜ a (F A) F funcional; A argumento. (λxM A) ⇒ M [x ← A] F Exemplo 3 (λxx(yz)) ⇒ (yz)
  • 13. 2 ´ CALCULO-λ 13 Exemplos 2 1. (λxxλxx) ⇒ λxx; 2. ((λxλy(xy)λxx)x) ⇒ (λy(λxxy)x) ⇒ (λxxx) ⇒ x; 3. (λx(xx)λx(xx)) ⇒ (λx(xx)λx(xx)) (irredut´vel); ı 4. (λxyz) ⇒ y (jogar fora alguma coisa).
  • 14. 2 ´ CALCULO-λ 14 Exerc´ ıcio 2 Efetue as seguintes redu¸˜es: co 1. (λz(λyzx)(xx)) 2. (λxxλxx) 3. (λx(xx)λyy(xx))
  • 15. 2 ´ CALCULO-λ 15 2.5 Currying • Ocorre quando da aplica¸˜o de um termo-λ em que ca existem menos argumentos que vari´veis limitadas; a (λxλy(xy)z) ⇒ λy(zy) • Na matem´tica: f (x, y), fixando um x qualquer, a resulta em uma fun¸˜o de y; ca • Natural de fazer na programa¸ao funcional/dif´ de c˜ ıcil fazer na programa¸ao procedural (necess´rio editar o c˜ a fonte e atribuir os valores que n˜o ser˜o lidos). a a
  • 16. 2 ´ CALCULO-λ 16 2.6 Aplica¸˜o-λ e Abstra¸˜o-λ ca ca Abstra¸˜o-λ M ⇒ λxM ; ca Aplica¸˜o-λ (λxM A) ⇒ M [x ← A]. ca (λxM A) ⇒ M [x ← A] redex contractum
  • 17. 2 ´ CALCULO-λ 17 Defini¸˜o 2 Uma express˜o-λ que n˜o pode ser mais ca a a reduzida ´ chamada forma normal. e Exemplo 4 λxx ´ uma forma normal. e Exemplo 5 (λxx(yz)) n˜o ´ uma forma normal. a e Exemplo 6 (λx(xx)λx(xx)) n˜o ´ uma forma normal. a e
  • 18. 2 ´ CALCULO-λ 18 2.7 Teorema de Church-Rosser • Podem existir mais de uma redu¸˜o poss´ ca ıveis (mais de um redex) (λx(xx)(λyzλxx)) U gg UUUUUU ow gggggg &F ((λyzλxx)(λyzλxx)) W (λx(xx)z) WWWWWWW W 'G ttt ttt tt ttt (z(λyzλxx)) WW ((λyzλxx)z)tttt ttt t WWWWW WWWWW ttt u} tt t t W 'G (zz)
  • 19. 2 ´ CALCULO-λ 19 • Pode haver caminhos sem sa´ ıda redex1 (λxy (λx(xx)λx(xx))) redex2 (λxy(λx(xx)λx(xx))) V n V VVVVV nnnn VVVV nnn V 'G y s{ nn (λxy(λx(xx)λx(xx))) g D ggggggg D ggggg D y ow ggg D D D D4
  • 20. 2 ´ CALCULO-λ 20 • Considerando os diversos caminhos, seria a resposta da avalia¸ao das express˜es unica? Ou seja, seriam as c˜ o ´ formas normais idˆnticas? e
  • 21. 2 ´ CALCULO-λ 21 Teorema 1 (Teorema de Church-Rosser) Para qualquer express˜o-λ P e para quaisquer Q e R, a se P ⇒ Q e P ⇒ R, ent˜o existe um S tal que a Q ⇒ S e R ⇒ S.  P ?? ?   ??? ?    ?? ? {Ó 5 Q? ? R ?? ???  ??   ? 5  {Ó  S
  • 22. 2 ´ CALCULO-λ 22 2.8 Teorema da Normaliza¸˜o ca Sempre usar o redex mais ` esquerda e mais externo a primeiro em uma redu¸ao. c˜ estrat´gia normal ≈ call by name ≈ eal ≈ menor ponto e fixo
  • 23. 2 ´ CALCULO-λ 23 2.9 Representa¸˜o dos Conectivos da ca L´gica o if A then B else C T ≡ λxλyx ((T a)b) ≡ ((λxλyxa)b) ⇒ (λyab) ⇒ a F ≡ λxλyy ((F a)b) ≡ ((λxλyya)b) ⇒ (λyyb) ⇒ b
  • 24. 2 ´ CALCULO-λ 24 not ≡ λx((xF )T ) Exemplo 7 (notF ) (λx((xF )T )F ) ⇒ ((F F )T ) ⇒ T
  • 25. 2 ´ CALCULO-λ 25 and ≡ λxλy((xy)F ) or ≡ λxλy((xT )y) →≡ λxλy((xy)T )
  • 26. 2 ´ CALCULO-λ 26 2.10 Manipula¸˜o de Listas ca Usar F e T como seletores de elementos de listas (if-then-else aninhados). • T ≡ λxλyx (primeiro elemento da lista); • F T ≡ λxλy(yλxλyx) ≡ λxλy(yT ) (segundo elemento da lista); • F 2 T ≡ λxλy(yλxλy(yλxλyx)) ≡ λxλy(yF T ) (terceiro elemento da lista); • F i+1 T ≡ λxλy(yF i T ) (o (i + 2)-´simo elemento). e
  • 27. 2 ´ CALCULO-λ 27 φ0 , φ1 , . . . , φn−1 • φ0 ≡ λx((xφ0 )ψ) (ψ ´ o terminador de lista); e • φ0 , φ1 ≡ λx((xφ0 )λx((xφ1 )ψ)) ≡ λx((xφ0 ) φ1 ); • φ0 , φ1 , . . . , φn−1 ≡ λx((xφ0 ) φ1 , . . . , φn−1 ).
  • 28. 2 ´ CALCULO-λ 28 (obtendo o primeiro elemento de uma lista) ( φ0 T ) ≡ (λx((xφ0 )ψ)λxλyx) ⇒ ((λxλyxφ0 )ψ) ⇒ ⇒ (λyφ0 ψ) ⇒ φ0
  • 29. 2 ´ CALCULO-λ 29 (obtendo o segundo elemento de uma lista) ( φ0 , φ 1 , φ 2 F T ) ≡ ≡ (λx((xφ0 )λx((xφ1 )λx((xφ2 )ψ))) λxλy(yλxλyx)) ⇒ ⇒ ((λxλy(yλxλyx) φ0 )λx((xφ1 )λx((xφ2 )ψ))) ⇒ ⇒ (λy(yλxλyx) λx((xφ1 )λx((xφ2 )ψ))) ⇒ ⇒ (λx((xφ1 )λx((xφ2 )ψ)) λxλyx) ⇒ ⇒ ((λxλyx φ1 )λx((xφ2 )ψ)) ⇒ ⇒ (λyφ1 λx((xφ2 )ψ)) ⇒ φ1
  • 30. 2 ´ CALCULO-λ 30 2.11 Rela¸˜o com a Programa¸˜o ca ca Funcional (LISP) T ≡ CAR F ≡ CDR ψ ≡ nil (CAR (CDR (CAR QUOTE((A B C) D))))=B
  • 31. 2 ´ CALCULO-λ 31 2.12 Representa¸˜o de N´ meros Inteiros ca u i ≡ F iT 0≡T 1 ≡ FT 2 ≡ FFT . . .
  • 32. 2 ´ CALCULO-λ 32 suc ≡ λzλxλy(yz) (suc 1) ≡ (λzλxλy(yz)λxλy(yλxλyx)) ⇒ λxλy(y λxλy(y λxλyx) ≡ F F T ≡ 2 T FT
  • 33. 2 ´ CALCULO-λ 33 Da observa¸ao que podemos escrever as express˜es-λ c˜ o para pred, +, −, mult etc. concluimos que C´lculo-λ ≈ m´quina de Turing a a
  • 34. 2 ´ CALCULO-λ 34 2.13 Igualdade do C´lculo-λ a Defini¸˜o 3 (Redu¸˜o beta) (λxM A) ⇒ M [x ← A]. ca ca Defini¸˜o 4 (Redu¸˜o alfa) λxM ⇒ λyM [x ← y]. ca ca As redu¸oes alfa e beta induzem uma igualdade das c˜ express˜es-λ (igualdade extensional). o = igualdade extensional; ≡ igualdade intencional (baseada na equivalˆncia de e abreviaturas).
  • 35. 2 ´ CALCULO-λ 35 2.14 Sistema Axiom´tico do C´lculo-λ a a Serve para julgar a igualdade extensional entre termos do c´lculo-λ. a λ M = N se e somente se existe uma dedu¸˜o de ca M = N.
  • 36. 2 ´ CALCULO-λ 36 2.14.1 Axiomas/Regras de Inferˆncia e M =M (λxM A) = M [x ← A] M =N N =M M = N, N = K M =K M =N (M A) = (N A) M =N (F M ) = (F N ) M =N λxM = λxN
  • 37. 2 ´ CALCULO-λ 37 C´lculo-λ=linguagem-λ+sistema axiom´tico a a
  • 38. 3 ¸˜ FUNCOES PARCIAIS RECURSIVAS 38 3 Fun¸oes Parciais Recursivas c˜ • Propostas por Kleene (1936); • Equivalentes ao formalismo M´quina de Turing e a linguagem-λ.
  • 39. 3 ¸˜ FUNCOES PARCIAIS RECURSIVAS 39 3.1 Fun¸˜es e Funcionais co Defini¸˜o 5 Uma fun¸ao parcial ´ uma rela¸˜o ca c˜ e ca f ⊆ A × B onde cada elemento de A se relaciona com, no m´ximo, um elemento de B. O conjunto A ´ chamado a e de dom´ ınio da fun¸˜o e o conjunto B de co-dominio. ca Nota¸ao: Denotamos a fun¸ao f ⊆ A × B como c˜ c˜ f : A → B e diz-se que o tipo de f ´ A → B. a, b ∈ f e ´ denotado por f (a) = b. e
  • 40. 3 ¸˜ FUNCOES PARCIAIS RECURSIVAS 40 Exemplo 8 Seja a fun¸˜o f : N → N, definida como ca f (x) = x2 . Assim, f (3) = 9.
  • 41. 3 ¸˜ FUNCOES PARCIAIS RECURSIVAS 41 • Uma fun¸ao ´ total se ela est´ definida para todo o c˜ e a seu dom´ ınio; • Uma fun¸ao f : A → B ´ parcial se c˜ e ∃x ∈ A( ∃y ∈ Bf (x) = y). Exemplo: f : R → R, f (x) = 1/x. Observe que f (0) n˜o est´ definido. a a
  • 42. 3 ¸˜ FUNCOES PARCIAIS RECURSIVAS 42 Defini¸˜o 6 Um funcional ´ uma fun¸˜o que possui ca e ca uma ou mais fun¸˜es como argumentos. co Exemplo 9 Seja o funcional h : (N → N) × N → N, tal que h(f, x) = f (x) e f : N → N.
  • 43. 3 ¸˜ FUNCOES PARCIAIS RECURSIVAS 43 3.2 Defini¸˜o de Fun¸˜o Parcial ca ca Recursiva • Fun¸oes parciais recursivas s˜o fun¸˜es constru´ c˜ a co ıdas sobre fun¸oes b´sicas usando cinco tipos de c˜ a constru¸˜es: composi¸ao; condicional; recurs˜o co c˜ a primitiva, recurs˜o while e minimiza¸ao; a c˜ • Fun¸ao Turing-comput´vel ≡ fun¸ao parcial c˜ a c˜ recursiva; • Fun¸ao Turing comput´vel para m´quina que sempre c˜ a a p´ra ≡ fun¸ao recursiva (total). a c˜
  • 44. 3 ¸˜ FUNCOES PARCIAIS RECURSIVAS 44 3.2.1 Fun¸˜es B´sicas co a Fun¸˜o sucessor s : N → N, definida como ca s(x) = x + 1; Fun¸˜o predecessor p : N → N, definida como ca   x − 1 se x 0 p(x) = ;  0 se x = 0 Proje¸˜o pi : Nn → N, definida como ca n pi (x1 , x2 , . . . xn ) = xi , para 1 ≤ i ≤ n. n
  • 45. 3 ¸˜ FUNCOES PARCIAIS RECURSIVAS 45 3.2.2 Composi¸˜o Generalizada ca Defini¸˜o 7 Sejam g, f1 , f2 , f3 , . . . , fk fun¸˜es parciais ca co tais que g : Nk → N e fi : Nn → N para 1 ≤ i ≤ k. A fun¸˜o parcial h, definida como ca h(x1 , x2 , . . . , xn ) = g(f1 (x1 , x2 , . . . , xn ), f2 (x1 , x2 , . . . , xn ), . . . , fk (x1 , x2 , . . . , xn )) ´ a composi¸˜o das fun¸˜es g, f1 , f2 , f3 , . . . , fk . e ca co
  • 46. 3 ¸˜ FUNCOES PARCIAIS RECURSIVAS 46 Exemplo 10 A fun¸˜o soma2 : N → N, definida como ca soma2(x) = s(s(x)), usa a constru¸˜o composi¸˜o e ca ca resulta numa fun¸˜o que soma dois ao valor de seu ca argumento.
  • 47. 3 ¸˜ FUNCOES PARCIAIS RECURSIVAS 47 3.2.3 Condicional Defini¸˜o 8 A fun¸˜o cond : {V, F } × N × N → N, ca ca definida como   g se b = V 1 cond(b, g1 , g2 ) = ,  g2 se b = F ´ a constru¸˜o condicional, onde b ´ uma express˜o e ca e a l´gica, g1 e g2 s˜o dois valores quaisquer. o a
  • 48. 3 ¸˜ FUNCOES PARCIAIS RECURSIVAS 48 cond(b, g1 , g2 ) = se b ent˜o g1 sen˜o g2 a a
  • 49. 3 ¸˜ FUNCOES PARCIAIS RECURSIVAS 49 Exemplo 11 maior : N × N → N, definida como maior(x, y) = cond(x y, x, y), resulta no maior valor entre x e y.
  • 50. 3 ¸˜ FUNCOES PARCIAIS RECURSIVAS 50 3.2.4 Recurs˜o Primitiva a Defini¸˜o 9 A fun¸˜o f : Nn+1 → N, definida como ca ca f (x1 , . . . , xn , y) = cond(y = 0, g(x1 , . . . , xn ), h(x1 , . . . , xn , p(y), f (x1 , . . . , xn , p(y)))) ´ chamada de recurs˜o primitiva. Na defini¸˜o, e a ca h : Nn+2 → N e g : Nn → N s˜o duas fun¸˜es quaisquer. a co
  • 51. 3 ¸˜ FUNCOES PARCIAIS RECURSIVAS 51 8 g(x , . . . , x ) se y = 0 1 n f (x1 , . . . , xn , y) = : h(x1 , . . . , xn , p(y), f (x1 , . . . , xn , p(y))) se y = 0
  • 52. 3 ¸˜ FUNCOES PARCIAIS RECURSIVAS 52 Exemplo 12 zero(x) = cond(x = 0, p1 (x), p2 (p(x), zero(p(x)))), define 1 2 uma fun¸˜o que resulta no valor constante zero. ca
  • 53. 3 ¸˜ FUNCOES PARCIAIS RECURSIVAS 53 3.2.5 Recurs˜o While a Defini¸˜o 10 A fun¸˜o ca ca 8 g(x , . . . , x ) se xi = 0 1 n f (x1 , x2 , . . . , xn ) = : f (h1 (x1 , . . . , xn ), . . . , hn (x1 , . . . , xn )) se xi 0 ´ chamada de recurs˜o while. e a
  • 54. 3 ¸˜ FUNCOES PARCIAIS RECURSIVAS 54 3.2.6 Minimiza¸˜o ca A fun¸ao f (x1 , . . . , xn ) = µy : h(x1 , . . . , xn , y), definida c˜ como o menor valor y tal que h(x1 , . . . , xn , y) = 0 e para todo z y, h(xn , . . . , xn , z) est´ definido, ´ chamada de a e minimiza¸˜o. ca
  • 55. 3 ¸˜ FUNCOES PARCIAIS RECURSIVAS 55 3.2.7 Defini¸oes c˜ Defini¸˜o 11 As fun¸oes while recursivas compreendem ca c˜ a menor classe de fun¸˜es que inclui as fun¸˜es b´sicas e co co a ´ fechado sobre a composi¸˜o generalizada, condicional e e ca recurs˜o while. a
  • 56. 3 ¸˜ FUNCOES PARCIAIS RECURSIVAS 56 Defini¸˜o 12 As fun¸oes primitivas recursivas ca c˜ compreendem a menor classe de fun¸˜es que inclui as co fun¸oes b´sicas e ´ fechado sobre a composi¸˜o c˜ a e ca generalizada e recurs˜o primitiva. a
  • 57. 3 ¸˜ FUNCOES PARCIAIS RECURSIVAS 57 Defini¸˜o 13 As fun¸oes parciais recursivas ca c˜ compreendem a menor classe de fun¸˜es que inclui as co fun¸oes b´sicas e ´ fechado sobre a composi¸˜o c˜ a e ca generalizada, recurs˜o primitiva e minimiza¸˜o. a ca
  • 58. 3 ¸˜ FUNCOES PARCIAIS RECURSIVAS 58 fun¸oes Turing comput´veis ≡ fun¸oes while recursivas ≡ c˜ a c˜ fun¸oes parciais recursivas c˜ fun¸oes primitivas recursivas c˜ fun¸oes parciais recursivas c˜
  • 59. 3 ¸˜ FUNCOES PARCIAIS RECURSIVAS 59 Exemplo 13 (Fun¸˜o while recursiva) ca   x se y = 0 soma(x, y) =  s(soma(x, p(y))) se y 0
  • 60. 3 ¸˜ FUNCOES PARCIAIS RECURSIVAS 60 Exerc´ ıcio 3 Escreva as seguintes fun¸˜es while co recursivas: 1. sub(x, y) = x − y; 2. mult(x, y) = x × y; 3. fat(x) = x!.
  • 61. 3 ¸˜ FUNCOES PARCIAIS RECURSIVAS 61 Exemplo 14 Avalia¸˜o da fun¸˜o parcial recursiva ca ca f(x) = cond(x = 0, s(zero(x)), s(p2 (p(x), f (p(x))))): 2
  • 62. 3 ¸˜ FUNCOES PARCIAIS RECURSIVAS 62 f(3) = cond(3 = 0, s(zero(3)), s(p2 (p(3), f (p(3))))) = 2 = s(p2 (p(3), f (p(3)))) = s(f (p(3))) = 2 = s(cond(p(3) = 0, s(zero(p(3))), s(p2 (p(p(3)), f (p(p(3)))))) = 2 = s(s(p2 (p(p(3)), f (p(p(3)))))) = s(s(f (p(p(3))))) = 2 = s(s(cond(p(p(3))) = 0, s(zero(p(p(3))))), s(p2 (p(p(p(3)))), 2 f (p(p(p(3)))))))))) = = s(s(s(p2 (p(p(p(3)))), f (p(p(p(3)))))))))))) = 2 = s(s(s(f (zero(x))))) =
  • 63. 3 ¸˜ FUNCOES PARCIAIS RECURSIVAS 63 = s(s(s(cond(0 = 0, s(zero(0)), s(p2 (p(0), 2 f (p(0)))))))) = s(s(s(s(zero(0))))) Observe-se que “3” ´ uma abreviatura para e “s(s(s(zero(x)))).”
  • 64. 4 PONTOS FIXOS 64 4 Pontos Fixos • J´ vimos uma interpreta¸ao computacional das a c˜ fun¸˜es recursivas; co • Pontos fixos: Interpreta¸˜o matem´tica das fun¸oes ca a c˜ recursivas.
  • 65. 4 PONTOS FIXOS 65 4.1 Defini¸oes c˜ Defini¸˜o 14 A fun¸˜o ⊥ : N → N, definida como ca ca ⊥(x) = undef, ´ chamada de fun¸ao totalmente e c˜ indefinida. Defini¸˜o 15 A rela¸˜o sobre F × F , onde F ´ o ca ca e conjunto das fun¸˜es sobre N → N, definida como f1 f2 co se f1 (x) = y → f2 (x) = y, onde f1 , f2 ∈ F, ´ uma rela¸˜o e ca de ordem parcial sobre F. Observa¸˜o: ⊥ ca f , para qualquer f ∈ F.
  • 66. 4 PONTOS FIXOS 66 Defini¸˜o 16 Um conjunto de fun¸˜es {fi |i ≥ 0} ´ ca co e chamado de cadeia se f1 f2 f3 · · · . Defini¸˜o 17 Uma fun¸˜o f ´ chamada ponto fixo do ca ca e funcional F se F (f ) = f .
  • 67. 4 PONTOS FIXOS 67 Teorema 2 O ponto fixo f0 do funcional F ´ o supremo e da cadeia F i (⊥), f0 = {F i (⊥)|i ≥ 0}. Observa¸˜es: co • F i = F ◦ F i−1 ; • F 0 (⊥) F 1 (⊥) F 2 (⊥) ···; • Identificamos o ponto fixo do funcional com a fun¸˜o ca computada pelo programa associado a este funcional.
  • 68. 4 PONTOS FIXOS 68 Exemplo 15 Seja f (x) = cond(x = 0, 1, x ∗ f (x − 1)). Cadeia: 1. F 0 (⊥) = id(⊥) = ⊥ = undef; 2. F 1 (⊥) = F (⊥) = cond(x = 0, 1, x ∗ ⊥(x − 1)) = cond(x = 0, 1, undef); 3. F 2 (⊥) = F ◦ F 1 (⊥) = cond(x = 0, 1, x ∗ (F 1 (⊥))(x − 1)) = cond(x = 0, 1, x ∗ cond(x − 1 = 0, 1, undef)) = cond(x = 0, 1, x ∗ cond(x = 1, 1, undef))
  • 69. 4 PONTOS FIXOS 69 ıcio 4 Calcular F 3 (⊥). Exerc´ Observa¸˜o: ca {F i (⊥)|i ≥ 0} = fatorial.