Provadores de Teoremas: Vis o Geral -...

11
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.230-901 – Curitiba – PR – Brasil [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. Conceito Se 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 fez-se 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 

Transcript of Provadores de Teoremas: Vis o Geral -...

Page 1: Provadores de Teoremas: Vis o Geral - dainf.ct.utfpr.edu.bradolfo/tempAll/Trabalhos_2009.1/BSI/Pro... · provadores, ela avalia o desempenho dos ATPs em termos de número de problemas

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.230­901 – 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 fez­se 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 

Page 2: Provadores de Teoremas: Vis o Geral - dainf.ct.utfpr.edu.bradolfo/tempAll/Trabalhos_2009.1/BSI/Pro... · 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   associativo­comutativa,   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 Theorem­proving and Effective Research (ou Otter) é  um provador para lógicas  equacionais de primeira  ordem, assim como o EQP, e Mace2 busca  modelos   finitos   e   contra­exemplos.  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.

Page 3: Provadores de Teoremas: Vis o Geral - dainf.ct.utfpr.edu.bradolfo/tempAll/Trabalhos_2009.1/BSI/Pro... · provadores, ela avalia o desempenho dos ATPs em termos de número de problemas

Figura 1. Interface gráfica do Prover9/Mace4

Figura 2. Algumas das opções do Prover9

Page 4: Provadores de Teoremas: Vis o Geral - dainf.ct.utfpr.edu.bradolfo/tempAll/Trabalhos_2009.1/BSI/Pro... · provadores, ela avalia o desempenho dos ATPs em termos de número de problemas

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 IME­USP. 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 KE­S3 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.

Page 5: Provadores de Teoremas: Vis o Geral - dainf.ct.utfpr.edu.bradolfo/tempAll/Trabalhos_2009.1/BSI/Pro... · provadores, ela avalia o desempenho dos ATPs em termos de número de problemas

2.3. Baseados em Tableaux KE

2.3.2. KEMSKE­based Multi­Strategy 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 multi­estraté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

Page 6: Provadores de Teoremas: Vis o Geral - dainf.ct.utfpr.edu.bradolfo/tempAll/Trabalhos_2009.1/BSI/Pro... · provadores, ela avalia o desempenho dos ATPs em termos de número de problemas

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.

Page 7: Provadores de Teoremas: Vis o Geral - dainf.ct.utfpr.edu.bradolfo/tempAll/Trabalhos_2009.1/BSI/Pro... · provadores, ela avalia o desempenho dos ATPs em termos de número de problemas

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.

Page 8: Provadores de Teoremas: Vis o Geral - dainf.ct.utfpr.edu.bradolfo/tempAll/Trabalhos_2009.1/BSI/Pro... · provadores, ela avalia o desempenho dos ATPs em termos de número de problemas

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. 

Page 9: Provadores de Teoremas: Vis o Geral - dainf.ct.utfpr.edu.bradolfo/tempAll/Trabalhos_2009.1/BSI/Pro... · provadores, ela avalia o desempenho dos ATPs em termos de número de problemas

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,  percebe­se 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 

Page 10: Provadores de Teoremas: Vis o Geral - dainf.ct.utfpr.edu.bradolfo/tempAll/Trabalhos_2009.1/BSI/Pro... · provadores, ela avalia o desempenho dos ATPs em termos de número de problemas

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,   conclui­se   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.

Page 11: Provadores de Teoremas: Vis o Geral - dainf.ct.utfpr.edu.bradolfo/tempAll/Trabalhos_2009.1/BSI/Pro... · provadores, ela avalia o desempenho dos ATPs em termos de número de problemas

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.