Lógica e Programação em Lógica (LPL)

Descrição da disciplina na página da UDESC

Carga horária (teórica): 30
Carga horária (prática): 30

Objetivo

Ao final do curso o aluno deverá ser capaz de:

  • utilizar os conceitos básicos de lógica em sua prática como cientista da computação
  • escrever pequenos programas em uma linguagem do paradigma lógico, como Prolog

Ementa

Fundamentos da lógica simbólica: prova de teoremas na lógica proposicional e na lógica de predicados (forma causal). Programação usando uma linguagem baseada na lógica.

Programa

1. Histórico, Motivação
1.1. Introdução contextual: Ciência e lógica; Lógica e razão
1.2. Definição de validade lógica
1.3. Argumento
1.4. Definição dos conectivos, silogismo (disjuntivo), exemplos
1.5. Conectivos da negação, conjução, disjunção, implicação e bi-implicação, tabelas-verdade
1.6. Verdades e falácias
1.7. Paradoxos semânticos e lógicos.

2. Introdução as Provas Lógicas
2.1. Tautologias e contradições
2.2. Forma normal; disjuntiva e conjuntiva
2.3. Uma axiomatização ao cálculo proposional
2.4. Teoria da dedução natural: Conceitos sintáticos: fórmula, axioma, demonstração, teorema, dedução a
partir de um conjunto de hipóteses. Regras derivadas.
2.5. Lógica como um sistema formal
2.6. Regras derivadas, teoremas
2.7. Equivalências e implicações lógicas
2.8. Teoremas, dedução natural com regras de inferências.

3. Introdução à Lógica de Predicados de Primeira Ordem
3.1. Conceitos de símbolos
3.2. Constantes
3.3. Funções
3.4. Variáveis
3.5. Interpretações
3.6. Provas e exemplos.

4. Introdução a Programação em Lógica
4.1. A linguagem Prolog e suas variações
4.2. Princípios de funcionamento da máquina Prolog
4.3. Construção de predicados para problemas clássicos
4.4. Abordagem de eficiência da execução do código gerado
4.5. Recursividade.

5. Aplicações em linguagem de programação lógica
5.1. Prolog e a lógica como uma ferramenta na resolução de problemas.

Bibliografia

SILVA, Flávio et al. Lógica para Computação. São Paulo: Thomson Learning, 2006. (LIVRO-TEXTO)

BITTENCOUT, Guilherme. Inteligência Artificial - Ferramentas e Teorias. Editora da UNICAMP, 10a. Escola de Computação, Instituto de Computação - UNICAMP, 1996.

ABE, Jair M.; SCALZITTI, Alexandre.; SILVA FILHO, João Inácio., Introdução à lógica matemática para a Ciência da computação, São Paulo: Arte Ciência, 2001.

CASANOVA, M. A., GIORNO, F. A. C., & FURTADO, A. L., "Programação em Lógica e a Linguagem 4. Prolog", Ed. Edgard Blucher, 1987.

ALENCAR FILHO, E., Iniciação à Lógica Matemática - Nobel, 1984.

CASTRUCCI, B., Introdução à Lógica Matemática - Novel, 1952.

GERSTING, J. L., Fundamentos Matemáticos para Ciência da Computação - LTC, 1995, 4a. edição.

SWI-Prolog: http://www.swi-prolog.org/

Materiais

Links sobre Prolog

Truth_Table.zip: Implementação de tabela-da-verdade (obtida em um livro). O livro é “Logic for Computer Science” de Steve Reeves e Mike Clarke.

Implementação de Tablôs Analíticos em Prolog (versão SWI 5.6.55)

Ambiente de Suporte ao Aluno ASA-CalcPro (XIV Encontro Brasileiro de Lógica)

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License