1 de 69
Baixar para ler offline

Lesson 25: Evaluating Definite Integrals (slides)
Lesson 25: Evaluating Definite Integrals (slides)Matthew Leingang

Alpaydin - Chapter 2
Alpaydin - Chapter 2butest

Logistic Regression in Python | Logistic Regression Example | Machine Learnin...
Logistic Regression in Python | Logistic Regression Example | Machine Learnin...Edureka!

437056180-Equivalences-of-the-statement-and-its-contrapositive-convers-ppt [R...
437056180-Equivalences-of-the-statement-and-its-contrapositive-convers-ppt [R...JenilynEspejo1

Transforming Quadratic functions from General Form to Standard Form
Transforming Quadratic functions from General Form to Standard FormIvy Estrella

Exact Matrix Completion via Convex Optimization Slide (PPT)
Exact Matrix Completion via Convex Optimization Slide (PPT)Joonyoung Yi

Vector calculus
Vector calculusKumar

exponential functions (copied)
exponential functions (copied)hossameldeen ahmed

7.5 lines and_planes_in_space
7.5 lines and_planes_in_spaceMahbub Alwathoni

rational expression
rational expressionrey castro

K-Means Clustering Algorithm.pptx
K-Means Clustering Algorithm.pptxJebaRaj26

Predicates and Quantifiers
Predicates and Quantifiersblaircomp2003

Section 11: Normal Subgroups
Section 11: Normal SubgroupsKevin Johnson

1541 infinite limits
1541 infinite limits

Lesson 25: Evaluating Definite Integrals (slides)
Lesson 25: Evaluating Definite Integrals (slides)

Alpaydin - Chapter 2
Alpaydin - Chapter 2

Logistic Regression in Python | Logistic Regression Example | Machine Learnin...
Logistic Regression in Python | Logistic Regression Example | Machine Learnin...

Vector Space.pptx
Vector Space.pptx

437056180-Equivalences-of-the-statement-and-its-contrapositive-convers-ppt [R...
437056180-Equivalences-of-the-statement-and-its-contrapositive-convers-ppt [R...

Transforming Quadratic functions from General Form to Standard Form
Transforming Quadratic functions from General Form to Standard Form

Exact Matrix Completion via Convex Optimization Slide (PPT)
Exact Matrix Completion via Convex Optimization Slide (PPT)

Vector calculus
Vector calculus

exponential functions (copied)
exponential functions (copied)

Deconvolution
Deconvolution

7.5 lines and_planes_in_space
7.5 lines and_planes_in_space

rational expression
rational expression

Matrix Groups and Symmetry
Matrix Groups and Symmetry

Geometric formulas (math)
Geometric formulas (math)

K-Means Clustering Algorithm.pptx
K-Means Clustering Algorithm.pptx

Vector space
Vector space

Predicates and Quantifiers
Predicates and Quantifiers

Section 11: Normal Subgroups
Section 11: Normal Subgroups

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

[Alexandre] 2. Geometria
[Alexandre] 2. Geometrialapodcc

Paradigmas de linguagens de programacao - aula#10
Paradigmas de linguagens de programacao - aula#10Ismar Silveira

O que é logaritmo matematica
O que é logaritmo matematicagustavo-516

000004 logaritmo
000004 logaritmojosewammes

Sistemas dinâmicos caóticos [com minha participação]
Sistemas dinâmicos caóticos [com minha participação]Elton Ribeiro da Cruz

aula02-clculodelimites-versocorrigida-121028114252-phpapp02.pdf
aula02-clculodelimites-versocorrigida-121028114252-phpapp02.pdfEfraimAlmeida1

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

Calculo1 aula07
Calculo1 aula07

Calculo1 aula07
Calculo1 aula07

[Alexandre] 2. Geometria
[Alexandre] 2. Geometria

Paradigmas de linguagens de programacao - aula#10
Paradigmas de linguagens de programacao - aula#10

Lista de integração
Lista de integração

O que é logaritmo matematica
O que é logaritmo matematica

Funções 1
Funções 1

Calculo1 aula04
Calculo1 aula04

Calculo1 aula04
Calculo1 aula04

Função logarítmica
Função logarítmica

000004 logaritmo
000004 logaritmo

Limites2
Limites2

Apostila 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]

aula02-clculodelimites-versocorrigida-121028114252-phpapp02.pdf
aula02-clculodelimites-versocorrigida-121028114252-phpapp02.pdf

Mat limites 001
Mat limites 001

Aula4 introbusto
Aula4 introbusto

Revisaoestatistica
Revisaoestatistica

## Mais de Carlos Campani

Técnicas de integração
Técnicas de integraçãoCarlos Campani

Lista de exercícios 3
Lista de exercícios 3Carlos Campani

Lista de exercícios 2
Lista de exercícios 2Carlos Campani

Aplicações da integração
Aplicações da integraçãoCarlos Campani

Lista de exercícios 1
Lista de exercícios 1Carlos Campani

ANÁLISE COMPLETA DE UMA FUNÇÃO
ANÁLISE COMPLETA DE UMA FUNÇÃOCarlos Campani

Funções, suas propriedades e gráficoCarlos Campani

Solução de equações modulares
Solução de equações modularesCarlos Campani

Equações polinomiais
Equações polinomiaisCarlos Campani

Instruçõ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...Carlos Campani

### Mais de Carlos Campani(20)

Técnicas de integração
Técnicas de integração

Lista de exercícios 3
Lista de exercícios 3

Lista de exercícios 2
Lista de exercícios 2

Aplicações da integração
Aplicações da integração

Lista de exercícios 1
Lista de exercícios 1

Integral
Integral

Semana 14
Semana 14

Semana 13
Semana 13

Semana 12
Semana 12

Semana 11
Semana 11

Semana 10
Semana 10

Semana 9
Semana 9

ANÁLISE COMPLETA DE UMA FUNÇÃO
ANÁLISE COMPLETA DE UMA FUNÇÃO

Solução de equações modulares
Solução de equações modulares

Equações polinomiais
Equações polinomiais

PROVAS DE TEOREMAS
PROVAS DE TEOREMAS

Instruçõ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...

### 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 especiﬁcar algoritmos: Operacional M´quinas abstratas (M´quina de Turing); a a Axiom´tico Regras deﬁnem 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 ﬁnitos ≡ 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 Deﬁni¸˜o de Express˜o-λ ca a Deﬁni¸˜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), ﬁxando 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 Deﬁni¸˜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 ﬁxo
• 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 Deﬁni¸˜o 3 (Redu¸˜o beta) (λxM A) ⇒ M [x ← A]. ca ca Deﬁni¸˜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 Deﬁni¸˜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, deﬁnida como ca f (x) = x2 . Assim, f (3) = 9.
• 41. 3 ¸˜ FUNCOES PARCIAIS RECURSIVAS 41 • Uma fun¸ao ´ total se ela est´ deﬁnida 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´ deﬁnido. a a
• 42. 3 ¸˜ FUNCOES PARCIAIS RECURSIVAS 42 Deﬁni¸˜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 Deﬁni¸˜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, deﬁnida como ca s(x) = x + 1; Fun¸˜o predecessor p : N → N, deﬁnida como ca   x − 1 se x 0 p(x) = ;  0 se x = 0 Proje¸˜o pi : Nn → N, deﬁnida 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 Deﬁni¸˜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, deﬁnida 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, deﬁnida 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 Deﬁni¸˜o 8 A fun¸˜o cond : {V, F } × N × N → N, ca ca deﬁnida 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, deﬁnida 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 Deﬁni¸˜o 9 A fun¸˜o f : Nn+1 → N, deﬁnida 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 deﬁni¸˜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)))), deﬁne 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 Deﬁni¸˜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), deﬁnida c˜ como o menor valor y tal que h(x1 , . . . , xn , y) = 0 e para todo z y, h(xn , . . . , xn , z) est´ deﬁnido, ´ chamada de a e minimiza¸˜o. ca
• 55. 3 ¸˜ FUNCOES PARCIAIS RECURSIVAS 55 3.2.7 Deﬁni¸oes c˜ Deﬁni¸˜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 Deﬁni¸˜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 Deﬁni¸˜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 ﬁxos: Interpreta¸˜o matem´tica das fun¸oes ca a c˜ recursivas.
• 65. 4 PONTOS FIXOS 65 4.1 Deﬁni¸oes c˜ Deﬁni¸˜o 14 A fun¸˜o ⊥ : N → N, deﬁnida como ca ca ⊥(x) = undef, ´ chamada de fun¸ao totalmente e c˜ indeﬁnida. Deﬁni¸˜o 15 A rela¸˜o sobre F × F , onde F ´ o ca ca e conjunto das fun¸˜es sobre N → N, deﬁnida 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 Deﬁni¸˜o 16 Um conjunto de fun¸˜es {fi |i ≥ 0} ´ ca co e chamado de cadeia se f1 f2 f3 · · · . Deﬁni¸˜o 17 Uma fun¸˜o f ´ chamada ponto ﬁxo do ca ca e funcional F se F (f ) = f .
• 67. 4 PONTOS FIXOS 67 Teorema 2 O ponto ﬁxo 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 (⊥) ···; • Identiﬁcamos o ponto ﬁxo 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.
Idioma atualEnglish
Español
Portugues
Français
Deutsche