Objetivos
- Manipular a sintaxe formal da Lógica Proposicional e da Lógica de Primeira Ordem.
- Usar fórmulas da Lógica de Primeira Ordem para representar frases em linguagem natural.
- Dar significado a fórmulas e decidir o seu valor lógico, no contexto de uma interpretação.
- Construir demonstrações formais em Dedução Natural.
- Enunciar algumas das consequências dos Teoremas da Correção e da Completude.
- Conhecer os mecanismos básicos da Programação em Lógica.
- Compreender como a Programação em Lógica constitui uma ferramenta para a automatização do raciocínio.
Programa
- Lógica Proposicional: sintaxe (fórmulas) e semântica (valorações, tautologias, formas normais, consistência,
consequência).
- Dedução natural para Lógica Proposicional (derivabilidade, correção e completude).
- Lógica de Primeira Ordem: sintaxe (termos, fórmulas) e semântica (modelos, validade, formas normais, consistência,
consequência).
- Dedução natural para Lógica de Primeira Ordem (derivabilidade, correção e completude).
- Introdução à Programação em Lógica: sintaxe (cláusulas de Horn, factos, regras, programas, questões) e semântica
operacional (unificação, resolução, aspetos algorítmicos da resolução).
Bibliografia
- Logic and Structure (5th ed.), D. van Dalen, Springer, 2013.
- Language, Proof and Logic, J. Barwise e J. Etchemendy, CSLI Publications, 2003.
- Mathematical Logic for Computer Science (3rd ed.), M. Ben-Ari, Springer, 2012.
- Essentials of Logic Programming, C. Hogger, Oxford University Press, 1990.
- Principles of Logic and Logic Programming, G. Metakides e A. Nerode, Elsevier, 1996.