Web Services 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.
Provadores de Teoremas: Vis o Geral -...
-
Upload
nguyenthuy -
Category
Documents
-
view
215 -
download
0
Transcript of Provadores de Teoremas: Vis o Geral -...
Provadores de Teoremas: Visão Geral
André Luiz de Lacerda, Ricardo Trizzolini Piekarski
Bacharelado em Sistemas de Informação Departamento Acadêmico de Informática – Universidade Tecnológica Federal do Paraná (UTFPR)
CEP 80.230901 – Curitiba – PR – [email protected], [email protected]
Abstract. The objective of this school work is to explain what are automated theorem provers (or ATPs), giving some examples of different ATPs, their practical applications, accomplishments, and some advantages and disadvantages among each one of them.
Resumo. O objetivo deste trabalho acadêmico é explicar o que são provadores automáticos de teoremas, dando alguns exemplos de diferentes provadores, suas aplicações práticas, realizações, e algumas vantagens e desvantagens entre cada um deles.
1. ConceitoSe as várias provas parecem corretas e os resultados são examinados de suficientes ângulos, então a verdade do teorema é considerada estar estabelecida. O teorema, então, é tido como verdadeiro no sentido clássico isto é, no sentido de que ele poderia ser demonstrado por lógica dedutiva formal, embora para quase todos os teoremas tal dedução nunca ocorreu e nem ocorrerá. Baseado nisso fezse necessário a criação de ferramentas e algoritmos que auxiliassem na analise de resultados sobre diferentes ângulos de uma forma mais rápida e eficiente.
Assim surge o provador automático de teoremas, que é um programa computacional que através de um conjunto de sentenças chega a uma conseqüência lógica. Não ficando restrito apenas as áreas exatas como matemática ou computação, ele também pode ser aplicado na área filosófica, um bom exemplo para resolver problemas filosóficos é um editor de provas chamado Mundo de Tarski que recebeu este nome por causa do brilhante trabalho de Alfred Tarski, um lógico, matemático e filosofo polonês. O Mundo de Tarski é excelente como ferramenta didática para ensinar os aspectos semânticos da lógica para estudantes pouco familiarizados com matemática.
A base dos provadores automáticos de teoremas foi desenvolvida por Jacques Herbrand em 1930 que desenvolveu um algoritmo para encontrar uma interpretação que pode invalidar uma fórmula, no entanto, se ela é válida, nenhuma dessas interpretações pode existir e o algoritmo termina após um número finito de tentativas. Desta forma, ao invés de provar se uma fórmula é válida, o algoritmo de Herbrand prova que a negação da fórmula é inconsistente.
Foi criada uma organização para estimular a pesquisa e desenvolvimento na área dos provadores e seu nome é CASC (CADE ATP System Competition), essa organização também visa expor sistemas de provas a comunidade de provadores e não provadores, ela avalia o desempenho dos ATPs em termos de número de problemas
resolvidos com ou sem solução de saída e média de tempo de execução dos problemas resolvidos.
2. Tipos de provadoresOs provadores de teoremas podem ser divididos de diversas formas, pois cada um tem suas peculiaridades relativas à plataforma em que foi programado, ou à lógica que utiliza. Contudo neste artigo, os provadores de teoremas foram classificados segundo o método utilizado, pois esta escolha é mais adequada didaticamente para que haja um entendimento melhor do assunto por parte dos acadêmicos que são alvo desta apresentação. Seguindo este conceito existem 3 principais tipos de provadores de teoremas, e são estes que abordaremos com mais detalhes: baseados no método da resolução, baseados em tableaux analíticos, e baseados em tableaux KE. As vantagens e desvantagens entre cada método não fazem parte do escopo deste trabalho.
2.1. Baseados no método da resolução
2.1.1. EQPO Equational Theorem Prover (ou EQP) é um programa para prova de lógicas equacionais de primeira ordem. Seus pontos fortes são suas boas implementações de unificação e correspondência associativocomutativa, uma gama de estratégias para raciocínio equacional, e sua capacidade de realizar buscas rapidamente. Todavia, este provador não é tão estável e elegante por não ser o alvo principal de seus desenvolvedores. Porém, ele alcançou diversos resultados interessantes (conjetura Robbins) e por isso seu código está completamente disponível, sem restrições e também sem garantias. Sua execução é toda feita em forma de linhas de comando, onde o arquivo com o problema é especificado na entrada; como retorno o usuário recebe um arquivo de saída com a prova.
2.1.1. Otter/Mace2Organized Techniques for Theoremproving and Effective Research (ou Otter) é um provador para lógicas equacionais de primeira ordem, assim como o EQP, e Mace2 busca modelos finitos e contraexemplos. Ele foi o primeiro provador de primeira ordem de alta performance amplamente distribuído; e foi pioneiro de diversas importantes técnicas de implantação. Sua execução é similar ao do EQP, feita por linhas de comando. Ele é um software de domínio público e não tem mais sido desenvolvido, seu sucessor é o Prover9.
2.1.1. Prover9/Mace4O Prover9 segue basicamente os mesmos princípios do Otter. Entretanto, ele tem a vantagem de estar em constante desenvolvimento e tem a possibilidade de ser utilizado com uma interface gráfica bastante agradável que é funcional tanto em Windows, Linux e MacOS. Porém esta interface só funciona com a versão de dezembro de 2007.
Figura 1. Interface gráfica do Prover9/Mace4
Figura 2. Algumas das opções do Prover9
2.2. Baseados em Tableaux Analíticos
2.2.2. jTAPA grande diferença entre este provador e outros está que foi implementado em Java e pode ser rodado diretamente de seu endereço eletrônico na Internet. Na sua versão atual, ele interpreta problemas na lógica proposicional, mas segundo seus programadores, pode ser facilmente adaptável e estendível a outras lógicas.
Figura 3. jTAP em execução diretamente do browser na Internet
2.2.2. WDTPO Wagner Dias Tableau Prover foi implementado por Wagner Dias no seu mestrado em Ciências da Computação no IMEUSP. Este provador pode na verdade ser considerado uma estrutura orientada a objetos para implementação de métodos de prova baseados em tableaux (não necessariamente analíticos). Ele foi implementado em C++ e já foram implementados 3 métodos de prova em sua estrutura: os Tablôs Analíticos de Smullyan, os tablôs KE de Mondadori e D'Agostino's, e os tablôs KES3 de Finger e Wasserman. O WDTP é executado sob linhas de comando, podendo funcionar tanto no SO Windows XP, como no Linux (graças a algumas alterações feitas por Adolfo Neto, que será melhor apresentado logo). Com ele, é possível imprimir a árvore de prova completa.
Como curiosidade, este provador foi batizado por Adolfo Neto, criador do KEMS (que será mais bem definido em seguida) pelo fato de que na tese de Wagner Dias, o provador não recebe um nome. Adolfo também fez algumas modificações neste provador com o objetivo de obter provas mais curtas em Tableaux KE.
2.3. Baseados em Tableaux KE
2.3.2. KEMSKEbased MultiStrategy theorem prover (ou KEMS) foi parte do projeto de PhD. do Prof. Adolfo Neto, que atualmente ministra aulas na Universidade Tecnológica Federal do Paraná. KEMS foi implementado em Java e AspectJ, este o maior representante de um novo paradigma de programação: a programação orientada a aspectos.
O KEMS traz um grande diferencial em relação aos outros provadores de teoremas, o fato de ser multiestratégia. Isso quer dizer que é possível variar a estratégia utilizada na prova, sem necessariamente modificar a essência da implantação! Por esta razão, ele tem diversas vantagens ao ser utilizado com propósitos educacionais, exploratórios, ou adaptativos. Pois com ele, ficam claras as diferenças ao se escolher estratégias diferentes. O KEMS também traz uma interface bastante interativa. É possível provar teoremas diretamente de arquivos externos ou a partir de sua descrição no editor do próprio aplicativo.
Figura 4. Tela principal do KEMS
Figura 5. Tela de configuração do KEMS com a opção de escolha de estratégia
Figura 6. Janela com visualização da prova do PHP3 e diversas informações
2.4. OutrosAlguns exemplos de provadores de teoremas que não foram vistos tão a fundo, mas que são interessantes ser citados para que se perceba a grande variedade de provadores que existem e algumas de suas características.
2.3.2. TarskiTarski’s World é um provador que usa a linguagem de primeira ordem para fazer afirmações a respeito de alguns objetos e de suas relações em um mundo de blocos organizados em um tabuleiro, ele recebe frases em português limitadas aos conceitos do programa e as converte em fórmulas de primeira ordem, após converter as frases em lógica de primeira ordem, o Tarski’s World as avalia para verificar sua verdade lógica.
Figura 7. Tela do Tarski’s World em execução
2.3.2. VampireCriado em 1993, ele sofreu várias alterações até chegar a sua forma atual, este ATP trabalha com formas normais de cláusulas. A entrada do problema deve ser feita utilizando as sintaxes especificas de cada área, e após o processamento da fórmula se o teorema for provado, o sistema ira produzir uma prova verificável que esta dentro das normas das classes do CASC.
Figura 8. Tela do Vampire em execução
2.3.3. PLLICFeito por alunos de graduação da UFMG em Java e λProlog com objetivo de ser usado posteriormente para o ensino da lógica, e que fosse de fácil manuseio. Ele prova teoremas pelas lógicas linear, intuicionista, e clássica. Assim como o jTAP, o PLLIC é acessado via web, é totalmente em português e não é necessário ao usuário nenhuma noção de linguagens de programação.
Figura 9. Tela do PLLIC em execução
2.3.4. IsabelleIsabelle foi criado durante o PhD de Larry Paulson (pela University of Cambridge) e Tobias Nipkow (pela Technische Universität München), e é um assistente genérico automático de provas. Uma de suas ferramentas é um provador de fórmulas matemáticas, após serem passadas para linguagem formal. Ela suporta lógicas de alta ordem, tem ótimas interface e documentações. Ele é um software livre e vem com uma vasta biblioteca de teoremas da matemática.
Figura 10. Tela com menu, entrada e saída do Isabelle
3. ExpectativasApesar de já haverem diversos ATPs, e estes feitos já com incontáveis características e capacidades diferentes, percebese a falta da cooperatividade no desenvolvimento de projetos distintos, assim como a falta da observação e do aprendizado dos desenvolvedores em relação aos outros provadores no mercado, sejam livres ou com direitos autorais. Principalmente nos softwares livres, a possibilidade de implementálos mais a fundo deveria ser aproveitada, ao invés de cada um fazer o programa que acredita ser ideal para as suas necessidades.
A partir desta colocação, os desenvolvedores poderiam colocar em prática um projeto aberto para implementações e modificações de qualquer tipo e de fácil
manutenção, ou seja, que seus códigos fonte estejam em um padrão internacional. Seria interessante a produção deste ATP com tarefas bem definidas para diferentes especialistas da área, para que ao final, seja somente necessário a implementação de lógicas mais complexas e manutenção na interface gráfica para que fique mais agradável e interativa. Enfim, concluise que muitos grandes cérebros trabalharam separadamente em projetos muito trabalhosos, e que muitas vezes o ATP desenvolvido por cada um, tinham em suas essências funcionalidades bastante similares, o que reforça a ideia de que o trabalho em equipe é a melhor possível iniciativa futura.
ReferênciasWIKIPEDIA. Automated Theorem Proving. Disponível em <http://en.wikipedia.org/wiki/Automated_theorem_proving>. Acesso em: 3 maio 2009.
WIKIPEDIA. Otter Theorem Prover. Disponível em <http://en.wikipedia.org/wiki/Otter_theorem_prover>. Acesso em: 4 maio 2009.
WIKIPEDIA. Prova automática de teoremas. Disponível em <http://pt.wikipedia.org/wiki/Prova_autom%C3%A1tica_de_teoremas>. Acesso em: 3 maio 2009.
WIKIPEDIA. Alfred Tarski. Disponível em <http://pt.wikipedia.org/wiki/Alfred_Tarski>. Acesso em: 4 maio 2009.
MARQUES, Everton G. Estudo e estado da arte dos provadores automáticos de teoremas: Trabalho de graduação. Disponível em: <http://www.cin.ufpe.br/~tg/2007-2/egm2.pdf>. Acesso em: 5 maio 2009. Recife, 2008. 65 p
WIKI DAINF. Provador de teoremas. Disponível em: <http://www.dainf.ct.utfpr.edu.br/wiki/index.php/Provador_de_teoremas>. Acesso em: 4 maio 2009.
WIKI DAINF. Wagner Dias Tableau Prover. Disponível em : <http://www.dainf.ct.utfpr.edu.br/wiki/index.php/WDTP_-_Wagner_Dias_Tableau_Prover>. Acesso em 5 maio 2009.
NECSO-UFRJ. Negociando a Aritmética. Disponível em : <http://www.necso.ufrj.br/Trads/Negociando%20a%20Aritmetica.htm>. Acesso em 6 maio 2009.
WIKIDOT. NETO, Adolfo S. S. KEMS. Disponível em : <http://adolfoneto.wikidot.com/KEMS>. Acesso em 2 maio 2009.
MENZEL; SCHMITT, P. jTAP. Disponível em : <http://i12www.ira.uka.de/~aroth/jTAP/>. Acesso em 4 maio 2009.
Usando Tarski’s World. Disponível em: <http://www.mat.uc.pt/~picado/ediscretas/apontamentos/Tarski.pdf>. Acesso em: 4 maio 2009. 8 p
WIKIDOT. NETO, Adolfo S. S. KEMS. Disponível em : <http://adolfoneto.wikidot.com/KEMS>. Acesso em 2 maio 2009.
MCCUNE, William. Prover9/Mace4; Otter/Mace2; EQP; Robbins. Disponível em: <http://www.cs.unm.edu/~mccune/>. Acesso 4 maio 2009.
KOLATA, Gina. NYTIMES. Computer Math Proof Shows Reasoning Power. Disponível em <http://www.nytimes.com/library/cyber/week/1210math.html>. Acesso 3 maio 2009.