Objetivos

  1. Manipular a sintaxe formal da Lógica Proposicional e da Lógica de Primeira Ordem.
  2. Usar fórmulas da Lógica de Primeira Ordem para representar frases em linguagem natural.
  3. Dar significado a fórmulas e decidir o seu valor lógico, no contexto de uma interpretação.
  4. Construir demonstrações formais em Dedução Natural.
  5. Enunciar algumas das consequências dos Teoremas da Correção e da Completude.
  6. Conhecer os mecanismos básicos da Programação em Lógica.
  7. Compreender como a Programação em Lógica constitui uma ferramenta para a automatização do raciocínio.

Programa

  1. Lógica Proposicional: sintaxe (fórmulas) e semântica (valorações, tautologias, formas normais, consistência, consequência).
  2. Dedução natural para Lógica Proposicional (derivabilidade, correção e completude).
  3. Lógica de Primeira Ordem: sintaxe (termos, fórmulas) e semântica (modelos, validade, formas normais, consistência, consequência).
  4. Dedução natural para Lógica de Primeira Ordem (derivabilidade, correção e completude).
  5. 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

  1. Logic and Structure (5th ed.), D. van Dalen, Springer, 2013.
  2. Language, Proof and Logic, J. Barwise e J. Etchemendy, CSLI Publications, 2003.
  3. Mathematical Logic for Computer Science (3rd ed.), M. Ben-Ari, Springer, 2012.
  4. Essentials of Logic Programming, C. Hogger, Oxford University Press, 1990.
  5. Principles of Logic and Logic Programming, G. Metakides e A. Nerode, Elsevier, 1996.

Atualizado: