Este repositório foi criado com o intuito de aplicar conhecimentos adiquiridos ao longo do estudo da lógica formal na área da programação.
A lógica é um importante campo de estudos, que permite por exemplo para aquele que o estude desenvolver argumentos concisos e provar que eles são válidos. Em um ambiente moderno onde a ciência é parte da vida de todos, o desenvolvimento e a prova de teorias são aspectos importantíssimos para o amadurecimento da ciência.
Existem diversos tipos de lógicas sendo que eles podem ser aplicados em diversas áreas. Como exemplo pode-se citar:
-
Computação
- Analise de Algoritmos
- Teoria da Computação
- Construção de Banco de Dados
- Inteligência Artificial
- Lógica para Programação
- Circuitos Digitais
- ...
-
Matemática
- Indução Matemática
- Prova de Teoremas
- Teoria dos Conjuntos
- Funções e Relações
- Estatística
- ...
- Filosofia
- Engenharias
- ...
Além das aplicações citadas, cotidianamente pode-se encontrar o uso da lógica em uma conversa entre indivíduos, nas decisões de um casal etc. A lógica faz parte da vida humana de diferentes formas que podem até passar despercebidas...
Esse repositório foi criado inicialmente com um conjunto de programas com um grande foco na lógica proposicional desenvolvidos para compor uma atividade avaliativa da disciplina de Fundamentos Matemáticos da Computação, do Bacharelado em Ciência da Computação ofertado pelo IFC Blumenau.
- Período: 1º Semestre - 2020
- Docente Responsável: Eder Augusto Penharbel
- Ementa: Lógica Proposicional e de Predicados. Linguagem Proposicional e de Primeira Ordem. Sistemas Dedutivos. Tabelas Verdade e Estruturas de Primeira Ordem. Relações de Conseqüência. Corretude. Completude. Compacidade. Lowemhein-Skolem. Decidibilidade. Prova Automática de Teoremas. Computação Simbólica.
- Observação: A disciplina foi planejada para ocorrer presencialmente, porém devido as situações enfrentadas pelo mundo em 2020, acabou tendo que ser adaptada para EAD.
Destaca-se aqui que pretende-se expandir esse repositório com outros programas, dando continuidade a aplicação da lógica formal na programação, algo que começou como uma atividade curricular de graduação, mas tem potencial para ir além.
- Linguagem: Atualmente a linguagem usada para desenvolver os programas é Python (Versão 3.8.5)
- Referências Bibliográficas:
- TELLER, Paul. A Modern Formal Logic Primer. Davis: Prentice Hall, 1989. 2 v. Disponível em: https://tellerprimer.ucdavis.edu/.
- ALENCAR FILHO, Edgard de. Iniciação a lógica matemática. São Paulo: Nobel, 2002. 203 p. ISBN 9788521304036 (broch.).
Como os programas iniciais foram desenvolvidos para serem apresentados na disciplina de graduação, o tempo de desenvolvimento esteve limitado. Devido a esse fato, os programas já desenvolvidos podem não serem de facíl compreensão para aquele que não acompanharam o processos do início. Tendo tomado nota disto, tem-se em mente a ideia de refatorar o código e adicionar comentários que expliquem o funcionamento de seus componentes, tornando-o assim mais legível e melhorando a sua performance.
- Produzir um Documento Auxiliar explicitando as relações entre os programas e a lógica formal;
- Refatorar Códigos;
- Implementar um programa para Geração de Árvores Verdades;
- Ampliar a área de abrangência do repositório para aplicar a lógica de Predicados;