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 local a indicar e que serão discutidos nas aulas práticas. Obtenção de frequência: Aproveitamento em 2/3 dos trabalhos propostos Método de avaliação T rab trabalhos apresentados nas aulas práticas T este 1 teste Exame Exame final (nota mínima 6 em 20) Aprovação:(T rab 0.20) + T este 0.20 + Exame 0.6 9.5 Departamento de Ciência de Computadores da FCUP LC Aula 1 1
Objectivos Introdução à lógica matemática numa perspectiva computacional. noções básicas do raciocínio lógico e utilização correcta dos sistemas dedutivos Relação entre semântica e sistemas dedutivos: integridade e completude(o que é válido é deduzível; o que é deduzível é válido)... Questões de decidibilidade e computabilidade aplicação da lógica na ciência de computadores em especial na programação em lógica (base de linguagens como o prolog...) Departamento de Ciência de Computadores da FCUP LC Aula 1 2
Breve História da Lógica Aristóteles (384-322 AC) Criador da Lógica formal como uma ciência que estuda e classifica as formas de raciocínio (válidas ou não): noção de proposição (verdadeiras ou falsas) conjunção, disjunção, implicação e negação quantificadores silogismos Exemplo: modus ponens de A B e de A inferir B George Boole (1847) fundador da lógica matemática. lógica proposicional como uma álgebra. Sistematizou a ({0, 1} S,, ) é uma álgebra com os axiomas: comutatividade de e ; 0 e 1 identidades; distributividade ; inversos Departamento de Ciência de Computadores da FCUP LC Aula 1 3
Outras propriedades são teoremas (i.e podem ser demonstrados a partir dos axiomas):associatividade, elementos absorventes, idempotência, leis de De Morgan, etc... Gottlob Frege (1880) Lógica de predicados ( ou de primeira ordem):notação simbólica para formalizar as demonstrações da matemática Axiomas lógicos e dum sistema formal. Peano (1888) Axiomatização dos números naturais. Russell (1901) Russell encontra um paradoxo (contradição) nos axiomas de Frege para a teoria dos conjuntos: Seja Z o conjunto de todos os conjuntos que não pertencem a si próprios. Será que Z Z? Departamento de Ciência de Computadores da FCUP LC Aula 1 4
Solução: considerar hierarquia de tipos de conjuntos.juntamente com Whitehead escreve os Principia Matemática, onde pretendem que todos os teoremas da matemática se podem deduzir de princípios puramente lógicos Zermelo-Fraenkel (1907) Axiomatização da teoria de conjuntos (de Cantor) David Hilbert (1900) Pretende que todas as demonstrações matemáticas se podem mecanizar (automatizar) usando sistemas dedutivos lógicos (de primeira ordem). K. Gödel (1930) Mostra os limites dos sistemas formais: um sistema que contenha os axiomas de Peano admite proposições válidas que não são demonstráveis no sistema. Departamento de Ciência de Computadores da FCUP LC Aula 1 5
Church (1936) Tese de Church-Turing: todas as funções computáveis são no por uma máquina de Turing (=λ definíveis) Turing (1940) Limites da computação: existem funções que não são computáveis por uma máquina de Turing (Problema da paragem)... Ver http://www.sandiego.edu/logicslave/fmslog.html Departamento de Ciência de Computadores da FCUP LC Aula 1 6
Lógica e Ciência de Computadores Bases de dados: lógicas em modelos finitos (SQL=FO) Inteligência artificial: sistemas periciais, linguagem natural, web semântica, etc. XML (documento estruturados) Algoritmos e complexidade: classes de complexidade podem ser caracterizadas por classes de fórmulas lógicas Linguagens de programação: Departamento de Ciência de Computadores da FCUP LC Aula 1 7
programação em lógica (p.e prolog) teoria de tipos (sistemas tipos= sistemas dedutivos) Especificação formal e verificação: verificação de hardware (circuitos) testes de correção de software protocolos de segurança Demonstração automática Ver On the unusual effectiveness of logic in Computer Science, Halpern. J. et al., The bulletin of Symbolic Logic, vol 7, n. 2, June 2001 (http://www.math.ucla.edu/ asl/bsltoc.htm) Departamento de Ciência de Computadores da FCUP LC Aula 1 8
Lógicas há muitas... Lógica clássica (proposicional e de predicados (primeira ordem),...) Lógicas subestruturais (p.e intuicionista) Lógicas modais e temporais Lógicas de ordem superior Departamento de Ciência de Computadores da FCUP LC Aula 1 9
Programa Só Lógica clássica!!!! 1. Lógica proposicional Sintaxe Semântica: tautologias, satisfazibilidade, validade Formas normais Sistemas dedutivos: Hilbert e dedução natural Contraposição, redução ao absurdo, raciocíonio por casos Consistência Completude e integridade dos sistemas dedutivos. Decidibilidade 2. Lógica de primeira ordem (de predicados) Departamento de Ciência de Computadores da FCUP LC Aula 1 10
Linguagens Sintaxe Semântica: interpretações, modelos, satisfazibilidade, validade Sistemas dedutivos: Hilbert e dedução natural Completude e integridade dos sistemas dedutivos. Indecidibilidade da lógica de primeira ordem. Limite dos métodos formais (Teorema de Gödel) 3. Programação em lógica Resolução Fórmulas de Horn e programas definidos Unificação de termos Semântica de ponto fixo Resolução-SLD, completude e integridade. Departamento de Ciência de Computadores da FCUP LC Aula 1 11
Bibliografia Apontamentos [Bro00] e e irão sendo dados mais alguns... Livro recomendado [BE00] Livro que também é introdutório (e portanto alguns capítulos são de revisão de MCC...) E para já não há na biblioteca...mas há [BE90], que contém partes da matéria... Lógica computacional (alguns capítulos) [Gal87] [RC90] [HR00](Cap 1. e 2.) Programação em Lógica (alguns capítulos) [Llo87] Departamento de Ciência de Computadores da FCUP LC Aula 1 12
Lógica matemática (avançados?) [And86] [EFT96] Departamento de Ciência de Computadores da FCUP LC Aula 1 13
Referências [And86] Peter B. Andrews. An Introduction to Mathematical Logic and Type Theory:To Truth Through Proof. Academic Press, Orlando, Florida, 1986. [BE90] [BE00] [Bro00] J. Barwise and J. Etchemendy. The Language of First-Order Logic. CSLI, 1990. 1741 DCCBIB. Jon Barwise and John Etchmendy. Language, Proof, and Logic. CSLI, 2000. Sabine Broda. Apontamentos de lógica computacional. Technical report, Departamento de Ciência de Computadores, FCUP, 2000. Departamento de Ciência de Computadores da FCUP LC Aula 1 14
[EFT96] H.D. Ebbinghaus, J. Flum, and W. Thomas. Mathematical Logic. SV, 1996. 2081 DCCBIB. [Gal87] [HR00] J. Gallier. Logic for Computer Science - Foundations of Automatic Theorem Proving. JW, 1987. Michael Huth and Mark Ryan. Logic in Computer Science: Modelling and reasoning about systems. CUP, 2000. 430 DCCBIB. [Llo87] J.W. Lloyd. Foundations of Logic Programming. SV, 1987. [RC90] S. Reeves and M. Clarke. Logic for Computer Science. AW, 1990. 1699 DCCBIB. Departamento de Ciência de Computadores da FCUP LC Aula 1 15