1 / 13

Otter Provador de Teoremas

Otter Provador de Teoremas. André Luiz Gionatta. O Otter. Desenvolvido por William McCune Funciona com variados tipos de resolução (binária, hiperresolução, resolução UR, paramodulação...)

andren
Download Presentation

Otter Provador de Teoremas

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. OtterProvador de Teoremas André Luiz Gionatta

  2. O Otter • Desenvolvido por William McCune • Funciona com variados tipos de resolução (binária, hiperresolução, resolução UR, paramodulação...) • Aplica as regras de inferência de cada tipo de resolução em um conjunto de cláusulas ou fórmulas para encontrar uma prova. • Cada vez que é aplicado uma regra de inferência, novas cláusulas são geradas.

  3. Usando o Otter • Otter não possui uma interface gráfica, sendo utilizado pelo console do Windows. • Lê um arquivo de entrada (com extensão .in) em que estão contidas as fórmulas ou cláusulas que serão utilizadas durante a busca da prova. • Gera um arquivo de saída (com extensão .out) com as estatísticas da busca, bem como os detalhes da prova (se houver). • Sintaxe para execução da busca: otter < problema.in > problema.out

  4. O arquivo de entrada (.in) • É no arquivo de entrada que se deve configurar as opções que serão utilizadas pelo Otter. • O arquivo também deverá conter as cláusulas e fórmulas que serão utilizadas durante a busca da prova. • É imprescindível definir qual tipo de resolução o Otter usará para determinado problema. • set(binary_res). – utiliza a resolução binária • set(hyper_res). – utiliza a hiperresolução • set(auto). – o Otter utilizará todos os modos de resolução possíveis para provar o problema.

  5. O arquivo de entrada (.in) • O comando list(usable). é usado para que o provador leia uma lista de cláusulas, as quais serão usadas para serem feitas inferências. • O comando formula_list(usable). tem a mesma função do comando acima mas é usado para fórmulas. set(auto). list(usable). -> humano(socrates). humano(X) -> mortal(X). mortal(socrates) ->. end_of_list. set(auto). formula_list(usable). all x y (Mae(x,y) <-> Feminino(x) & Parente(x,y)). all x y (Pai(x,y) <-> Masculino(x) & Parente(x, y)). end_of_list. Exemplo de uma lista usable para cláusulas. Exemplo de uma lista usable para fórmulas.

  6. Operadores lógicos • O Otter trabalha com os seguintes operadores lógicos: Fonte: Adaptado de McCune, W. Otter Reference Manual by William McCune. Disponível em: <http://www.cs.unm.edu/~mccune/otter/Otter33.pdf>. Acesso em: 20 abril 2009.

  7. Funções e predicados • É possível utilizar algumas funções em problemas no Otter (programmed mode). • Os símbolos possuem $ ($-symbols). • Exemplos de algumas funções: • Para tipos int: $SUM (soma), $DIFF (subtração), $PROD (multiplicação)... • Para tipos float: os mesmos para tipos int porém com a letra F após o símbolo $ ($FSUM, $FDIFF, ...). • Para tipos boolean: $T (true) e $F (false). • Outros: $EQ (=), $GT (>), $GE (>=), etc.

  8. Funções e predicados • Exemplo: fatorial(x) = $IF ($EQ(x, 0)), 1, $PROD(x, fatorial($DIFF(x,1))). Fonte: Adaptado de McCune, W. Otter Reference Manual by William McCune. Disponível em: <http://www.cs.unm.edu/~mccune/otter/Otter33.pdf>. Acesso em: 20 abril 2009.

  9. O arquivo de saída (.out) • O arquivo contém as estatísticas da busca e a prova, caso o provador tenha encontrado uma. • Caso exista uma prova o Otter lista as cláusulas/fórmulas que foram usadas para encontrá-la e os detalhes de qual resolução o provador utilizou e em quais cláusulas/fórmulas a resolução foi aplicada. • As sentenças (cláusulas ou fórmulas) são identificadas por um número inteiro (ID). • Se o Otter encontrar provas mostra a seguinte mensagem: Search stopped by max_proofs option. • Se não encontrar provas mostra a mensagem: Search stopped because sos empty.

  10. Exemplo de prova • Descrição do problema que será utilizado no Otter: Bob é irmão de Alice, Diane é mãe de Bob e Carlos é pai de Alice. Provar, utilizando o Otter, que Carlos é pai de Bob.

  11. Exemplo de prova – Arquivo de entrada (.in) set(auto). formula_list(usable). % Regras de parentesco % all x y (Mae(x,y) <-> Feminino(x) & Parente(x,y)). all x y (Pai(x,y) <-> Masculino(x) & Parente(x, y)). all x y (Parente(x,y) & Masculino(y) <-> Filho(y,x)). all x y (Parente(x,y) & Feminino(y) <-> Filha(y,x)). all x y z (IrmaoOuIrma(x,y) & Parente(z,x) -> Parente(z,y)). all x y (IrmaoOuIrma(x,y) <-> IrmaoOuIrma(y,x)). all x y (IrmaoOuIrma(x,y) & Masculino(x) <-> Irmao(x,y)). all x y (IrmaoOuIrma(x,y) & Feminino(x) <-> Irma(x,y)). % Fatos para o problema % Irmao(Bob, Alice). Mae(Diane, Bob). Pai(Carlos, Alice). end_of_list. formula_list(sos). % Provar que Pai(Carlos, Bob), adicionando sua negacao no SOS % -Pai(Carlos, Bob). end_of_list. Fonte: Adaptado de Introduction to Artificial Intelligence –Assignment 5. Disponível em: <http://www.cs.rpi.edu/academics/courses/fall03/ai/handouts/assign5.pdf>. Acesso em: 25 abril 2009.

  12. Exemplo de prova – Arquivo de saída (.out) ---------------- PROOF ---------------- 4 [] -Pai(x,y)|Masculino(x). 5 [] -Pai(x,y)|Parente(x,y). 6 [] Pai(x,y)| -Masculino(x)| -Parente(x,y). 13 [] -IrmaoOuIrma(x,y)| -Parente(z,x)|Parente(z,y). 14 [] -IrmaoOuIrma(x,y)|IrmaoOuIrma(y,x). 16 [] IrmaoOuIrma(x,y)| -Irmao(x,y). 21 [] -Pai(Carlos,Bob). 22 [] Irmao(Bob,Alice). 24 [] Pai(Carlos,Alice). 26 [hyper,22,16] IrmaoOuIrma(Bob,Alice). 29 [hyper,24,5] Parente(Carlos,Alice). 30 [hyper,24,4] Masculino(Carlos). 31 [hyper,26,14] IrmaoOuIrma(Alice,Bob). 34 [hyper,31,13,29] Parente(Carlos,Bob). 37 [hyper,34,6,30] Pai(Carlos,Bob). 38 [binary,37.1,21.1] $F. • Sentenças 4-24: entrada • Sentenças 26-38: criadas a partir da aplicação das regras de inferência (resolução binária e hiperresolução). • Sentença 38: contradição (prova). Fonte: Adaptado de Introduction to Artificial Intelligence –Assignment 5. Disponível em: <http://www.cs.rpi.edu/academics/courses/fall03/ai/handouts/assign5.pdf>. Acesso em: 25 abril 2009.

  13. Referências McCune, W. Otter Reference Manual by William McCune.Disponível em: <http://www.cs.unm.edu/~mccune/otter/Otter33.pdf>. Acesso em: 20 abril 2009. Introduction to Artificial Intelligence –Assignment 5. Disponível em: <http://www.cs.rpi.edu/academics/courses/fall03/ai/handouts/assign5.pdf>. Acesso em 25 abril 2009.

More Related