A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

05(c) 2007 Gustavo Motta1 Introdução ao -calculus Prof. Gustavo Motta Departamento de Informática/UFPB.

Apresentações semelhantes


Apresentação em tema: "05(c) 2007 Gustavo Motta1 Introdução ao -calculus Prof. Gustavo Motta Departamento de Informática/UFPB."— Transcrição da apresentação:

1 05(c) 2007 Gustavo Motta1 Introdução ao -calculus Prof. Gustavo Motta Departamento de Informática/UFPB

2 -calculus 05(c) 2007 Gustavo Motta 2 Sumário Eliminação de variáveis bounded: bracket abstraction

3 -calculus 05(c) 2007 Gustavo Motta 3 Eliminação de variáveis bounded: bracket abstraction Segundo um teorema fundamental de Schönfinkel e Curry O -calculus inteiro pode ser rearranjando na teoria de combinadores, que tem apenas uma operação básica: a aplicação A abstração é representada com a ajuda de dois combinadores distintos – S e K – denominados de combinadores padrão

4 -calculus 05(c) 2007 Gustavo Motta 4 Eliminação de variáveis bounded: bracket abstraction Observação A aplicação ( x.(P)x)Q reduz para ([Q / x]P)Q que, em geral é diferente de (P)Q Lema – Para quaisquer expressões-, P e Q, e uma variável x tal que x (P), temos ( x.(P)x)Q (P)Q

5 -calculus 05(c) 2007 Gustavo Motta 5 Eliminação de variáveis bounded: bracket abstraction Conclusão Isto significa que, para x (P), a expressão x.(P)x é extensionally equal a P, embora tenham diferentes formas normais Ou seja, as regras e são insuficientes para provar a igualdade x.(P)x = P, para todo x (P) embora essas duas expressões representem a mesma função extensional Para o -calculus ser extensionally complete, é preciso adicionar uma nova regra

6 -calculus 05(c) 2007 Gustavo Motta 6 Eliminação de variáveis bounded: bracket abstraction A regra (eta) ( ) x.(P)x P, sempre que x (P) A adição dessa regra ao nosso sistema axiomático permite estender a noção de igualdade- para extensionally equality, que é formalmente definida como igualdade-

7 -calculus 05(c) 2007 Gustavo Motta 7 Eliminação de variáveis bounded: bracket abstraction Questão A eliminação das abstrações pelo uso de combinadores Toda expressão- sem variáveis livres pode ser considerada um combinador Variáveis livres podem ser abstraídas de quaisquer expressões- Por exemplo, se u e v são as únicas variáveis livres em P, logo u. v.P é um combinador com (( u. v.P)u)v = P Toda expressão- pode ser trocada por uma equivalente que tenha apenas constantes, combinadores e variáveis livres aplicadas para um e outro

8 -calculus 05(c) 2007 Gustavo Motta 8 Eliminação de variáveis bounded: bracket abstraction Expressões de combinadores Sintaxe ::= | ::= | | ::= ( ) Agora, vamos provar que os combinadores S e K são suficientes para eliminar todas as abstrações S x. y. z.((x)z)(y)z K x. y.x

9 -calculus 05(c) 2007 Gustavo Motta 9 Eliminação de variáveis bounded: bracket abstraction Observações O combinador K é o mesmo que true O combinador I pode ser deduzido de S e K (( x. y. z.((x)z)(y)z)K)K ( y. z.((K)z)(y)z)K z.((K)z)(K)z z.z I = ((S)K)K

10 -calculus 05(c) 2007 Gustavo Motta 10 Eliminação de variáveis bounded: bracket abstraction Expressão combinadora padrão É aquela que na qual os únicos combinadores são os combinadores padrão Bracket abstraction Operação utilizada para eliminar variáveis bounded de expressões- Equivalente combinatorial a abstração- [x]M = x.M

11 -calculus 05(c) 2007 Gustavo Motta 11 Eliminação de variáveis bounded: bracket abstraction Algoritmo para bracket abstraction Entrada: uma variável x e uma expressão combinadora padrão M Saída: uma expressão combinadora padrão [x]M, com [x]M = x.M Se M c, onde c é uma constante, então seja [x]M = (K)c Se M = C, onde C é um dos combinadores padrão, então seja [x]M = (K)C Se M v, onde v é uma variável, então seja [x]M = I para x v e seja [x]M = (K)v para x v Finalmente, se M = (P)Q para quaisquer expressões combinadoras padrão, P e Q, então seja [x]M = ((S)[x]P)[x]Q

12 -calculus 05(c) 2007 Gustavo Motta 12 Eliminação de variáveis bounded: bracket abstraction Teorema – Para toda expressão- E pode-se encontrar uma expressão combinadora padrão F, tal que E = F Prova Dada uma expressão- arbitrária E, nós sucessivamente eliminamos suas variáveis bounded pela realização de bracket abstraction de dentro para fora. Isto significa aplicar o algoritmo visto para as abstrações mais internas que ocorram em E. Desse modo, obtemos um E tal que E = E, contendo menos abstrações que aquelas em E. Repetindo este processo com E no lugar de E, chegaremos a uma expressão combinadora padrão F = E.

13 -calculus 05(c) 2007 Gustavo Motta 13 Eliminação de variáveis bounded: bracket abstraction Exemplo (( x. y.(x)(y)y) z.(x)(z)z)( u. v.u)w (( x.((S)[y]x)[y](y)y)((S)[z]x)[z](z)z)( u.(K)u)w (( x.((S)(K)x)((S)[y]y)[y]y)((S)(K)x)((S)[z]z)[z]z)(((S)[u ]K)[u]u)w (( x.((S)(K)x)((S)I)I)((S)(K)x)((S)I)I)(((S)(K)K)I)w ((((S)[x](S)(K)x)[x]((S)I)I)((S)(K)x)((S)I)I)(((S)(K)K)I )w... ((((S)((S)(K)S)((S)(K)K)I)((S)((S)(K)S)(K)I)(K)I)((S)( K)x)((S)I)I)(((S)(K)(K)I)w que é igual a expressão- original, cuja forma normal é (x)(w)w

14 -calculus 05(c) 2007 Gustavo Motta 14 Bibliografia Revesz, G. E. Lambda-Calculus, Combinators, and Functional Programming. Cambridge University Press, 1988.


Carregar ppt "05(c) 2007 Gustavo Motta1 Introdução ao -calculus Prof. Gustavo Motta Departamento de Informática/UFPB."

Apresentações semelhantes


Anúncios Google