Redução-β em Prolog SN :? N : M. Det :?

Tamanho: px
Começar a partir da página:

Download "Redução-β em Prolog SN :? N : M. Det :?"

Transcrição

1 Redução-β em Prolog Luiz Arthur Pagani (UFPR) Resumo Apresenta-se aqui uma nova implementação em Prolog para a operação de redução-β, parte do cálculo-λ importante para a semântica composicional, e que não apresenta o mesmo defeito das implementações de Pereira & Shieber e de Blackburn & Bos (em ambas, as variáveis ligadas pelo operador-λ acabam instanciadas com constantes, o que inviabiliza a manutenção do histórico derivacional das reduções). 1 Introdução O cálculo-λ é uma ferramenta indispensável para a construção da representação composicional da interpretação semântica de uma expressão linguística desde, pelo menos, o advento da Semântica de Montague (como podemos perceber facilmente em manuais de semântica formal, como [7, ps ], [3, p ], [8, p. 3439], [5, ps ]; e também em manuais de linguística computacional, como [6, ps. 6465] e [1, ps ]). Neste contexto, o cálculo-λ é usado, por exemplo, para identicar uma fórmula (um termo-λ) que represente o signicado do item lexical todo, em todo menino corre, de forma que ela colabore composicionalmente na representação do signicado daquela sentença; além disso, é possível unicar a representação do signicado dos quanticadores com a dos nomes próprios (chamada de quanticação generalizada, onde a denotação de ambas as fórmulas correspondem a conjuntos de conjuntos). Considerando que o signicado de todo menino corre seja representado pela clássica fórmula do cálculo de predicados x.[(m x) (C x)], e que os signicados de menino e corre também correspondam, respectivamente, aos clássicos predicados M e C, 1 podemos nos perguntar, primeiro, pela representação do signicado do SN e, depois, pela do Det todo, como esquematizado na árvore abaixo. S : x.[(m x) (C x)] SN :? SV : C Det :? N : M V : C todo menino corre Começando pelo SN, sabemos que o signicado da sentença é x.[(m x) (C x)] e que o do SV é C, podemos abstrair o segundo do primeiro, através do cálculo-λ (de arthur@ufpr.br, página de internet: arthur. 1 Esses predicados podem ser compreendidos como conjuntos de indivíduos (o de meninos, no primeiro caso; e o dos que correm, no segundo), mas também podem ser pensados como funções que levam de indivíduos a valores de verdade (as chamadas funções características ); como estas opções são equivalentes, vamos optar aqui pela representação funcional, por comodidade notacional e coerência conceitual. 1

2 acordo com sua apresentação, como veremos a seguir), e chegamos à conclusão de que o signicado do SN pode ser representado por λp. x.[(m x) (P x)]. A seguir abstraímos deste signicado a parte correspondente ao N, e obtemos a fórmula λq.λp. x.[(q x) (P x)], que representa nalmente o signicado do Det todo. Assim, podemos reconstruir composicionalmente a árvore acima da seguinte maneira: 2 todo menino corre Det : λq.λp. x.[(q x) (P x)] N : M V : C SN : (λq.λp. x.[(q x) (P x)] M) = red.β λp. x.[(m x) (P x)] S : (λp. x.[(m x) (P x)] C) = red.β x.[(m x) (C x)] O leitor perspicaz terá observado que, na derivação acima, o signicado do SN passa a ser uma função, que toma o signicado do SV como argumento (que também é uma função, o que faz da representação do signicado do SN uma função de segunda ordem) para resultar no signicado da sentença; mas isso é o oposto do que acontece tradicionalmente na explicação de uma sentença como Pedro corre, em que o SV é que corresponde à função que toma o signicado do SN como argumento. No entanto, com o cálculo-λ isso deixa de ser um problema: supondo que o signicado de Pedro seja representado por p (o indivíduo que é o próprio Pedro), basta promovê-lo para λp.(p p), para podermos usar o mesmo procedimento anterior, em que o signicado do SN é a função e o do SV é o argumento, como na árvore a seguir. Pedro N : p SN : λp.(p p) corre V : C SV : C S : (λp.(p p) C) = red.β (C p) Como recurso formal, uma representação através do cálculo de predicados acrescido do cálculo-λ é especialmente adequada para a construção composicional da interpretação semântica das expressões executada computacionalmente. Portanto, o objetivo do presente texto é o de apresentar uma implementação em Prolog deste recurso; para isso, iremos primeiro apresentar a denição do cálculo-λ e duas versões anteriores de implementação (uma bastante supercial e outra mais robusta), para que possamos identicar as limitações que vamos querer superar na implementação proposta aqui. 2 Mas a partir daqui vamos passar a empregar o chamado diagrama de Prawitz, bastante usado na Gramática Categorial, que simplica um pouco a apresentação da árvore, ainda que faça isso às custas de inverter o sentido com o qual os linguistas estão mais acostumados. 2

3 2 Cálculo-λ O cálculo-λ foi inventado pelo matemático americano Alonzo Church, a partir de meados dos anos 30, para tentar formalizar a Matemática através da noção de função, ao invés da teoria de conjuntos. Apesar de não ter servido aos seus propósitos originais, o cálculo- λ acabou exercendo uma função importante no estudo da computabilidade, de forma a ser considerado a menor língua universal de programação do mundo [11, p 1]. Seguindo a apresentação de Carpenter [4, p. 50], podemos denir o cálculo- λ a partir de três axiomas: 3 a. λη.α λδ.α[η δ] (redução-α) [δ / Livre(α) LivreP ara(δ, η, α)] b. (λη.α β) α[η β] (redução-β) [LivreP ara(β, η, α)] c. λη.(α η) α (redução-η) [η / Livre(α)] Como vamos nos concentrar na redução-β, não vamos comentar as outras duas reduções; além disso, por falta de espaço, também não apresentaremos as denições formais de Livre e LivreP ara (que podem ser encontradas em [4, ps. 4344]). O axioma da redução-β nos diz que um termo-λ com o formato λη.α (que corresponde a uma função), quando toma como argumento um termo com o formato β, resulta num termo constituído pela substituição, no termo α, de todas as ocorrências livres de η por β, contanto que β seja livre para substituir η em α (ou seja, ao substituir δ em α, nenhuma variável livre de β pode acabar sendo acidentalmente ligada). Já apresentamos três reduções-β na seção anterior, e agora vamos observais mais detidamente como elas foram executadas. Para aplicar a regra de redução à fórmula que representa a composição do signicado do SN todo menino, podemos colocá-la num esquema que esclarece a operação: 4 (λ Q. λp. x.[(q x) (P x)] M }{{} ) λp. x.[(m x) (P x)] Na linha central do esquema, temos a regra de redução-β; na linha de cima, a fórmula a ser reduzida; e na linha de baixo, o resultado da redução. As unicações estão identicadas com as chaves: se zermos o η da regra valer Q (η = Q), α = λp. x.[(q x) (P x)] e β = M, então o resultado será α[η β] = λp. x.[(m x) (P x)] (o M substitui o Q na fórmula instanciada em α). O mesmo vale para (λp. x.[(m x) (P x)] C), que é o signicado de todo menino corre: (λ }{{} P. x.[(m x) (P x)] C }{{} ) x.[(m x) (C x)] 3 A apresentação de Carpenter privilegia unicamente o sentido da redução, mas os axiomas também podem ser usados na expansão (foi o que zemos, na seção anterior, para deduzir o signicado de todo); quando apresentados nos dois sentidos, eles são chamados de convenção ou igualdade [9, ps. 5051]. 4 Minha notação é um pouco diferente da de Carpenter: coloco a função seguida do argumento (separados por um espaço) entre um par de parêntesis; na de Carpenter, apenas o argumento ca entre parêntesis. 3

4 E também para (λp.(p p) C), que representa o signicado de Pedro corre: (λ }{{} P. (P p) C }{{} ) (C p) Como último exemplo, vamos apresentar a redução-β de (λp.(p p) (λq.λx.(q x) C)), que é uma fórmula mais complexa e apresena mais de uma alternativa de redução. Temos, na verdade, duas opções para iniciar a série de reduções; 5 podemos começar reduzindo o operador-λ que liga a variável P, como a seguir: (λ }{{} P. (P p) (λq.λx.(q x) C) ) }{{} ((λq.(λx.(q x) C) p) E, depois fazer a redução da subfórmula para o operador-λ que liga a variável Q: (λ Q. λx.(q x) C }{{} ) λx.(c x) Ou, alternativamente, podemos começar reduzindo a subfórmula na qual ocorre a ligação da variável Q: (λ Q. λx.(q x) C }{{} ) λx.(c x) Substituindo, depois a fórmula reduzida na fórmula inicial, e procedendo uma nova redução: (λ }{{} P. (P p) λx.(c x) ) }{{} (λx.(c x) p) De qualquer maneira, no nal, obtemos a mesma fórmula, que precisa ainda passar pela última redução-β para chegarmos à forma equivalente mais simples para a fórmula inicial (λp.(p p) (λq.λx.(q x) C)): (λ }{{} x. (C x) p ) }{{} (C p) 5 Efetivemente, usando o cálculo-λ integralmente, teríamos mais alternativas, já que a subfórmula λq.(q x) pode sofrer uma redução-η; como aqui estamos nos concentrando na redução-β, não exploraremos esta possibilidade. 4

5 O que é importante observar, antes de passarmos às implementações, é que a reduçãoβ só se aplica a um termo-λ com a forma (λη.α β) onde η é uma variável, e α e β são outros termos-λ. 6 Mas, principalmente, aquilo que o operador-λ liga precisa ser necessariamente uma variável. 7 3 Implementações anteriores Passemos, então, às duas implementações encontradas. 3.1 Pereira & Shieber No livro de Pereira e Shieber [10, p. 96], podemos encontrar o que provavelmente seja a primeira tentativa de implementar a redução-β em Prolog, denida numa única linha: reduce(arg^expr, Arg, Expr). Todo o trabalho de redução é executado pela unicação do argumento (Arg) com a variável ligada pelo operador-λ (que aqui é representado pelo acento circunexo (^) em posição inxa); o resultado decorre da unicação com o escopo do operador ( Expr). Assim, para executar, por exemplo, a redução de (λp.(p p) C) é preciso converter a fórmula para o formato escolhido pelos autores. Além do operador-λ inxo (^), a aplicação funcional é representada pelo assim, a parte funcional da fórmula é escrita em Prolog como P^P@p. 8 E a redução pode ser invocada da seguinte maneira:?- reduce(p^p@p, c, Result). P = c, Result = c@p. Há fundamentalmente dois problemas nesta implementação. O primeiro é que ela não dá conta da complexidade estrutural de todas as fórmulas que poderíamos precisar reduzir; como a redução não é difundida para as subfórmulas da fórmula a ser reduzida, reduções em algumas dessas subfórmulas não seriam processadas. O segundo problema é que a unicação do argumento com a variável ligada pelo operador-λ acaba instanciando esta variável com uma constante (P = c); assim, caso precisássemos continuar usando a fórmula λp.(p p) (P^P@c) para manter um histórico derivacional ela já estaria correspondendo a λc.(c p) (c^c@p); ou seja, teríamos uma constante onde deveríamos ter obrigatoriamente uma variável. 6 Na notação que estamos usando, a dica para identicar uma redução-β é achar um parêntesis abrindo seguido do operador-λ:... (λ Não estamos dando atenção às restrições sobre ligação das variáveis porque no uso que fazemos da redução-β todas as variáveis introduzidas em qualquer derivação precisam ser novas; isso garante que não haja ligações indevidas (as únicas ligações são as que ocorrem com operadores de ligação inseridos lexicalmente). 8 Sem os parêntesis, a representação presupõe uma precedência maior do operador funcional em relação ao operador-λ. 5

6 3.2 Blackburn & Bos A outra implementação está no livro de Blackburn e Bos [2, ps. 7778], e pode ser obtida diretamente da internet. 9 Como podemos observar na listagem abaixo, ao lidar com a estrutura das fórmulas a serem reduzidas, esta implementação é capaz de fazer as reduções internas. betaconvert(x,y,[]):- var(x),!, Y=X. betaconvert(expression,result,stack):- nonvar(expression), Expression = app(functor,argument), betaconvert(functor,result,[argument Stack]),!. betaconvert(expression,result,[x Stack]):- nonvar(expression), Expression = lam(x,formula), betaconvert(formula,result,stack),!. betaconvert(formula,result,[]):- nonvar(formula),!, Formula =.. [Functor Formulas], betaconvertlist(formulas,resultformulas), Result =.. [Functor ResultFormulas]. No entanto, a seguir mostramos uma seção de redução de (λp.(p mia) λx.(snort x)) (que, na notação em Prolog dos autores, em que a aplicação funcional é representada pelo predicado app/2 e o operador-λ pelo predicado lam/2) é escrita como app(lam(a, app(a, mia)), lam(b, snort(b))).?- betaconvert(app(lam(a, app(a, mia)), lam(b, snort(b))), Result, []). A = lam(mia, snort(mia)), B = mia, Result = snort(mia). Como se nota, apesar de estruturalmente mais completo, este programa sofre do outro problema que o anterior também sofria: a unicação B = mia causa a unicação A = lam(mia, snort(mia)), tornando a fórmula reduzida inadequada para o registro do histórico derivacional, colocando uma constante onde só poderia haver uma variável. 4 Nova implementação Avaliando os resultados equivalentes em ambas as implementações anteriores, observase que as variáveis do Prolog são usadas para representar diretamente as variáveis da língua de representação da interpretação semântica. Desse modo, a nova proposta que será apresentada a seguir trata as variáveis da língua representacional como constantes do Prolog; apesar de poder soar inicialmente como uma contradição, na verdade, esta 9 O endereço é A versão apresentada aqui foi simplicada em relação ao arquivo disponibilizado na internet pelos autores, assemelhando-se mais à primeira versão comentada no livro. 6

7 opção segue a distinção entre variável e metavariável, tratando as variáveis como coisas a serem descritas, e portanto como coisas a serem referidas através de constantes, cando as variáveis do Prolog com a função de representar as metavariáveis. % Definição dos operadores :- op(500, % aplicação funcional :- op(550, xfx, /\). % conjunção :- op(550, xfx, =>). % implicação :- op(600, xfy, ^). % operador-lambda % Lista de conectivos proposicionais con_prop(/\). con_prop(=>). % Lista de quantificadores quant(algum). quant(todo). % reduz_lista(lista, Reduzido) % ****************************************** % * Reduzido é o resultado da redução-beta * % * recorrente do primeiro Termo da Lista * % ****************************************** reduz_lista(lista, Reduzido) :- Lista = [Termo _], reduz_termo(termo, Resultado), reduz_lista([resultado Lista], Reduzido),!. reduz_lista(resultado, Resultado). % reduz_termo(termo1, Termo2) % ************************************************** % * Termo2 é o resultado da redução-beta do Termo1 * % ************************************************** % Aplicação reduz_termo((var^termo)@arg, Resultado) :- substitui(termo, Var, Arg, Resultado). reduz_termo(termo1@termo2, Termo1@Resultado) :- reduz_termo(termo2, Resultado). reduz_termo(termo1@termo2, Resultado@Termo2) :- reduz_termo(termo1, Resultado). % Abstração reduz_termo(var^termo, Var^Resultado) :- reduz_termo(termo, Resultado). % Conectivos proposicionais reduz_termo(termo, Resultado) :- Termo =.. [Con, Termo1, Termo2], con_prop(con), reduz_termo(termo2, Parcial), 7

8 Resultado =.. [Con, Termo1, Parcial]. reduz_termo(termo, Resultado) :- Termo =.. [Con, Termo1, Termo2], con_prop(con), reduz_termo(termo1, Parcial), Resultado =.. [Con, Parcial, Termo2]. % Quantificadores reduz_termo(termo, Resultado) :- Termo =.. [Quant, Var, SubTermo], quant(quant), reduz_termo(subtermo, Parcial), Resultado =.. [Quant, Var, Parcial]. % substitui(termo1, Var, Termo2, Termo3) % *************************************************************** % * Termo3 é o resultado de substituir Var por Termo2 no Termo1 * % *************************************************************** % Variável substitui(x(m), x(n), Termo2, Termo3) :- ( x(m) \= x(n) -> Termo3 = x(m) ; Termo3 = Termo2 ). % Constante substitui(termo3, _, _, Termo3) :- atom(termo3). % Aplicação substitui(termo1a@termo1b, Var, Termo2, Termo3a@Termo3b) :- substitui(termo1a, Var, Termo2, Termo3a), substitui(termo1b, Var, Termo2, Termo3b). % Abstração substitui(var1^termo1, Var, Termo2, Termo3) :- ( Var1 = Var -> Termo3 = Var1^Termo1 ; substitui(termo1, Var, Termo2, Resultado), Termo3 = Var1^Resultado ). % Conectivos proposicionais substitui(termo1, Var, Termo2, Termo3) :- Termo1 =.. [Con, Termo1a, Termo1b], con_prop(con), substitui(termo1a, Var, Termo2, Termo3a), substitui(termo1b, Var, Termo2, Termo3b), Termo3 =.. [Con, Termo3a, Termo3b]. % Quantificadores substitui(termo1, Var, Termo2, Termo3) :- Termo1 =.. [Quant, Var1, SubTermo1], quant(quant), 8

9 ( Var1 = Var -> Termo3 =.. [Quant, Var1, SubTermo1] ; substitui(subtermo1, Var, Termo2, Resultado), Termo3 =.. [Quant, Var1, Resultado] ). Abaixo podemos observar um exemplo de uso da nova implementação. Para facilitar a apresentação, incluí no programa o predicado reduz_lista/2, que toma uma lista como entrada (que deve ser instanciada com uma lista que contenha apenas a fórmula a ser reduzida) e devolve como saída uma lista com a sequência de reduções-β executadas (em ordem inversa, devido ao empilhamento da lista no Prolog).?- reduz_lista([(x(0)^x(0)@p)@(x(1)^c@x(1))], Resultado). Resultado = [c@p, (x(1)^c@x(1))@p, (x(0)^x(0)@p)@ (x(1)^c@x(1))]. Neste exemplo, foi pedido que o programa reduzisse a fórmula (λp.(p p) λx.(c x)) (representada por (x(0)^x(0)@p)@(x(1)^c@x(1)), onde x(0) está para P e x(1) para x). Como se pode constatar, o programa produz uma lista com c@p na primeira posição (que corresponde a (C p), que é a forma normal da fórmula inicial de entrada), (x(1)^c@x(1))@p na posição intermediária (que corresponde à fórmula (λx.(c x) p)), e a própria fórmula de entrada na última posição. Assim, pudemos manter o histórico das reduções, sem instanciar variáveis com constantes nas expressões com o operador- λ. 5 Conclusões Evidentemente, é possível que haja uma possibilidade de remendar as implementações anteriores, de forma a evitar a propagação das instanciações indevidas. No entanto, a solução proposta aqui parece mais el à sintaxe do cálculo-λ e a uma certa losoa da programação em Prolog (e mesmo do cálculo de predicados), que determina que tratemos as entidades manipuladas como constantes e reservemos as variáveis para as asserções quanticadas. A presente proposta também inclui um exemplo da manipulação da estrutura do cálculo de predicados, dendo-se operadores para representar os conectivos proposicionais e usando predicados para representar os quanticadores. Aqui exemplicamos apenas a denição da conjunção e da implicação, mas os outros conectivos proposicionais poderiam ser facilmente introduzidos na implementação pelos mesmos moldes. 10 Finalmente, convém observar que o que foi apresentado aqui é apenas uma pequena parte da implementação do cálculo-λ. Não apenas não implementamos os outros dois axiomas (diferentemente de [2, ps. 7882], no qual se apresenta uma denição para a redução-α), como a implementação só foi concebida para o sentido da redução, e não para o da expansão (assim como a de Blackburn & Bos). No entanto, nas aplicações em que temos empregado a presente implementação (basicamente em assistentes de análise 10 A negação, por ser um conectivo unário (ao contrário dos outros, que são binários), exigiria um tratamento especial. De qualquer forma, bastaria incluir uma cláusula especíca na denição dos predicados reduz_termo/2 e substitui/2, nos mesmos termos da cláusula dos binários, mas apenas para um subtermo; ou, alternativamente, designar um predicado que percorresse a lista de subtermos reunidos pelo conectivo proposicional (a implementação de Blackburn & Bos faz exatamente isso na sua última cláusula, ainda que de forma precária: a sintaxe dos conectivos e dos quanticadores não é explicitada). 9

10 e analisadores gramaticais para Gramáticas Categoriais), não sentimos a necessidade de empregar nenhum dos outros dois axiomas (a ligação indevida de variáveis é evitada, como comentamos na nota 7, através da inserção de variáveis sempre novas; e ainda não encontramos motivação linguística para o emprego da conversão-η). Referências [1] James Allen. Natural Language Understanding. Benjamin/Cummings, California, second edition, [2] Patrick Blackburn and Johan Bos. Representation and Inference for Natural Language A First Course in Computational Semantics. CSLI, Stanford, CA, [3] Ronnie Cann. Formal Semantics An Introduction. Cambridge University Press, Cambridge, [4] Bob Carpenter. Type-Logical Semantics. The MIT Press, Cambridge, MA, [5] Gennaro Chierchia and Sally McConnell-Ginet. Meaning and Grammar An Introduction to Semantics. The MIT Press, Cambridge, MA, second edition, [6] Michael A. Covington. Natural Language Processing for Prolog Programmers. Prentice Hall, Englewood Clis, [7] David R. Dowty, Robert E. Wall, and Stanley Peters. Introduction to Montague Semantics. Reidel, Dordrecht, [8] Irene Heim and Angelika Kratzer. Semantics in Generative Grammar. Wiley- Blackwell, Oxford, [9] Glyn V. Morrill. Type Logical Grammar. Kluwer, Dordrecht, [10] Fernando C. N. Pereira and Stuart M. Shieber. Prolog and Natural Language Analysis. CSLI, Stanford, [11] Raúl Rojas. A tutorial introduction to the lambda calculus. [A partir de gupta/courses/apl/lambda.pdf, acessado em ],

Gramática de Montague

Gramática de Montague Gramática de Montague Apresentação Inicial Luiz Arthur Pagani 1 There is in my opinion no important theoretical dierence between natural languages and the articial languages of logicians; indeed I consider

Leia mais

Escopo in situ. 1 Introdução. 2 Recursos iniciais. Luiz Arthur Pagani (UFPR) 2.1 Sintaxe

Escopo in situ. 1 Introdução. 2 Recursos iniciais. Luiz Arthur Pagani (UFPR) 2.1 Sintaxe Escopo in situ Luiz Arthur Pagani (UFPR) 1 Introdução A ambigüidade devido à interação entre quanticadores já é conhecida há muito tempo, na semântica, e pode ser encontrada em diversos manuais de de introdução

Leia mais

Representação semântica em analisadores gramaticais. Luiz Arthur Pagani (UFPR)

Representação semântica em analisadores gramaticais. Luiz Arthur Pagani (UFPR) Representação semântica em analisadores gramaticais Luiz Arthur Pagani (UFPR) arthur@ufpr.br 1 1 Introdução Analisador gramatical (parser) é normalmente apenas analisador sintático: o resultado do processamento

Leia mais

Um problema formal na interpretação dos sintagmas preposicionados. Luiz Arthur Pagani (UFPR)

Um problema formal na interpretação dos sintagmas preposicionados. Luiz Arthur Pagani (UFPR) Um problema formal na interpretação dos sintagmas preposicionados Luiz Arthur Pagani (UFPR) 1 1 Introdução Diculdade em relação à interpretação dos sintagmas preposicionados que não recebeu muita atenção

Leia mais

Gramática Categorial Conectivo. Luiz Arthur Pagani (UFPR)

Gramática Categorial Conectivo. Luiz Arthur Pagani (UFPR) Gramática Categorial Conectivo Luiz Arthur Pagani (UFPR) 1 1 Motivação Pedro bateu em sua mulher e José fez o mesmo três interpretações: 1. Pedro e José bateram na mulher de Pedro 2. Pedro e José bateram,

Leia mais

Gramática Categorial Conectivo. Luiz Arthur Pagani (UFPR)

Gramática Categorial Conectivo. Luiz Arthur Pagani (UFPR) Luiz Arthur Pagani (UFPR) 1 1 Conj. integrante vs. pronome relativo Conjunção integrante sentença inteira como complemento: Maria acha que Pedro fuma Pedro disse que Maria odeia Grosbilda Grosbilda sabe

Leia mais

HL059 Língua Portuguesa VII

HL059 Língua Portuguesa VII HL059 Língua Portuguesa VII Luiz Arthur Pagani 24 de setembro de 2018 1 Faça a análise da sentença Pedro e Maria saíram, considerando os itens lexicais abaixo (além das entradas lexicais para Pedro e Maria,

Leia mais

Programação Funcional - Introdução a Cálculo Lambda

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

Leia mais

A sintaxe do cálculo de predicados (I), cap. 6 de Introdução à Lógica (Mortari 2001) Luiz Arthur Pagani

A sintaxe do cálculo de predicados (I), cap. 6 de Introdução à Lógica (Mortari 2001) Luiz Arthur Pagani A sintaxe do cálculo de predicados (I), cap. 6 de Introdução à Lógica (Mortari 2001) Luiz Arthur Pagani 1 1 Símbolos individuais alfabeto & gramática: para caracterizar uma linguagem formal necessitamos,

Leia mais

Analisadores Gramaticais em Prolog (Projeto de pesquisa)

Analisadores Gramaticais em Prolog (Projeto de pesquisa) Analisadores Gramaticais em Prolog (Projeto de pesquisa) Luiz Arthur Pagani http://people.ufpr.br/ arthur arthur@ufpr.br Resumo Neste texto, apresenta-se ao Departamento de Lingüística, Letras Vernáculas

Leia mais

Gramática, reconhecimento e análise gramatical. Luiz Arthur Pagani

Gramática, reconhecimento e análise gramatical. Luiz Arthur Pagani Gramática, reconhecimento e análise gramatical Luiz Arthur Pagani 1 1 Introdução estrutura de constituintes: Uma sentença em uma língua natural é composta por estruturas, chamadas de sintagmas ou constituintes

Leia mais

Paradigmas de Programação

Paradigmas de Programação Paradigmas de Programação Fabrício Olivetti de França 14 de Junho de 2018 1 λ-cálculo 2 Computabilidade Computabilidade é uma área de estudo central da Ciência da Computação. Ela estuda a possibilidade

Leia mais

Gramática Categorial: Inferência de informação morfológica verbo no passado. Luiz Arthur Pagani (UFPR)

Gramática Categorial: Inferência de informação morfológica verbo no passado. Luiz Arthur Pagani (UFPR) : Inferência de informação morfológica verbo no passado Luiz Arthur Pagani (UFPR) 1 1 Pedro correu Prior [2]: P operador proposicional `aconteceu de... ' representação: (P (C p)) `aconteceu de Pedro correr'

Leia mais

A sintaxe do cálculo de predicados (II), cap. 7 de Introdução à Lógica (Mortari 2001) Luiz Arthur Pagani

A sintaxe do cálculo de predicados (II), cap. 7 de Introdução à Lógica (Mortari 2001) Luiz Arthur Pagani A sintaxe do cálculo de predicados (II), cap. 7 de Introdução à Lógica (Mortari 2001) Luiz Arthur Pagani 1 1 Linguagens de primeira ordem (Onde se usa linguagem, vou preferir língua; porque o primeiro

Leia mais

Capítulo 3 Lógica de Primeira Ordem

Capítulo 3 Lógica de Primeira Ordem Capítulo 3 Lógica de Primeira Ordem Lógica para Programação LEIC - Tagus Park 1 o Semestre, Ano Lectivo 2007/08 c Inês Lynce and Luísa Coheur Bibliografia Martins J.P., Lógica para Programação, Capítulo

Leia mais

Introdução à Lógica de Predicados

Introdução à Lógica de Predicados Introdução à Lógica de Predicados Matemática Discreta I Rodrigo Ribeiro Departamento de Ciências Exatas e Aplicadas Universidade de Federal de Ouro Preto 10 de dezembro de 2012 Motivação (I) Considere

Leia mais

Lógica Proposicional. LEIC - Tagus Park 2 o Semestre, Ano Lectivo 2007/08. c Inês Lynce c Luísa Coheur

Lógica Proposicional. LEIC - Tagus Park 2 o Semestre, Ano Lectivo 2007/08. c Inês Lynce c Luísa Coheur Capítulo 2 Lógica Proposicional Lógica para Programação LEIC - Tagus Park 2 o Semestre, Ano Lectivo 2007/08 c Inês Lynce c Luísa Coheur Programa Apresentação Conceitos Básicos Lógica Proposicional ou Cálculo

Leia mais

Nomes e sintagmas nominais, aula 3 de Aulas Informais de Semântica Formal (Bach 1987) Luiz Arthur Pagani

Nomes e sintagmas nominais, aula 3 de Aulas Informais de Semântica Formal (Bach 1987) Luiz Arthur Pagani Nomes e sintagmas nominais, aula 3 de Aulas Informais de Semântica Formal (Bach 1987) Luiz Arthur Pagani 1 crença de que a estrutura lógica das línguas naturais não é igual à das línguas articiais da lógica:

Leia mais

Construções relativas de novo

Construções relativas de novo Construções relativas de novo Luiz Arthur Pagani (UFPR) http://wwwufprbr/arthur arthur@ufprbr Esta apresentação foi preparada no sistema LATEX, através de uma de suas implementações para Linux o TEXLive

Leia mais

Impressões lingüísticas sobre duas axiomatizações para a Gramática Categorial

Impressões lingüísticas sobre duas axiomatizações para a Gramática Categorial Impressões lingüísticas sobre duas axiomatizações para a Gramática Categorial Luiz Arthur Pagani (UFPR) arthur@ufpr.br http://people.ufpr.br/ arthur 1 Introdução No presente texto, 1 discute-se de um ponto

Leia mais

Elementos de Lógica Matemática p. 1/2

Elementos de Lógica Matemática p. 1/2 Elementos de Lógica Matemática Uma Breve Iniciação Gláucio Terra glaucio@ime.usp.br Departamento de Matemática IME - USP Elementos de Lógica Matemática p. 1/2 Vamos aprender a falar aramaico? ǫ > 0 ( δ

Leia mais

Gramática Categorial Independente

Gramática Categorial Independente Gramática Categorial Independente Luiz Arthur Pagani (DELIN/UFPR) http://people.ufpr.br/ arthur arthur@ufpr.br Fevereiro de 2011 Sumário 1 Introdução 3 1.1 Fundamentos............................................................

Leia mais

SCC Capítulo 2 Lógica de Predicados

SCC Capítulo 2 Lógica de Predicados SCC-630 - Capítulo 2 Lógica de Predicados João Luís Garcia Rosa 1 1 Departamento de Ciências de Computação Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos http://www.icmc.usp.br/~joaoluis

Leia mais

Inteligência Artificial IA II. LÓGICA DE PREDICADOS PARA REPRESENTAÇÃO DO CONHECIMENTO

Inteligência Artificial IA II. LÓGICA DE PREDICADOS PARA REPRESENTAÇÃO DO CONHECIMENTO Inteligência Artificial IA Prof. João Luís Garcia Rosa II. LÓGICA DE PREDICADOS PARA REPRESENTAÇÃO DO CONHECIMENTO 2004 Representação do conhecimento Para representar o conhecimento do mundo que um sistema

Leia mais

Cálculo Lambda Sem Tipos

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

Leia mais

Lógica para computação - Linguagem da Lógica de Predicados

Lógica para computação - Linguagem da Lógica de Predicados DAINF - Departamento de Informática Lógica para computação - Linguagem da Lógica de Predicados Prof. Alex Kutzke ( http://alex.kutzke.com.br/courses ) 13 de Outubro de 2015 Razões para uma nova linguagem

Leia mais

Interpretações, cap. 8 de Introdução à Lógica (Mortari 2001) Luiz Arthur Pagani

Interpretações, cap. 8 de Introdução à Lógica (Mortari 2001) Luiz Arthur Pagani Interpretações, cap. 8 de Introdução à Lógica (Mortari 2001) Luiz Arthur Pagani 1 1 Signicado e verdade condições para verdadeiro ou falso: Como um argumento é (intuitivamente) válido se não é possível

Leia mais

SCC5869 Tópicos em Processamento de Língua Natural. Expressão lingüística representação do significado. São necessários para automação do processo

SCC5869 Tópicos em Processamento de Língua Natural. Expressão lingüística representação do significado. São necessários para automação do processo SEMÂNTICA PARTE 2 SCC5869 Tópicos em Processamento de Língua Natural Thiago A. S. Pardo ANÁLISE SEMÂNTICA Expressão lingüística representação do significado São necessários para automação do processo Grande

Leia mais

Referência dinâmica. Luiz Arthur Pagani (UFPR)

Referência dinâmica. Luiz Arthur Pagani (UFPR) Referência dinâmica Luiz Arthur Pagani (UFPR) 1 1 Introdução Motivo: sendo I uma função, ela não pode atribuir à mesma constante dois ou mais indivíduos [5, p. 160; grifo no original]. Com nome, argumento

Leia mais

Preliminares, cap. 3 de Introdução à Lógica (Mortari 2001) Luiz Arthur Pagani

Preliminares, cap. 3 de Introdução à Lógica (Mortari 2001) Luiz Arthur Pagani Preliminares, cap. 3 de Introdução à Lógica (Mortari 2001) Luiz Arthur Pagani 1 1 Linguagens linguagem: sistema de símbolos que serve como meio de comunicação (p. 31) articial natural: isso não se restringe

Leia mais

Lógica Proposicional. LEIC - Tagus Park 2 o Semestre, Ano Lectivo 2007/08. c Inês Lynce c Luísa Coheur

Lógica Proposicional. LEIC - Tagus Park 2 o Semestre, Ano Lectivo 2007/08. c Inês Lynce c Luísa Coheur Capítulo 2 Lógica Proposicional Lógica para Programação LEIC - Tagus Park 2 o Semestre, Ano Lectivo 2007/08 c Inês Lynce c Luísa Coheur Programa Apresentação Conceitos Básicos Lógica Proposicional ou Cálculo

Leia mais

UNIDADE ACADÊMICA: Faculdade de

UNIDADE ACADÊMICA: Faculdade de UNIVERSIDADE FEDERAL DE UBERLÂNDIA FACULDADE DE COMPUTAÇÃO BACHARELADO EM SISTEMAS DE INFORMAÇÃO PLANO DE DISCIPLINA DISCIPLINA: Programação Lógica ( X ) SEMESTRAL - ( ) ANUAL CÓDIGO: GSI010 PERÍODO: 2

Leia mais

Reference, anaphora and deixis in predicate calculus and natural language. Luiz Arthur Pagani (UFPR)

Reference, anaphora and deixis in predicate calculus and natural language. Luiz Arthur Pagani (UFPR) Reference, anaphora and deixis in predicate calculus and natural language Luiz Arthur Pagani (UFPR) 1 1 Introduction Identication in structures for interpretation: reference anaphora deixis Both in predicate

Leia mais

Nelma Moreira. Aula 17

Nelma Moreira. Aula 17 Lógica e Programação Nelma Moreira Aula 17 Conteúdo 1 Programação em Lógica 1 1.1 Resolução para a lógica proposicional................ 1 1.2 Cláusulas............................... 3 1.3 Conversão para

Leia mais

INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA

INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA PARA A COMPUTAÇÃO PROF. DANIEL S. FREITAS UFSC - CTC - INE Prof. Daniel S. Freitas - UFSC/CTC/INE/2007 p.1/59 1 - LÓGICA E MÉTODOS DE PROVA 1.1) Lógica Proposicional

Leia mais

SCC Capítulo 5 Representação de Conhecimento através do Prolog

SCC Capítulo 5 Representação de Conhecimento através do Prolog SCC-630 - Capítulo 5 Representação de Conhecimento através do Prolog João Luís Garcia Rosa 1 1 Departamento de Ciências de Computação Instituto de Ciências Matemáticas e de Computação Universidade de São

Leia mais

Fórmulas da lógica proposicional

Fórmulas da lógica proposicional Fórmulas da lógica proposicional As variáveis proposicionais p, q, são fórmulas (V P rop ) é fórmula (falso) α e β são fórmulas, então são fórmulas (α β), (α β), (α β) e ( α) DCC-FCUP -TAI -Sistemas Dedutivos

Leia mais

Aula 7: Dedução Natural 2

Aula 7: Dedução Natural 2 Lógica para Computação Segundo Semestre, 2014 DAINF-UTFPR Aula 7: Dedução Natural 2 Prof. Ricardo Dutra da Silva -introdução Dada uma premissa A, nós podemos concluir A B para qualquer fórmula B. A justificativa

Leia mais

Autômatos e Linguagens

Autômatos e Linguagens Autômatos e Linguagens Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Agosto, 2016 1 / 41 Sumário 1 Compiladores 2 Linguagens de programação 3 Ciência dos compiladores

Leia mais

Lógica Computacional

Lógica Computacional Lógica Computacional 3.ano LCC e LERSI URL: http://www.ncc.up.pt/~nam/aulas/0304/lc Escolaridade: 3.5T e 1P Frequência:Semanalmente serão propostos trabalhos aos alunos, que serão entregues até hora e

Leia mais

Análise Sintática II. Eduardo Ferreira dos Santos. Outubro, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 34

Análise Sintática II. Eduardo Ferreira dos Santos. Outubro, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 34 Análise Sintática II Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Outubro, 2016 1 / 34 Sumário 1 Introdução 2 Ambiguidade 3 Análise sintática descendente 4

Leia mais

NHI Lógica Básica (Lógica Clássica de Primeira Ordem)

NHI Lógica Básica (Lógica Clássica de Primeira Ordem) NHI2049-13 (Lógica Clássica de Primeira Ordem) página da disciplina na web: http://professor.ufabc.edu.br/~jair.donadelli/logica O assunto O que é lógica? Disciplina que se ocupa do estudo sistemático

Leia mais

Andamento da apresentação

Andamento da apresentação Andamento da apresentação 1 Discussão informal Linguagem formal Abreviaturas Exemplos de linguagens de primeira ordem Variáveis livres e ligadas; substituição de variáveis Teoremas de unicidade de representação

Leia mais

Análise Sintática I. Eduardo Ferreira dos Santos. Abril, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 42

Análise Sintática I. Eduardo Ferreira dos Santos. Abril, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 42 Análise Sintática I Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Abril, 2017 1 / 42 Sumário 1 Introdução 2 Derivações 3 Ambiguidade 4 Análise sintática descendente

Leia mais

Lógica Computacional (CC2003)

Lógica Computacional (CC2003) Lógica Computacional (CC2003) Nelma Moreira Lógica Computacional 21 Conteúdo 1 Mais Teorias (decidíveis) 1 1.1 Resolução para a lógica proposicional................ 4 1.2 Cláusulas...............................

Leia mais

Lógica. Cálculo Proposicional. Introdução

Lógica. Cálculo Proposicional. Introdução Lógica Cálculo Proposicional Introdução Lógica - Definição Formalização de alguma linguagem Sintaxe Especificação precisa das expressões legais Semântica Significado das expressões Dedução Provê regras

Leia mais

Cálculo proposicional

Cálculo proposicional O estudo da lógica é a análise de métodos de raciocínio. No estudo desses métodos, a lógica esta interessada principalmente na forma e não no conteúdo dos argumentos. Lógica: conhecimento das formas gerais

Leia mais

Lógica Computacional

Lógica Computacional Lógica Computacional Lógica de Operadores Booleanos Interpretações Tautológicas, Lógicas e Analíticas Funcionalidade / Tabelas de Verdade dos Operadores Booleanos Consequências Tautológica, Lógica e Analítica

Leia mais

Aula 6: Dedução Natural

Aula 6: Dedução Natural Lógica para Computação Primeiro Semestre, 2015 DAINF-UTFPR Aula 6: Dedução Natural Prof. Ricardo Dutra da Silva Em busca de uma forma de dedução mais próxima do que uma pessoa costuma fazer, foi criado

Leia mais

1 Lógica de primeira ordem

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

Leia mais

JOÃO NUNES de SOUZA. LÓGICA para CIÊNCIA da COMPUTAÇÃO. Uma introdução concisa

JOÃO NUNES de SOUZA. LÓGICA para CIÊNCIA da COMPUTAÇÃO. Uma introdução concisa JOÃO NUNES de SOUZA LÓGICA para CIÊNCIA da COMPUTAÇÃO Uma introdução concisa 21 de maio de 2008 1 A linguagem da Lógica Proposicional Introdução Alfabeto da Lógica Proposicional Definição 1.1 (alfabeto)

Leia mais

Lógica Proposicional. Prof. Dr. Silvio do Lago Pereira. Departamento de Tecnologia da Informação Faculdade de Tecnologia de São Paulo

Lógica Proposicional. Prof. Dr. Silvio do Lago Pereira. Departamento de Tecnologia da Informação Faculdade de Tecnologia de São Paulo Lógica Proposicional Prof. Dr. Silvio do Lago Pereira Departamento de Tecnologia da Informação aculdade de Tecnologia de São Paulo Motivação IA IA estuda estuda como como simular simular comportamento

Leia mais

Apesar de não ser um modelo de análise lingüística tão conhecido como GRAMÁTICA CATEGORIAL ATRAVÉS DE ESTRUTURA DE CARACTERÍSTICAS

Apesar de não ser um modelo de análise lingüística tão conhecido como GRAMÁTICA CATEGORIAL ATRAVÉS DE ESTRUTURA DE CARACTERÍSTICAS GRAMÁTICA CATEGORIAL ATRAVÉS DE ESTRUTURA DE CARACTERÍSTICAS Luiz Arthur Pagani * Introdução Apesar de não ser um modelo de análise lingüística tão conhecido como a Gramática Gerativa, ou mesmo como alguns

Leia mais

Todos os pássaros têm pena. Nem todos os passáros voam. Todo inteiro primo maior que dois é ímpar

Todos os pássaros têm pena. Nem todos os passáros voam. Todo inteiro primo maior que dois é ímpar O que procuramos? Todos os pássaros têm pena. Nem todos os passáros voam. Todo inteiro primo maior que dois é ímpar Pode ser tratado no cálculo sentencial, o qual não captura toda estrutura da sentença.

Leia mais

Aula 2: Linguagem Proposicional

Aula 2: Linguagem Proposicional Lógica para Computação Primeiro Semestre, 2015 Aula 2: Linguagem Proposicional DAINF-UTFPR Prof. Ricardo Dutra da Silva Linguagens naturais, como o nosso Português, podem expressar ideias ambíguas ou imprecisas.

Leia mais

Lambda Cálculo e Programação Funcional. Programação Funcional Bacharelado em Sistemas de Informação Maio

Lambda Cálculo e Programação Funcional. Programação Funcional Bacharelado em Sistemas de Informação Maio Lambda Cálculo e Programação Funcional Programação Funcional Bacharelado em Sistemas de Informação Maio - 2009 Alonzo Church (1903 1995) Professor em Princeton, EUA (1929 1967) e UCLA (1967 1990) Inventou

Leia mais

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

Leia mais

Lógica Computacional

Lógica Computacional Lógica Computacional Modus Ponens e Raciocínio Hipotético Introdução e eliminação da Implicação e da Equivalência Completude e Coerência do Sistema de Dedução Natural 24 Outubro 2016 Lógica Computacional

Leia mais

Dedução Natural para Lógica Proposicional

Dedução Natural para Lógica Proposicional Dedução Natural para Lógica Proposicional Matemática Discreta I Rodrigo Ribeiro Departamento de Ciências Exatas e Aplicadas Universidade de Federal de Ouro Preto 11 de dezembro de 2012 Motivação (I) Considere

Leia mais

A diculdade da denição de palavra. Luiz Arthur Pagani (UFPR)

A diculdade da denição de palavra. Luiz Arthur Pagani (UFPR) A diculdade da denição de palavra (UFPR) 1 sentença maior unidade gramatical: A frase é a maior unidade de descrição gramatical. [1, p. 180] sentença sem distribuição: a noção de distribuição que se baseia

Leia mais

01/09/2014. Capítulo 1. A linguagem da Lógica Proposicional

01/09/2014. Capítulo 1. A linguagem da Lógica Proposicional Capítulo 1 A linguagem da Lógica Proposicional 1 Introdução O estudo da Lógica é fundamentado em: Especificação de uma linguagem Estudo de métodos que produzam ou verifiquem as fórmulas ou argumentos válidos.

Leia mais

Centro Universitário do Triângulo

Centro Universitário do Triângulo Centro Universitário do Triângulo Cálculo Lambda 1. Introdução A elaboração de modelos de computação (resolução de problemas por uma máquina) baseia-se em trabalhos de dois pesquisadores com enfoques bastante

Leia mais

Sintaxe Denição inicial. Luiz Arthur Pagani (UFPR)

Sintaxe Denição inicial. Luiz Arthur Pagani (UFPR) Sintaxe Denição inicial (UFPR) 1 1 Introdução primeira denição: língua: A sintaxe é o estudo dos princípios e dos processos por meio dos quais as sentenças são construídas em línguas partuculares. O estudo

Leia mais

3 AULA. Valorações e Tabelas de Verdade LIVRO. META: Apresentar tabelas de verdade para classificar proposições lógicas.

3 AULA. Valorações e Tabelas de Verdade LIVRO. META: Apresentar tabelas de verdade para classificar proposições lógicas. 1 LIVRO Valorações e Tabelas de Verdade META: Apresentar tabelas de verdade para classificar proposições lógicas. OBJETIVOS: Ao fim da aula os alunos deverão ser capazes de: Aplicar valorações de um conjunto

Leia mais

IMPRESSÕES LINGÜÍSTICAS SOBRE DUAS

IMPRESSÕES LINGÜÍSTICAS SOBRE DUAS IMPRESSÕES LINGÜÍSTICAS SOBRE DUAS AXIOMATIZAÇÕES PARA A GRAMÁTICA CATEGORIAL * Linguistic impressions on two axiomatizations for Categorial Grammar Luiz Arthur Pagani ** INTRODUÇÃO No presente texto,

Leia mais

Linguagens de Programação e Programação Funcional

Linguagens de Programação e Programação Funcional Linguagens de Programação e Programação Funcional GSI004 Aula 01* Faculdade de Computação UFU *baseada nos slides do Professor Paulo Henrique Ribeiro Gabriel 30 de setembro de 2014 GSI004 Aula 01 30 de

Leia mais

Lógica Computacional

Lógica Computacional Lógica Computacional Nelma Moreira Departamento de Ciência de Computadores da FCUP Lógica Computacional Aula 1 http://www.dcc.fc.up.pt/~nam/web/teaching/lc2015/ index.html Cursos: LCC, MIERSI e (como Lógica

Leia mais

5 Implementação do Corretor de Programas

5 Implementação do Corretor de Programas Implementação do Corretor de Programas 67 5 Implementação do Corretor de Programas 5.1 Introdução Para validar as idéias expostas anteriormente, faz-se necessário implementar um corretor de programas com

Leia mais

Programação em Lógica. UCPEL/CPOLI/BCC Lógica para Ciência da Computação Luiz A M Palazzo Maio de 2010

Programação em Lógica. UCPEL/CPOLI/BCC Lógica para Ciência da Computação Luiz A M Palazzo Maio de 2010 Programação em Lógica UCPEL/CPOLI/BCC Lógica para Ciência da Computação Luiz A M Palazzo Maio de 2010 Roteiro Introdução Conceitos Básicos Linguagens Lógicas Semântica de Modelos Semântica de Prova Programação

Leia mais

1 Postulado de Church-Turing 1

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:

Leia mais

Dedução Natural LÓGICA APLICADA A COMPUTAÇÃO. Professor: Rosalvo Ferreira de Oliveira Neto

Dedução Natural LÓGICA APLICADA A COMPUTAÇÃO. Professor: Rosalvo Ferreira de Oliveira Neto Dedução Natural LÓGICA APLICADA A COMPUTAÇÃO Professor: Rosalvo Ferreira de Oliveira Neto Estrutura 1. Definições 2. Dedução Natural 3. Lista Um dos objetivos principais da lógica é o estudo de estruturas

Leia mais

A Lógica de Primeira Ordem

A Lógica de Primeira Ordem Capítulo 10 A Lógica de Primeira Ordem A Lógica de Primeira Ordem: A necessidade de uma linguagem mais expressiva O cálculo proposicional possui limitações com respeito a codificação de sentenças declarativas.

Leia mais

Linguagens de Programação Funcional

Linguagens de Programação Funcional Linguagens de Programação Funcional Conceitos de Linguagens de Programação Pedro Libório Setembro de 2013 2 Roteiro Introdução Funções matemáticas Fundamentos das linguagens de programação funcionais A

Leia mais

Lógica Matemática 1. Semana 7, 8 e 9. Material Previsto para três semanas

Lógica Matemática 1. Semana 7, 8 e 9. Material Previsto para três semanas Lógica Matemática 1 Semana 7, 8 e 9. Professor Luiz Claudio Pereira Departamento Acadêmico de Matemática Universidade Tecnológica Federal do Paraná Material Previsto para três semanas Implicação e equivalência

Leia mais

Lógica predicados. Lógica predicados (continuação)

Lógica predicados. Lógica predicados (continuação) Lógica predicados (continuação) Uma formula está na forma normal conjuntiva (FNC) se é uma conjunção de cláusulas. Qualquer fórmula bem formada pode ser convertida para uma FNC, ou seja, normalizada, seguindo

Leia mais

Universidade Estadual De Santa Cruz (UESC)

Universidade Estadual De Santa Cruz (UESC) Universidade Estadual De Santa Cruz (UESC) CET087 - Conceitos de Linguagem de Programação Prof. Dr. Marcelo Ossamu Honda Departamento de Ciências Exatas e Tecnológicas (DCET) mohonda.uesc(at)google(.)com

Leia mais

Fundamentos de Lógica Matemática

Fundamentos de Lógica Matemática Webconferência 6-29/03/2012 Introdução à Lógica de Predicados Prof. L. M. Levada http://www.dc.ufscar.br/ alexandre Departamento de Computação (DC) Universidade Federal de São Carlos (UFSCar) 2012/1 Introdução

Leia mais

Módulo II: Implementação do λ-calculus

Módulo II: Implementação do λ-calculus Módulo II: Implementação do λ-calculus 0 Módulo II: Implementação do λ-calculus MCC - 2 o ano José Bernardo Barros (jbb@di.uminho.pt) José Carlos Bacelar Almeida (bacelar@di.uminho.pt) Departamento de

Leia mais

EXERCÍCIOS DE PROGRAMAÇÃO EM LÓGICA

EXERCÍCIOS DE PROGRAMAÇÃO EM LÓGICA FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO EXERCÍCIOS DE PROGRAMAÇÃO EM LÓGICA LUÍS PAULO REIS DANIEL CASTRO SILVA MESTRADO INTEGRADO EM ENGENHARIA INFORMÁTICA E COMPUTAÇÃO PROGRAMAÇÃO EM LÓGICA

Leia mais

Dedução Natural e Sistema Axiomático Pa(Capítulo 6)

Dedução Natural e Sistema Axiomático Pa(Capítulo 6) Dedução Natural e Sistema Axiomático Pa(Capítulo 6) LÓGICA APLICADA A COMPUTAÇÃO Professor: Rosalvo Ferreira de Oliveira Neto Estrutura 1. Definições 2. Dedução Natural 3. Sistemas axiomático Pa 4. Lista

Leia mais

Lógica e Programação - Folha de trabalho n. 7

Lógica e Programação - Folha de trabalho n. 7 Os exercícios 1, 2, 5, 6, 7, 8 e 12 são de Alguns Problemas de Prolog, Miguel Filgueiras, Pedro Ribeiro DCC-FCUP 2004-2006. Todos os exercícios são para ser resolvidos em linguagem Prolog. 1 Listas 1 Define

Leia mais

Lógica e prova de resolução Marco Henrique Terra

Lógica e prova de resolução Marco Henrique Terra Lógica e prova de resolução Marco Henrique Terra Introdução à Inteligência Artificial Introdução n Este capítulo trata de lógica. l Inicialmente discute-se se a notação empregada em lógica. l Depois mostra-se

Leia mais

Lógica Proposicional (Consequência lógica / Dedução formal)

Lógica Proposicional (Consequência lógica / Dedução formal) Faculdade de Tecnologia Senac Pelotas Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas Matemática Aplicada Prof. Edécio Fernando Iepsen Lógica Proposicional (Consequência lógica /

Leia mais

Mundos sucientes e tempo, aula 2 de Aulas Informais de Semântica Formal (Bach 1987) Luiz Arthur Pagani

Mundos sucientes e tempo, aula 2 de Aulas Informais de Semântica Formal (Bach 1987) Luiz Arthur Pagani Mundos sucientes e tempo, aula 2 de Aulas Informais de Semântica Formal (Bach 1987) Luiz Arthur Pagani 1 Que tipo de estrutura de modelos é apropriada ou adequada para as línguas naturais? (p. 15) gramática

Leia mais

3 Cálculo Proposicional

3 Cálculo Proposicional 3 Cálculo Proposicional O Cálculo Proposicional é um dos tópicos fundamentais da Lógica e consiste essencialmente da formalização das relações entre sentenças (ou proposições), de nidas como sendo frases

Leia mais

Métodos de Verificação

Métodos de Verificação Método de Na construção de derivações no sistema de cálculo de sequentes: Na aplicação de cada regra, só a manipulação referente à fórmula principal é informativa. A cópia dos contextos revela-se assim

Leia mais

Variáveis e Memória. Revisão. Conceitos. Operações sobre a memória

Variáveis e Memória. Revisão. Conceitos. Operações sobre a memória Variáveis e Memória Revisão Estudamos, na Introdução, que os programas de computador implementam algoritmos, os quais manipulam um conjunto de dados para produzir um resultado. O algoritmo é um conjunto

Leia mais

Análise Sintática. Eduardo Ferreira dos Santos. Outubro, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 18

Análise Sintática. Eduardo Ferreira dos Santos. Outubro, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 18 Análise Sintática Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Outubro, 2016 1 / 18 Sumário 1 Introdução 2 Derivações 2 / 18 1 Introdução 2 Derivações 3 /

Leia mais

Prof. A. G. Silva. 06 de outubro de Prof. A. G. Silva Programação em Lógica 06 de outubro de / 1

Prof. A. G. Silva. 06 de outubro de Prof. A. G. Silva Programação em Lógica 06 de outubro de / 1 Programação em Lógica Prof. A. G. Silva 06 de outubro de 2016 Prof. A. G. Silva Programação em Lógica 06 de outubro de 2016 1 / 1 Gramáticas Processamento de linguagens naturais é um dos principais usos

Leia mais

Computação efectiva. Que linguagens podem ser reconhecidas por algum tipo de autómato?

Computação efectiva. Que linguagens podem ser reconhecidas por algum tipo de autómato? Computação efectiva Que linguagens podem ser reconhecidas por algum tipo de autómato? O que é ser computável? Que linguagens são computáveis? Existem linguagens que não são computáveis? Isto é, existem

Leia mais

Espaços quase topológicos: o caso em que cada conjunto fechado é também aberto. Introdução. Hércules de A. Feitosa, Mauri C.

Espaços quase topológicos: o caso em que cada conjunto fechado é também aberto. Introdução. Hércules de A. Feitosa, Mauri C. Espaços quase topológicos: o caso em que cada conjunto fechado é também aberto Hércules de A. Feitosa, Mauri C. do Nascimento, Departamento de Matemática, FC, UNESP, 17033-360, Bauru, SP E-mail: haf@fc.unesp.br,

Leia mais

A linguagem da Lógica de Predicados. (Capítulo 8) LÓGICA APLICADA A COMPUTAÇÃO. Professor: Rosalvo Ferreira de Oliveira Neto

A linguagem da Lógica de Predicados. (Capítulo 8) LÓGICA APLICADA A COMPUTAÇÃO. Professor: Rosalvo Ferreira de Oliveira Neto A linguagem da Lógica de Predicados (Capítulo 8) LÓGICA APLICADA A COMPUTAÇÃO Professor: Rosalvo Ferreira de Oliveira Neto Estrutura 1. Contextualização 2. Definições 3. Exemplos 4. Lista 3 O que não é

Leia mais

Aula 12: Lógica de Predicados

Aula 12: Lógica de Predicados Lógica para Computação Primeiro Semestre, 2015 Aula 12: Lógica de Predicados DAINF-UTFPR Prof. Ricardo Dutra da Silva Vamos estender a lógica proposicional para torná-la mais expressiva. Na lógica proposicional,

Leia mais

Juliana Kaizer Vizzotto. Universidade Federal de Santa Maria. Disciplina de Teoria da Computação

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

Leia mais

Trabalho Prático 2 Mundo dos Blocos Alocação Dinâmica / Listas Encadeadas

Trabalho Prático 2 Mundo dos Blocos Alocação Dinâmica / Listas Encadeadas Disciplina: Algoritmos e Estrutura de Dados I CIC / 9 Trabalho Prático Mundo dos Blocos Alocação Dinâmica / Listas Encadeadas Valor:,5 pontos (5% da nota total) Documentação não-latex: -, pontos Impressão

Leia mais

Lógica Computacional

Lógica Computacional Aula Teórica 2: Sintaxe da Lógica Proposicional António Ravara Simão Melo de Sousa Departamento de Informática, Faculdade de Ciências e Tecnologia, Universidade Nova de Lisboa Departamento de Informática,

Leia mais

Alfabeto da Lógica Proposicional

Alfabeto da Lógica Proposicional Ciência da Computação Alfabeto da Lógica Sintaxe e Semântica da Lógica Parte I Prof. Sergio Ribeiro Definição 1.1 (alfabeto) - O alfabeto da é constituído por: símbolos de pontuação: (, ;, ) símbolos de

Leia mais

COMPILAÇÃO. Ricardo José Cabeça de Souza

COMPILAÇÃO. Ricardo José Cabeça de Souza COMPILAÇÃO Ricardo José Cabeça de Souza www.ricardojcsouza.com.br Programas Código-fonte escrito em linguagem de programação de alto nível, ou seja, com um nível de abstração muito grande, mais próximo

Leia mais

PAPEL. Utilização do (analisador sintáctico) PEN para extracção de informação das denições de um dicionário

PAPEL. Utilização do (analisador sintáctico) PEN para extracção de informação das denições de um dicionário PAPEL Palavras Associadas Porto Editora Linguateca Utilização do (analisador sintáctico) PEN para extracção de informação das denições de um dicionário Hugo Gonçalo Oliveira, Paulo Gomes Linguateca, pólo

Leia mais

2 AULA. Conectivos e Quantificadores. lógicas. LIVRO. META: Introduzir os conectivos e quantificadores

2 AULA. Conectivos e Quantificadores. lógicas. LIVRO. META: Introduzir os conectivos e quantificadores 1 LIVRO Conectivos e Quantificadores Lógicos META: Introduzir os conectivos e quantificadores lógicos. OBJETIVOS: Ao fim da aula os alunos deverão ser capazes de: Compreender a semântica dos conectivos

Leia mais