O Cálculo λ sem Tipos
|
|
|
- Aline Candal Carlos
- 9 Há anos
- Visualizações:
Transcrição
1 Capítulo 2 O Cálculo λ sem Tipos 21 Síntaxe e Redução Por volta de 1930 o cálculo lambda sem tipos foi introduzido como uma fundação para a lógica e a matemática Embora este objectivo não tenha sido cumprido devido à ocorrência de paradoxos, uma parte significativa desta teoria pôde ser usada com muito sucesso como uma teoria da computação [2] A linguagem do cálculo λ contém os seguintes símbolos: v 0, v 1, v 2, um conjunto enumerável de variáveis; λ (, ) a letra grega lambda; o ponto; parênteses Definição 21 (Termo λ) Os termos de cálculo λ são construídos na seguinte forma: Uma variável v i é um termo λ Se M e um termo λ, então (λv i M) é um termo λ Se M e N são termos λ, então (MN) e um termo λ (abstracção) (aplicação) Denotamos termos λ com M, N, K e variáveis com x, y, z (às vezes com índices) Mais compacto podemos definir também os termos λ pela gramática seguinte: Exemplo 21 Exemplos de termos λ são: M, N, K x (MN) (xm) (λx((xy)z)), ((λyy)(λx(xy))), (x(λx(λxx))), (λx(yz)) Nestes exemplos (e exemplos semelhantes) assumimos sempre que x, y e z designam variáveis diferentes, por exemplo v 0, v 1 e v 2 Fazemos os seguintes convenções para poupar parênteses: Os parêntesis exteriores não se escrevem 6
2 21 SÍNTAXE E REDUÇÃO Versão 17 7 A aplicação é mais forte do que a abstracção, por exemplo, λxmn denota (λx(mn)) e não ((λxm)n) A aplicação associa à esquerda, por exemplo, M 1 M 2 M 3 denota ((M 1 M 2 )M 3 ) A abstracção associa à direita, por exemplo, λx 1 x 2 x n M denota (λx 1 (λx 2 ( (λx n M) ))) Definição 22 (Variáveis Livres e Variáveis Mudas) Uma variável x ocorre livre num termo lambda M se x não está dentro do alcance de λx, No caso contrário diz-se que a variável é muda (ou ligada) Exemplo 22 Nos seguintes termos as variáveis sublinhadas ocorrem livres no termo lambda λxxyz, (λyy)(λxxy), x(λxxx), λxyz Uma variável pode ocorrer livre e muda no mesmo termo lambda, por exemplo y(λyy) Definição 23 (Conjunto das Variáveis Livres) Denota-se por FV(M) o conjunto das variáveis livres de M, sendo que a sua definição recursiva é dada por: FV(x) = {x}, FV(λxM) = FV(M) \ {x}, FV(MN) = FV(M) FV(N) Definição 24 (Combinador) Um termo M é fechado, ou é um combinador, se FV(M) = Temos as seguintes notações Λ 0 = {M Λ M é fechado} Λ 0 (x) = {M Λ FV(M) {x}}, O fecho de M Λ é o lambda termos λ(x)m, com {x} = FV(M) O âmbito de uma abstracção lambda é toda a expressão lambda (até à ocorrência de uma outra abstracção na mesma variável) As variáveis livres são aquelas que não estão no âmbito de nenhuma abstracção lambda Por exemplo no termo lambda λxλyλzxz(yz) temos: λxλyλzxz(yz) Enquanto no termo lambda λyλzxz(yz) temos: λyλzxz(yz) Para o termo lambda λx(xλyλxxy(yx)) temos: λx(xλyλxxy(yx))
3 21 SÍNTAXE E REDUÇÃO Versão 17 8 Definição 25 (Comprimento de um Termo Lambda) O comprimento de um termo lambda M, M, é definido por: x := 0, MN := max( M, N ) + 1, λxm := M + 1 As demonstrações com indução sobre M de uma dada propriedade, são de facto demonstrações por indução sobre o comprimento de M Os símbolos escolhidos para as variáveis mudas não são importantes, podendo ser trocados sem que isso afecte o significado do termo lambda, tais termos, iguais a menos de uma mudança nas variáveis mudas, podem ser identificados Por exemplo λxλyλzxz(yz) é identico ao termo λzλxλyzy(xy) Tais termos designam-se por termos α-congruentes Antes de definirmos formalmente a noção de mudança de variáveis mudas, vamos definir a noção de sub-termo Definição 26 (Sub-termo) M é um sub-termo de N (notação, M N) se M Sub(N), aonde Sub(N), a colecção de sub-termos de N, é definida de forma inductiva da seguinte forma: Sub(x) = {x}; Sub(λxN 1 ) = Sub(N 1 ) {λxn 1 }; Sub(N 1 N 2 ) = Sub(N 1 ) Sub(N 2 ) {N 1 N 2 } Um sub-termo pode ocorrer mais do que uma vez num dado termo, por exemplo M λxxi(xi) possuí duas ocorrências do sub-termos I = λyy Sejam N 1, N 2 dois sub-termos em M Então N 1 e N 2 são disjuntos se N 1 e N 2 não têm nenhum símbolo em comum Uma ocorrência de um termo N de M é dita activa se N ocorre como (NZ) M para algum Z; no caso contrário é dita passiva Definição 27 (Substituição de Variáveis Mudas) Uma substituição de variáveis mudas em M é a substituição da parte λxn de M por λy(n[x := y]), sendo que y não ocorre (de todo) em N M é α-congruente com N, M α N, se N resulta de M por uma série de mudanças de variáveis mudas Exemplo 23 Eis alguns exemplos de termos α-congruentes, e alguns que o não são: λxx α λyy, λxy α λxz, λxxy α λzzy, λxxy α λyyy, λx(λxx)x α λx(λzz)x, λx(λxx)x α λx(λzz)z, λyzxz(yz) α λzyxy(zy), λyzxz(yz) α λxyzy(xy) Podemos adoptar alguma convenções que nos permitem facilitar a forma como lidamos com a substituição de variáveis mudas em termos lambda com
4 21 SÍNTAXE E REDUÇÃO Versão 17 9 Nota 1 (Convenção α-congruência) Termos que sejam α-congruentes são identificados como sendo iguais, por exemplo, λxx λyy Nota 2 (Convenção de Variáveis) Se M 1,, M n ocorrem num dado contexto (definição, demonstração, etc), então, em todos esses termos as variáveis mudas são escolhidas de forma a serem diferentes das variáveis livres Esta última convenção permite-nos manipular os termos lambda de uma forma simplificada Definição 28 (Substituição) O resultado de substituir as ocorrências livres de x em M por N, M[x := N], é definido de seguinte forma: x[x := N] N; y[x := N] y, se x y; (λym 1 )[x := N] λy(m 1 [x := N]); (M 1 M 2 )[x := N] (M 1 [x := N])(M 2 [x := N]) Na terceira cláusula não é necessário dizer, sempre que y x e y FV(N), desde que se respeite a convenção das variáveis Lema 21 (Lema da Substituição) Se x y e x FV(L) então M[x := N][y := L] M[y := L][x := N[y := L]] A demonstração é feita por indução na estrutura de M [2] Definição 29 (Redex β) Um termo da forma (λxm)n diz-se um redex β (do inglês reducible expression ) O termo M[x := N] é designado o seu contractum Definição 210 (Passo de redução β, 1β ) Se um termo K contém uma ocorrência dum redex (λxm)n e se substituirmos esta ocorrência por M[x := N] com o termo K como resultado, então dizemos que K se reduz em um passo a K (em símbolos: K 1β K ) Definição 211 (Redução β, ) Dizemos que M se reduz a N (em símbolos: M N), se existe uma sequência finita (possivelmente vazia) de passos de redução β de M até N Definição 212 (Conversão β, = β ) Dizemos que M e N são convertíveis β (em símbolos: M = β N), se existe uma sequência finita (possivelmente vazia) de passos de redução β e passos inversos de redução β de M a N A Redução β,, é o fecho transitivo e reflexivo de 1β, e = β é o fecho simétrico de Definição 213 (Forma normal β) Um termo diz-se na forma normal β, se não contém nenhum redex β Exemplo 24 1 (λxx(xy))n 1β N(Ny) 2 (λxy)n 1β y 3 (λx(λyyx)z)u 1β (λyyu)z 1β zu
5 21 SÍNTAXE E REDUÇÃO Versão (λxxx)(λxxx) 1β (λxxx)(λxxx) 1β (λxxx)(λxxx) 1β 5 (λxxx)(λxyxy) 1β (λxyxy)(λxyxy) 1β λy(λxyxy)y 1β λy(λzyz) Nota 3 As relações 1β, e = β podem também ser definidas na seguinte forma: (λxm)n 1β M[N/x] M 1β N (MK) 1β (NK) M 1β N (KM) 1β (KN) M 1β N (λxm) 1β (λxn) M M M N M = β N M 1β N M N M = β N N = β M M 1 M 2 M 2 M 3 M 1 M 3 M 1 = β M 2 M 2 = β M 3 M 1 = β M 3 Lema 22 As relações 1β, e = β têm as seguintes propriedades: 1 M 1β N = M[y := K] 1β N[y := K] 2 M N = (KM) (KN) e (MK) (NK) 3 M 1 N 1 e M 2 N 2 = (M 1 M 2 ) (N 1 N 2 ) 4 M N = (λxm) (λxn) 5 K K = M[y := K] M[y := K ] 6 M N = M = β N 7 M = β N = N = β M 8 M = β N = (KM) = β (KN) e (MK) = β (NK) 9 M 1 = β N 1 e M 2 = β N 2 = (M 1 M 2 ) = β (N 1 N 2 ) 10 M = β N = (λxm) = β (λxn) Dem: Exercício 211 Estratégia de redução e Church-Rosser A definição de redução β não determina nenhuma estratégia de redução Isto significa, quando um termo tem dois redexes β, a ordem pela qual a redução deve ser efectuada não é fixa Exemplo 25 (λx(λyxy)x)z 1 (λx(λyxy)x)z 1β (λyzy)z 2 (λx(λyxy)x)z 1β (λxxx)z Mas temos a propriedade Church-Rosser: Teorema 21 (Confluência de ) Se M 0 M 1 e M 0 M 2, então existe um termo M 3, tal que M 1 M 3 e M 2 M 3
6 21 SÍNTAXE E REDUÇÃO Versão Ilustrando: M 0 M 1 M 2 M 3 Aqui não vamos demonstrar Church-Rosser dado que esta demonstração é muito técnica (e não trivial!) [2] No exemplo temos imediatamente: 1 (λx(λyxy)x)z 1β (λyzy)z 1β zz 2 (λx(λyxy)x)z 1β (λxxx)z 1β zz A estratégia de redução corresponde à ordem em que calculamos uma dada expressão: Exemplo 26 2 (3 + 5) 2 (3 + 5) = (3 + 5) + (3 + 5) = 8 + (3 + 5) = = 16 2 (3 + 5) = 2 8 = = 16 A ordem utilizada nas reduções tem uma grande relevância para a complexidade de um dado cálculo No entanto pode-se demonstrar que para as estratégias habituais a complexidade é igual à complexidade dos piores casos ( worst-case complexity ) Exemplo 27 1 (λyz)((λxxx)(λxxx)) 1β (λyz)((λxxx)(λxxx)) 1β (λyz)((λxxx)(λxxx)) 1β 2 (λyz)((λxxx)(λxxx)) 1β z 3 (λyz)((λxxx)(λxxx)) 1β (λyz)((λxxx)(λxxx)) 1β z Essencialmente temos duas estratégias de redução interessantes (e implementadas): 1 Leftmost-Innermost 2 Leftmost-Outermost No caso Leftmost-Innermost reduzimos sempre o redex que está no lado mais esquerdo e que não contém nenhum outro redex No caso Leftmost-Outermost reduzimos o redex mais exterior e mais esquerdo dum termo 1 Leftmost-Innermost : (λx(λyyx)z)u 1β (λxzx)u (λxy)((λzzzz)u) 1β (λxy)(uuu) 1β y (λxy)((λxxx)(λxxx)) f (x) = 0, g(y) = 1 y f (g(y)) Argumentos são reduzidos antes da aplicação: strict evaluation
7 21 SÍNTAXE E REDUÇÃO Versão Leftmost-Outermost : (λx(λyyx)z)u 1β (λyyu)z (λxy)((λzzzz)u) 1β y Aplicações são reduzidas antes dos argumentos: lazy evaluation 212 Completude de Turing do cálculo λ e pontos fixos Até neste momento só considerámos o cálculo λ puro Neste cálculo temos só variáveis como termos atómicos Mas pode ser demonstrado que este cálculo é completo no sentido de Turing, ie, podemos computar todos a funções computáveis com uma máquina de Turing (e estes são consideradas como todas as funções intuitivamente computáveis: ver a Tese de Church) De forma mais rigorosa: Podemos representar qualquer função computável Turing por um termo λ puro e podemos calcular os seus valores por β reduções Aqui não vamos apresentar esta codificação Mas dizemos só que os números naturais podem ser codificado por numerais de Church: n pode ser representado por λ f, x f n x com f n x f ( f ( ( f x) )) No caso limite de n = 0 } {{ } n vezes temos f 0 x x A função de sucessor (ie, f (n) = n + 1), por exemplo, pode ser definido por λnλ f, x f (n f x) A poder de expressão do cálculo λ puro é baseada na possibilidade ilimitada a definir pontos fixos: Para cada termo M existe um termo N tal que MN = β N De facto, existe um termo (fechado) Y que calcula para todo o M um ponto fixo Y M de M: Teorema 22 (Ponto fixo) F X FX = X Dem: Sejam W = λxf(xx) e X = WW então tem-se: X WW (λxf(xx))w F(WW) FX Pontos fixos são usados muitas vezes em definições matemáticas mesmo quando isto não é explicitamente indicado Em particular, definições por recursão são casos especiais de procura dum ponto fixo Exemplo 28 FIBONACCI: 1 Podemos considerar a definição duma função que calcula os números de f (x) = 0, se x = 0, 1, se x = 1, f (x 1) + f (x 2), se x 2 Nesta definição de f usamos na equação da definição obviamente a própria função f O que procuramos é que um ponto fixo desta equação
8 21 SÍNTAXE E REDUÇÃO Versão Podemos rescrever a definição na seguinte forma: f (x) = if x = 0 then 0 else if x = 1 then 1 else f (x 1) + f (x 2) Na notação λ temos: f (x) = λx if x = 0 then 0 else if x = 1 then 1 else f (x 1) + f (x 2) ( ) Vamos definir f a partir do seguinte funcional (que não é recursivo!): g := λ fλx if x = 0 then 0 else if x = 1 then 1 else f (x 1) + f (x 2) Então f deve ser um ponto fixo deste funcional: f := Yg Que f satisfaz a equação ( ) pode ser facilmente calculado: f = Yg = g(yg) pelo teorema do ponto fixo = g( f ) = (λ fλx if x = 0 then 0 else if x = 1 then 1 else f (x 1) + f (x 2))( f ) = λx if x = 0 then 0 else if x = 1 then 1 else f (x 1) + f (x 2) ( ) 2 f (x) = f (x + 1) f (0) = f (1) = f (2) = f (3) = Como em cima podemos definir f como ponto fixo: f (x) = f (x + 1) f = λx f (x + 1) g := λ fλx f (x + 1) f := Yg ( ) A equação ( ) é verificada na mesma maneira: f Yg g(yg) g( f ) (λ fλx f (x + 1)) f λx f (x + 1) ( )
9 21 SÍNTAXE E REDUÇÃO Versão Quando aplicamos a função a um argumento obtemos a seguinte sequência de reduções β: f (0) f (0 + 1) f (1) f (1 + 1) f (2) Nota se, que qualquer função constante f (x) = k satisfaz a equação de definição de f Mas, o ponto fixo construído com Y não devolve uma função constante, em vez, a função que é indefinida para todos os argumentos 3 O exemplo seguinte é (em certo sentido) ainda pior : f (x) = f (x) + 1 Como nos casos anteriores podem definir f como ponto fixo dum certo funcional Mas na aplicação desta função a um argumento recebemos a seguinte sequência de reduções β: f (0) f (0) + 1 f (0) + 2 f (0) + 3 Este função tem só a função totalmente indefinida como ponto fixo Nestes exemplos o teorema de ponto fixo só construa as funções O teorema diz nada sobre os valores destas funções As funções dos últimos exemplos podem ser também implementados (mais ou menos sem problemas) em quase todas as outras linguagens de programação, por exemplo em Pascal: function f(x: integer): integer; begin y := f(x+1); f := y; end; function f(x: integer): integer; begin y := f(x)+1; f := y; end; Este funções vão resulta em ciclos infinitos quando aplica-mo-los a argumentos Mas, um qualquer compilador de Pascal não tem quaisquer problemas conseguindo compilar as funções acima definidas
Introdução ao cálculo-λ
Introdução ao cálculo-λ Pedro Vasconcelos 13 de Fevereiro de 2014 O que é o cálculo-λ? É um modelo computação universal (i.e., equipotente à máquina de Turing) Ao contrário da MT, o cálculo-λ é também
Programação Funcional - Introdução a Cálculo Lambda
Programação Funcional - Introdução a Cálculo Lambda Cristiano Damiani Vasconcellos Universidade do Estado de Santa Catarina 1. Definição Cálculo lambda (λ-cálculo) é um modelo matemático capaz de ilustrar
1 Lógica de primeira ordem
1 Lógica de primeira ordem 1.1 Sintaxe Para definir uma linguagem de primeira ordem é necessário dispor de um alfabeto. Este alfabeto introduz os símbolos à custa dos quais são construídos os termos e
Programação Funcional Cálculo Lambda - Aula Nº 3
Programação Funcional Cálculo Lambda - Aula Nº 3 2.3. Ordem de Redução Se uma expressão não contém mais redexes, então a avaliação está completa. Um expressão nesta forma é dita estar na forma normal.
Recorrendo à nossa imaginação podemos tentar escrever números racionais de modo semelhante: 1 2 = 1 + 3 + 32 +
1 Introdução Comecemos esta discussão fixando um número primo p. Dado um número natural m podemos escrevê-lo, de forma única, na base p. Por exemplo, se m = 15 e p = 3 temos m = 0 + 2 3 + 3 2. Podemos
Juliana Kaizer Vizzotto. Universidade Federal de Santa Maria. Disciplina de Teoria da Computação
Universidade Federal de Santa Maria Disciplina de Teoria da Computação Quais são as capacidades e limitações fundamentais dos computadores? Funções Computáveis Algoritmo: descrição finitade uma computação
Dízimas e intervalos encaixados.
Dízimas e intervalos encaixados. Recorde que uma dízima com n casas decimais é um número racional da forma a 0.a a 2...a n = a 0 + a 0 + a 2 0 2 + + a n n 0 n = a j 0 j em que a 0,a,...,a n são inteiros
Teoria dos Conjuntos. (Aula 6) Ruy de Queiroz. O Teorema da. (Aula 6) Ruy J. G. B. de Queiroz. Centro de Informática, UFPE
Ruy J. G. B. de Centro de Informática, UFPE 2007.1 Conteúdo 1 Seqüências Definição Uma seqüência é uma função cujo domíno é um número natural ou N. Uma seqüência cujo domínio é algum número natural n N
Cálculo Lambda Sem Tipos
Cálculo Lambda Sem Tipos Cálculo lambda sem tipos Peter Landin (60 s) observou que uma linguagem de programação pode ser compreendida formulando-a em um pequeno núcleo capturando suas características essenciais
DANIEL V. TAUSK. se A é um subconjunto de X, denotamos por A c o complementar de
O TEOREMA DE REPRESENTAÇÃO DE RIESZ PARA MEDIDAS DANIEL V. TAUSK Ao longo do texto, denotará sempre um espaço topológico fixado. Além do mais, as seguintes notações serão utilizadas: supp f denota o suporte
) a sucessão definida por y n
aula 05 Sucessões 5.1 Sucessões Uma sucessão de números reais é simplesmente uma função x N R. É conveniente visualizar uma sucessão como uma sequência infinita: (x(), x(), x(), ). Neste contexto é usual
I. Conjunto Elemento Pertinência
TEORI DOS CONJUNTOS I. Conjunto Elemento Pertinência Conjunto, elemento e pertinência são três noções aceitas sem definição, ou seja, são noções primitivas. idéia de conjunto é praticamente a mesma que
1 Congruências e aritmética modular
1 Congruências e aritmética modular Vamos considerar alguns exemplos de problemas sobre números inteiros como motivação para o que se segue. 1. O que podemos dizer sobre a imagem da função f : Z Z, f(x)
Fundamentos de Cálculo Lambda
Instituto Superior Técnico Universidade Técnica de Lisboa Lisboa, 2 de Novembro de 2006 Índice Introdução Aplicação e Abstracção Axiomática Aplicação Introdução Aplicação e Abstracção Axiomática FA F é
Computabilidade 2012/2013. Sabine Broda Departamento de Ciência de Computadores Faculdade de Ciências da Universidade do Porto
Computabilidade 2012/2013 Sabine Broda Departamento de Ciência de Computadores Faculdade de Ciências da Universidade do Porto Capítulo 1 Computabilidade 1.1 A noção de computabilidade Um processo de computação
Gramáticas e Linguagens independentes de contexto
Capítulo 6 Gramáticas e Linguagens independentes de contexto 6.1 Gramáticas Nesta secção vamos introduzir gramáticas formais para caracterização das linguagens, estudando fundamentalmente as gramáticas
Optimização e Algoritmos (2004/2005)
Optimização e Algoritmos (2004/2005) Instituto Superior Técnico Engenharia Electrotécnica e de Computadores Série de Problemas 3 Regras de Armijo e Wolfe, Introdução às funções convexas Problema 1.[Regras
Subsequência comum mais longa Em inglês, Longest Common Subsequence (LCS)
Programação Dinâmica Subsequência comum mais longa Em inglês, Longest Common Subsequence (LCS) Fernando Lobo Algoritmos e Estrutura de Dados II 1 / 23 Longest Common Subsequence (LCS) Dadas duas sequências,
Máquina de Turing. Controle finito
Máquinas de Turing Máquinas de Turing podem fazer tudo o que um computador real faz. Porém, mesmo uma Máquina de Turing não pode resolver certos problemas. Estes problemas estão além dos limites teóricos
Exercícios e questões de Álgebra Linear
CEFET/MG Exercícios e questões de Álgebra Linear Versão 1.2 Prof. J. G. Peixoto de Faria Departamento de Física e Matemática 25 de outubro de 2012 Digitado em L A TEX (estilo RevTEX). 2 I. À GUISA DE NOTAÇÃO
1 Postulado de Church-Turing 1
1 Postulado de Church-Turing 1 Alguns modelos alternativos no estudo da computabilidade Turing: Máquina de Turing Gödel-Kleene: Funções recursivas Church: Cáluculo λ (funções definidas por termos λ) Post:
Fundamentos de Programação
Fundamentos de Programação Soluções do primeiro teste 13 de Novembro de 2004 9:00-10:30 Nota Número: 20 Nome: Turma: Escreva o seu número em todas as folhas do teste. O espaço das respostas deve ser limitado
LFA. Provas formais; Indução; Sintaxe e Semântica Teoria dos Conjuntos
LFA Provas formais; Indução; Sintaxe e Semântica Teoria dos Conjuntos Técnicas de Demonstração Um teorema é uma proposição do tipo: p q a qual, prova-se, é verdadeira sempre que: p q Técnicas de Demonstração
Computação Fiável Indução - exercícios básicos
Computação Fiável Indução - exercícios básicos Simão Melo de Sousa 17 de Outubro de 2011 Conteúdo 1 Indução Estrutural 1 2 Indução Bem Fundada 9 1 Indução Estrutural Exercício 1 Demonstre por indução estrutural
Teoria da Computação. Computabilidade e complexidade computacional
Teoria da Computação Computabilidade e complexidade computacional 1 Computabilidade e Complexidade Computabilidade: verifica a existência de algoritmos que resolva uma classe de linguagens trata a possibilidade
2.1 Sucessões. Convergência de sucessões
Capítulo 2 Sucessões reais Inicia-se o capítulo introduzindo os conceitos de sucessão limitada, sucessão monótona, sucessão convergente e relacionando estes conceitos entre si. A análise da convergência
Funções ortogonais e problemas de Sturm-Liouville. Prof. Rodrigo M. S. de Oliveira UFPA / PPGEE
Funções ortogonais e problemas de Sturm-Liouville Prof. Rodrigo M. S. de Oliveira UFPA / PPGEE Série de Fourier Soma de funções ortogonais entre si Perguntas: -existem outras bases ortogonais que podem
Procedimentos e Algorítmos Programas e Linguagens de Programação Tese de Church-Turing Formas de Representação de Linguagens
Procedimentos e Algorítmos Programas e Linguagens de Programação Tese de Church-Turing Formas de Representação de Linguagens 1 Introdução Estudar computação do ponto de vista teórico é sinônimo de caracterizar
Capítulo 2. Conjuntos Infinitos. 2.1 Existem diferentes tipos de infinito
Capítulo 2 Conjuntos Infinitos O conjunto dos números naturais é o primeiro exemplo de conjunto infinito que aprendemos. Desde crianças, sabemos intuitivamente que tomando-se um número natural n muito
Teoria da Computação Aula 02 Introdução
Teoria da Computação Aula 02 Introdução Prof. Esp. Pedro Luís Antonelli Anhanguera Educacional Alfabeto Um alfabeto é um conjunto finito de símbolos ou caracteres, representado pela letra sigma ( ). Portanto:
2.2. A Semântica Operacional do Cálculo Lambda
2.2. A Semântica Operacional do Cálculo Lambda Até agora foi descrita a sintaxe do cálculocomo calcular com ele.. Para chamá-lo de cálculo, devemos porém dizer Basicamente isto é realizado através de três
Lógica Proposicional
Lógica Proposicional Lógica Computacional Carlos Bacelar Almeida Departmento de Informática Universidade do Minho 2007/2008 Carlos Bacelar Almeida, DIUM LÓGICA PROPOSICIONAL- LÓGICA COMPUTACIONAL 1/28
Aula 1. Teoria da Computação III
Aula 1 Teoria da Computação III Complexidade de Algoritmos Um problema pode ser resolvido através de diversos algoritmos; O fato de um algoritmo resolver um dado problema não significa que seja aceitável
SEMÂNTICA. Rogério Rocha. rode = program simples = var x : int := 3 in x := x + 5 end.
SEMÂNTICA program simples = var x : int := 3 in x := x + 5 end. rode =? Rogério Rocha Roteiro Introdução Sintaxe Semântica Dinâmica (Métodos formais) Operacional Axiomática Denotacional Estática Conclusão
1 Limites e Conjuntos Abertos
1 Limites e Conjuntos Abertos 1.1 Sequências de números reais Definição. Uma sequência de números reais é uma associação de um número real a cada número natural. Exemplos: 1. {1,2,3,4,...} 2. {1,1/2,1/3,1/4,...}
Capítulo 9: Linguagens sensíveis ao contexto e autômatos linearmente limitados.
Capítulo 9: Linguagens sensíveis ao contexto e autômatos linearmente limitados. José Lucas Rangel 9.1 - Introdução. Como já vimos anteriormente, a classe das linguagens sensíveis ao contexto (lsc) é uma
Funções Recursivas. Prof.: Edson Holanda Teoria da computação - Diverio e Menezes
Funções Recursivas Prof.: Edson Holanda [email protected] Teoria da computação - Diverio e Menezes Tipos de Formalismos Operacional Define-se uma máquina abstrata, baseada em estados, em instruções
Dedução Indução Contra-exemplos Contradição Contrapositiva Construção Diagonalização
Dedução Indução Contra-exemplos Contradição Contrapositiva Construção Diagonalização 1 Provas, lemas, teoremas e corolários Uma prova é um argumento lógico de que uma afirmação é verdadeira Um teorema
Vamos estudar neste capítulo algumas características da classe das linguagens regulares sobre um alfabeto. Entre elas salientámos:
5 Propriedades de LR Vamos estudar neste capítulo algumas características da classe das linguagens regulares sobre um alfabeto. Entre elas salientámos: São fechadas para determinas operações sobre linguagens:
1 Derivadas Parciais de Ordem Superior Em duas variáveis Em três variáveis. 1.3 Derivadas de Ordem
Contents 1 Derivadas Parciais de Ordem Superior 1 1.1 Em duas variáveis..................................... 1 1. Em três variáveis...................................... 1 1.3 Derivadas de Ordem...................................
1 INTRODUÇÃO E CONCEITOS BÁSICOS
1 INTRODUÇÃO E CONCEITOS BÁSICOS Inicia com uma breve história do surgimento e do desenvolvimento dos conceitos, resultados e formalismos nos quais a Teoria da Computação é baseada. Formalização dos conceitos
EXERCÍCIOS DE ÁLGEBRA LINEAR E GEOMETRIA ANALÍTICA (sistemas de equações lineares e outros exercícios)
UNIVERSIDADE DO ALGARVE ESCOLA SUPERIOR DE TECNOLOGIA EXERCÍCIOS DE ÁLGEBRA LINEAR E GEOMETRIA ANALÍTICA (sistemas de equações lineares e outros eercícios) ÁREA DEPARTAMENTAL DE ENGENHARIA CIVIL Eercícios
Linguagens recursivamente enumeráveis
Linguagens recursivamente enumeráveis Uma palavra x Σ é aceite por uma máquina de Turing M ( x L(M)) se M iniciando com a palavra x na fita e no estado inicial, pára num estado final. Caso contrário, M
Análise e Síntese de Algoritmos. Programação Dinâmica CLRS, Cap. 15
Análise e Síntese de Algoritmos Programação Dinâmica CLRS, Cap. 15 Contexto Revisões [CLRS, Cap. 1-10] Algoritmos em Grafos [CLRS, Cap. 22-26] Algoritmos elementares Árvores abrangentes Caminhos mais curtos
ALGA I. Representação matricial das aplicações lineares
Módulo 6 ALGA I Representação matricial das aplicações lineares Contents 61 Matriz de uma aplicação linear 76 62 Cálculo do núcleo e imagem 77 63 Matriz da composta 78 64 GL(n Pontos de vista passivo e
Números Inteiros Algoritmo da Divisão e suas Aplicações
Números Inteiros Algoritmo da Divisão e suas Aplicações Diferentemente dos números reais (R), o conjunto dos inteiros (Z) não é fechado para a divisão. Esse não-fechamento faz com que a divisão entre inteiros
Cálculo Diferencial e Integral I
Cálculo Diferencial e Integral I Texto de apoio às aulas. Amélia Bastos, António Bravo Dezembro 2010 Capítulo 1 Números reais As propriedades do conjunto dos números reais têm por base um conjunto restrito
Produtos de potências racionais. números primos.
MATEMÁTICA UNIVERSITÁRIA n o 4 Dezembro/2006 pp. 23 3 Produtos de potências racionais de números primos Mário B. Matos e Mário C. Matos INTRODUÇÃO Um dos conceitos mais simples é o de número natural e
Matemática Discreta para Ciência da Computação
Matemática Discreta para Ciência da Computação P. Blauth Menezes [email protected] Departamento de Informática Teórica Instituto de Informática / UFRGS Matemática Discreta para Ciência da Computação
Capítulo 2. Conjuntos Infinitos. 2.1 Existem diferentes tipos de infinito
Capítulo 2 Conjuntos Infinitos Um exemplo de conjunto infinito é o conjunto dos números naturais: mesmo tomando-se um número natural n muito grande, sempre existe outro maior, por exemplo, seu sucessor
2019/01. Estruturas Básicas: Conjuntos, Funções, Sequências, e Somatórios Área de Teoria DCC/UFMG /01 1 / 76
Estruturas Básicas: Conjuntos, Funções, Sequências, e Somatórios Área de Teoria DCC/UFMG 2019/01 Estruturas Básicas: Conjuntos, Funções, Sequências, e Somatórios Área de Teoria DCC/UFMG - 2019/01 1 / 76
Capítulo 1: Alfabetos, cadeias, linguagens
Capítulo 1: Alfabetos, cadeias, linguagens Símbolos e alfabetos. Um alfabeto é, para os nossos fins, um conjunto finito não vazio cujos elementos são chamados de símbolos. Dessa maneira, os conceitos de
LINGUAGENS FORMAIS E AUTÔMATOS
LINGUGENS FORMIS E UTÔMTOS Introdução reve Histórico Em 1936, lan Turing (matemático) propôs a possibilidade de se construir um computador digital através da formalização de um procedimento em tempo finito.
Fabio Augusto Camargo
Universidade Federal de São Carlos Centro de Ciências Exatas e de Tecnologia Departamento de Matemática Introdução à Topologia Autor: Fabio Augusto Camargo Orientador: Prof. Dr. Márcio de Jesus Soares
Contando o Infinito: os Números Cardinais
Contando o Infinito: os Números Cardinais Sérgio Tadao Martins 4 de junho de 2005 No one will expel us from the paradise that Cantor has created for us David Hilbert 1 Introdução Quantos elementos há no
é uma proposição verdadeira. tal que: 2 n N k, Φ(n) = Φ(n + 1) é uma proposição verdadeira. com n N k, tal que:
Matemática Discreta 2008/09 Vítor Hugo Fernandes Departamento de Matemática FCT/UNL Axioma (Princípio da Boa Ordenação dos Números Naturais) O conjunto parcialmente (totalmente) ordenado (N, ), em que
Bases Matemáticas. Relembrando: representação geométrica para os reais 2. Aula 8 Números Reais: módulo ou valor absoluto, raízes, intervalos
1 Bases Matemáticas Aula 8 Números Reais: módulo ou valor absoluto, raízes, intervalos Rodrigo Hausen 10 de outubro de 2012 v. 2012-10-15 1/34 Relembrando: representação geométrica para os reais 2 Uma
Introdução à Linguagem da Topologia
Introdução à Linguagem da Topologia Corpos Define-se corpo por um conjunto K, munido de duas operações básicas chamadas de adição e multiplicação. São os axiomas do corpo: Axiomas da Adição Associatividade:
Matemática I. 1 Propriedades dos números reais
Matemática I 1 Propriedades dos números reais O conjunto R dos números reais satisfaz algumas propriedades fundamentais: dados quaisquer x, y R, estão definidos a soma x + y e produto xy e tem-se 1 x +
Aula 11. Considere a função de duas variáveis f(x, y). Escrevemos: lim
Aula 11 Funções de 2 variáveis: Limites e Continuidade Considere a função de duas variáveis f(x, y). Escrevemos: f(x, y) = L (x,y) (a,b) quando temos que, se (x, y) (a, b) então f(x, y) L, isto é, se (x,
Capítulo 0: Conjuntos, funções, relações
Capítulo 0: Conjuntos, funções, relações Notação. Usaremos Nat para representar o conjunto dos números naturais; Int para representar o conjunto dos números inteiros. Para cada n Nat, [n] representa o
Propriedades das Funções Contínuas
Propriedades das Funções Contínuas Prof. Doherty Andrade 2005- UEM Sumário 1 Seqüências 2 1.1 O Corpo dos Números Reais.......................... 2 1.2 Seqüências.................................... 5
Conceitos de Linguagem de Programação - 2
Conceitos de Linguagem de Programação - 2 Arthur Jovita Guerra Thalles Santos Silva Universidade Estadual de Santa Cruz - Ilhéus, BA 1 de novembro de 2011 1 Revisão Natureza das linguagens de Programação
Linguagens Formais e Autômatos (LFA)
Linguagens Formais e Autômatos (LFA) Aula de 19/08/2013 Símbolos, Cadeias, Linguagens Propriedades e Representações Formais de Interesse 1 Nota preliminar ( O conceito de decomposição e suas representações
Axiomas de corpo ordenado
Axiomas de corpo ordenado 2 a lista de exercícios Análise real A abordagem axiomática dos números reais previne erros que a intuição pode ocasionar e torna mais rigoroso o processo de demonstração matemática,
A ordem em que os elementos se apresentam em um conjunto não é levada em consideração. Há
1 Produto Cartesiano Par Ordenado A ordem em que os elementos se apresentam em um conjunto não é levada em consideração. Há casos entretanto em que a ordem é importante. Daí a necessidade de se introduzir
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO TEORIA DA COMPUTAÇÃO Aula 04 Programa Recursivo e Máquinas Prof.ª Danielle Casillo Funções recursivas Alguma função é recursiva quando
Teoria Ergódica (9 a aula)
Outubro 2012 Espaços de Sequências Seja (X, d 0 ) um espaço métrico compacto. B Z (X ) = X Z = { x = (x j ) j Z : x j X, j Z } B N (X ) = X N = { x = (x j ) j N : x j X, j N } B(X ) designa indiferentemente
complemento para a disciplina de Matemática Discreta versão 1 - Jerônimo C. Pellegrini Relações de Equivalência e de Ordem
Relações de Equivalência e de Ordem complemento para a disciplina de Matemática Discreta versão 1 Jerônimo C. Pellegrini 5 de agosto de 2013 ii Sumário Sumário Nomenclatura 1 Conjuntos e Relações 1 1.1
Aulas 10 e 11 / 18 e 20 de abril
1 Conjuntos Aulas 10 e 11 / 18 e 20 de abril Um conjunto é uma coleção de objetos. Estes objetos são chamados de elementos do conjunto. A única restrição é que em geral um mesmo elemento não pode contar
Conceitos Básicos. Vocabulário Cadeias Linguagens Expressões Regulares Problema X Linguagem
Conceitos Básicos Vocabulário Cadeias Linguagens Expressões Regulares Problema X Linguagem Alfabeto ou Vocabulário: Conjunto finito não vazio de símbolos. Símbolo é um elemento qualquer de um alfabeto.
MAT Cálculo Avançado - Notas de Aula
bola fechada de centro a e raio r: B r [a] = {p X d(p, a) r} MAT5711 - Cálculo Avançado - Notas de Aula 2 de março de 2010 1 ESPAÇOS MÉTRICOS Definição 11 Um espaço métrico é um par (X, d), onde X é um
1.1 Propriedades básicas dos números reais, axiomática dos números reais.
I - Funções reais de variável real 1. Números Reais. 1.1 - Números naturais, números relativos, números racionais e números reais. De uma forma muito simples vamos recordar os números: Números Naturais
