fundamentos de cálculo lambda - pedro pinto · pedro pinto fundamentos de cálculo lambda....

21
Introdução O Sistema Definibilidade Lambda Redução Aplicações Sumário Fundamentos de Cálculo Lambda Pedro Pinto Instituto Superior Técnico Universidade Técnica de Lisboa Lisboa, 2 de Novembro de 2006 Pedro Pinto Fundamentos de Cálculo Lambda

Upload: others

Post on 20-Jul-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Fundamentos de Cálculo Lambda - Pedro Pinto · Pedro Pinto Fundamentos de Cálculo Lambda. Introdução O Sistema Definibilidade Lambda Redução Aplicações Sumário Teorema da

IntroduçãoO Sistema

Definibilidade LambdaRedução

AplicaçõesSumário

Fundamentos de Cálculo Lambda

Pedro Pinto

Instituto Superior TécnicoUniversidade Técnica de Lisboa

Lisboa, 2 de Novembro de 2006

Pedro Pinto Fundamentos de Cálculo Lambda

Page 2: Fundamentos de Cálculo Lambda - Pedro Pinto · Pedro Pinto Fundamentos de Cálculo Lambda. Introdução O Sistema Definibilidade Lambda Redução Aplicações Sumário Teorema da

IntroduçãoO Sistema

Definibilidade LambdaRedução

AplicaçõesSumário

Índice

Introdução

O SistemaAplicação e AbstracçãoAxiomáticaTeorema do Ponto Fixo

Definibilidade Lambda

Redução

Aplicações

Pedro Pinto Fundamentos de Cálculo Lambda

Page 3: Fundamentos de Cálculo Lambda - Pedro Pinto · Pedro Pinto Fundamentos de Cálculo Lambda. Introdução O Sistema Definibilidade Lambda Redução Aplicações Sumário Teorema da

IntroduçãoO Sistema

Definibilidade LambdaRedução

AplicaçõesSumário

Aplicação e AbstracçãoAxiomáticaTeorema do Ponto Fixo

Aplicação

FAF é o algoritmo aplicado ao input A.

Pedro Pinto Fundamentos de Cálculo Lambda

Page 4: Fundamentos de Cálculo Lambda - Pedro Pinto · Pedro Pinto Fundamentos de Cálculo Lambda. Introdução O Sistema Definibilidade Lambda Redução Aplicações Sumário Teorema da

IntroduçãoO Sistema

Definibilidade LambdaRedução

AplicaçõesSumário

Aplicação e AbstracçãoAxiomáticaTeorema do Ponto Fixo

Abstracção

Se M ≡ M[x ] é uma expressão que contem x , então λx .M[x ]exprime a função x 7→ M[x ].

Pedro Pinto Fundamentos de Cálculo Lambda

Page 5: Fundamentos de Cálculo Lambda - Pedro Pinto · Pedro Pinto Fundamentos de Cálculo Lambda. Introdução O Sistema Definibilidade Lambda Redução Aplicações Sumário Teorema da

IntroduçãoO Sistema

Definibilidade LambdaRedução

AplicaçõesSumário

Aplicação e AbstracçãoAxiomáticaTeorema do Ponto Fixo

Conversão β

O principal axioma do cálculo λ é:

(λx .M)N = M[x := N], ∀M,N ∈ Λ

Pedro Pinto Fundamentos de Cálculo Lambda

Page 6: Fundamentos de Cálculo Lambda - Pedro Pinto · Pedro Pinto Fundamentos de Cálculo Lambda. Introdução O Sistema Definibilidade Lambda Redução Aplicações Sumário Teorema da

IntroduçãoO Sistema

Definibilidade LambdaRedução

AplicaçõesSumário

Aplicação e AbstracçãoAxiomáticaTeorema do Ponto Fixo

Axiomas Lógicos e Regras

Igualdade:

M = N;M = N ⇒ N = M;

M = N, N = L ⇒ M = L;

Compatibilidade:

M = M ′ ⇒ MZ = M ′ZM = M ′ ⇒ ZM = ZM ′

M = M ′ ⇒ λx .M = λx .M ′

Pedro Pinto Fundamentos de Cálculo Lambda

Page 7: Fundamentos de Cálculo Lambda - Pedro Pinto · Pedro Pinto Fundamentos de Cálculo Lambda. Introdução O Sistema Definibilidade Lambda Redução Aplicações Sumário Teorema da

IntroduçãoO Sistema

Definibilidade LambdaRedução

AplicaçõesSumário

Aplicação e AbstracçãoAxiomáticaTeorema do Ponto Fixo

Axiomática

Se M = N é demonstrável, designa-se comoλ ` M = N ou abreviadamente M = N.Exemplo, (λy .yy)x = xx , entãoλ ` λx .x((λy .yy)x)x = λx .x(x x)x

Pedro Pinto Fundamentos de Cálculo Lambda

Page 8: Fundamentos de Cálculo Lambda - Pedro Pinto · Pedro Pinto Fundamentos de Cálculo Lambda. Introdução O Sistema Definibilidade Lambda Redução Aplicações Sumário Teorema da

IntroduçãoO Sistema

Definibilidade LambdaRedução

AplicaçõesSumário

Aplicação e AbstracçãoAxiomáticaTeorema do Ponto Fixo

Teorema do Ponto Fixo

Theorem

1. ∀F ∃X FX = X

2. Existe um determinador de pontos fixosY ≡ λf .(λx .f (x x))(λx .f (x x))tal que∃F F (YF ) = YF

Pedro Pinto Fundamentos de Cálculo Lambda

Page 9: Fundamentos de Cálculo Lambda - Pedro Pinto · Pedro Pinto Fundamentos de Cálculo Lambda. Introdução O Sistema Definibilidade Lambda Redução Aplicações Sumário Teorema da

IntroduçãoO Sistema

Definibilidade LambdaRedução

AplicaçõesSumário

Aplicação e AbstracçãoAxiomáticaTeorema do Ponto Fixo

Teorema do Ponto Fixo

Theorem

1. ∀F ∃X FX = X2. Existe um determinador de pontos fixos

Y ≡ λf .(λx .f (x x))(λx .f (x x))tal que∃F F (YF ) = YF

Pedro Pinto Fundamentos de Cálculo Lambda

Page 10: Fundamentos de Cálculo Lambda - Pedro Pinto · Pedro Pinto Fundamentos de Cálculo Lambda. Introdução O Sistema Definibilidade Lambda Redução Aplicações Sumário Teorema da

IntroduçãoO Sistema

Definibilidade LambdaRedução

AplicaçõesSumário

Aplicação e AbstracçãoAxiomáticaTeorema do Ponto Fixo

Demonstração do Teorema do Ponto Fixo

Proof.

1. Seja W ≡ λx .F (x x) e X ≡ WW . EntãoX ≡ WW ≡ (λx .F (x x))W = F (W W ) ≡ FX .

2. Por (1), temosYF = (λx .F (x x))(λx .F (x x)) ≡ X

Pedro Pinto Fundamentos de Cálculo Lambda

Page 11: Fundamentos de Cálculo Lambda - Pedro Pinto · Pedro Pinto Fundamentos de Cálculo Lambda. Introdução O Sistema Definibilidade Lambda Redução Aplicações Sumário Teorema da

IntroduçãoO Sistema

Definibilidade LambdaRedução

AplicaçõesSumário

Aplicação e AbstracçãoAxiomáticaTeorema do Ponto Fixo

Demonstração do Teorema do Ponto Fixo

Proof.

1. Seja W ≡ λx .F (x x) e X ≡ WW . EntãoX ≡ WW ≡ (λx .F (x x))W = F (W W ) ≡ FX .

2. Por (1), temosYF = (λx .F (x x))(λx .F (x x)) ≡ X

Pedro Pinto Fundamentos de Cálculo Lambda

Page 12: Fundamentos de Cálculo Lambda - Pedro Pinto · Pedro Pinto Fundamentos de Cálculo Lambda. Introdução O Sistema Definibilidade Lambda Redução Aplicações Sumário Teorema da

IntroduçãoO Sistema

Definibilidade LambdaRedução

AplicaçõesSumário

Representação de Booleanos

Combinadores correspondentes a valores lógicos:I True ≡ λxy .xI False ≡ λxy .y

Pedro Pinto Fundamentos de Cálculo Lambda

Page 13: Fundamentos de Cálculo Lambda - Pedro Pinto · Pedro Pinto Fundamentos de Cálculo Lambda. Introdução O Sistema Definibilidade Lambda Redução Aplicações Sumário Teorema da

IntroduçãoO Sistema

Definibilidade LambdaRedução

AplicaçõesSumário

Representação de Expressões Condicionais

Combinadores correspondentes à construção de expressõescondicionais por: (If_Then_Else) ≡ λbxy .bxy .

Pedro Pinto Fundamentos de Cálculo Lambda

Page 14: Fundamentos de Cálculo Lambda - Pedro Pinto · Pedro Pinto Fundamentos de Cálculo Lambda. Introdução O Sistema Definibilidade Lambda Redução Aplicações Sumário Teorema da

IntroduçãoO Sistema

Definibilidade LambdaRedução

AplicaçõesSumário

Representação de Pares Ordenados e Projecções

Combinadores correspondentes à construção de paresordenados por: [_, _] ≡ λxyz.zxy , (_)0 ≡ λx .xTrue e(_)1 ≡ λx .xFalse.Assim temos as seguintes abreviaturas:

[M, N] ≡ [_, _]MN(M)0 ≡ (_)0M(M)1 ≡ (_)1M

Pedro Pinto Fundamentos de Cálculo Lambda

Page 15: Fundamentos de Cálculo Lambda - Pedro Pinto · Pedro Pinto Fundamentos de Cálculo Lambda. Introdução O Sistema Definibilidade Lambda Redução Aplicações Sumário Teorema da

IntroduçãoO Sistema

Definibilidade LambdaRedução

AplicaçõesSumário

Teorema de Church-Rosser

TheoremSe M β N1, M β N2, então existe um N3 tal que N1 β N3e N2 β N3.

Pedro Pinto Fundamentos de Cálculo Lambda

Page 16: Fundamentos de Cálculo Lambda - Pedro Pinto · Pedro Pinto Fundamentos de Cálculo Lambda. Introdução O Sistema Definibilidade Lambda Redução Aplicações Sumário Teorema da

IntroduçãoO Sistema

Definibilidade LambdaRedução

AplicaçõesSumário

Consequências do Teorema de Church-Rosser

1. O cálculo λ é consistente, i.e. λ 0 true = false.Senão true =β false, o que é impossivel, visto que true efalse são β-nf’s distintos.

2. Ω ≡ (λx .xx)(λx .xx) não tem β-nf.3. Para determinar a β-nf de um termo, as varias

subexpressões podem ser reduzidas por ordensdiferentes, se for encontrada uma β-nf, ela é única.

Pedro Pinto Fundamentos de Cálculo Lambda

Page 17: Fundamentos de Cálculo Lambda - Pedro Pinto · Pedro Pinto Fundamentos de Cálculo Lambda. Introdução O Sistema Definibilidade Lambda Redução Aplicações Sumário Teorema da

IntroduçãoO Sistema

Definibilidade LambdaRedução

AplicaçõesSumário

Consequências do Teorema de Church-Rosser

1. O cálculo λ é consistente, i.e. λ 0 true = false.Senão true =β false, o que é impossivel, visto que true efalse são β-nf’s distintos.

2. Ω ≡ (λx .xx)(λx .xx) não tem β-nf.

3. Para determinar a β-nf de um termo, as variassubexpressões podem ser reduzidas por ordensdiferentes, se for encontrada uma β-nf, ela é única.

Pedro Pinto Fundamentos de Cálculo Lambda

Page 18: Fundamentos de Cálculo Lambda - Pedro Pinto · Pedro Pinto Fundamentos de Cálculo Lambda. Introdução O Sistema Definibilidade Lambda Redução Aplicações Sumário Teorema da

IntroduçãoO Sistema

Definibilidade LambdaRedução

AplicaçõesSumário

Consequências do Teorema de Church-Rosser

1. O cálculo λ é consistente, i.e. λ 0 true = false.Senão true =β false, o que é impossivel, visto que true efalse são β-nf’s distintos.

2. Ω ≡ (λx .xx)(λx .xx) não tem β-nf.3. Para determinar a β-nf de um termo, as varias

subexpressões podem ser reduzidas por ordensdiferentes, se for encontrada uma β-nf, ela é única.

Pedro Pinto Fundamentos de Cálculo Lambda

Page 19: Fundamentos de Cálculo Lambda - Pedro Pinto · Pedro Pinto Fundamentos de Cálculo Lambda. Introdução O Sistema Definibilidade Lambda Redução Aplicações Sumário Teorema da

IntroduçãoO Sistema

Definibilidade LambdaRedução

AplicaçõesSumário

Teorema da Normalização

TheoremSe M tem uma forma normal, a redução em M do redex cujaabstração surja mais à esquerda, corresponde a essa formanormal.

Pedro Pinto Fundamentos de Cálculo Lambda

Page 20: Fundamentos de Cálculo Lambda - Pedro Pinto · Pedro Pinto Fundamentos de Cálculo Lambda. Introdução O Sistema Definibilidade Lambda Redução Aplicações Sumário Teorema da

IntroduçãoO Sistema

Definibilidade LambdaRedução

AplicaçõesSumário

Aplicações

Pedro Pinto Fundamentos de Cálculo Lambda

Page 21: Fundamentos de Cálculo Lambda - Pedro Pinto · Pedro Pinto Fundamentos de Cálculo Lambda. Introdução O Sistema Definibilidade Lambda Redução Aplicações Sumário Teorema da

IntroduçãoO Sistema

Definibilidade LambdaRedução

AplicaçõesSumário

Sumário

I O Cálculo-λ originou linguagens funcionais.I Vantagens de linguagens baseadas no Cálculo-λ

I Uma base matemática elegante.I Definição formal indepentente do arquitectura onde é

implementada.I Correspondência directa com objectos matemáticos.I Programas modulares.

Pedro Pinto Fundamentos de Cálculo Lambda