Dedução Natural com Coq

download Dedução Natural com Coq

of 16

Transcript of Dedução Natural com Coq

  • 7/21/2019 Deduo Natural com Coq

    1/16

    Deduc ao Natural com CoqLogica Aplicada a Computac ao

    Andrei de Araujo FormigaUniversidade Federal da Para ba

  • 7/21/2019 Deduo Natural com Coq

    2/16

    O Assistente de Prova Coq

    Criado em 1984 por Thierry Coquand e G erard Huet

    Recebeu o pr emio ACM Software System Award em 2013

  • 7/21/2019 Deduo Natural com Coq

    3/16

    Aplicac oes

    Vericac ao de provas matem aticas

    Criac ao de provas matem aticas vericadas

    Vericac ao de sistemas computacionais ( hardware, software )

    Criac ao de programas certicados

  • 7/21/2019 Deduo Natural com Coq

    4/16

    Prova iterativa baseada em t aticas

    As provas no Coq s ao construdas de maneira interativa

    O sistema mostra feedback para o usu ario

    A prova e guiada usando t aticas , que podem ser entendidos comocomandos de prova.

  • 7/21/2019 Deduo Natural com Coq

    5/16

    Exemplo 1

    Provar : P Q , Q R P R .

    Section Trans.Variables P Q R : Prop.Hypothesis H1 : P > Q.Hypothesis H2 : Q > R.Theorem trans : P > R.

    Proof.intro HP.apply H2.apply H1.assumption.

    Qed.

    End Trans.

  • 7/21/2019 Deduo Natural com Coq

    6/16

    Regras Introduc ao da Implicac ao

    A tatica intro introduz uma hip otese

    Funciona similar a introduc ao da implicac ao. Para provar P Q :1. Assuma P como hip otese

    2. Prove Q

    No exemplo, o objetivo era P R e um intro introduz P comohipotese e muda o objetivo para R .

  • 7/21/2019 Deduo Natural com Coq

    7/16

    Regras Eliminac ao da Implicac ao

    A tatica apply usa ( aplica ) uma hip otese

    Para uma hip otese que e implicac ao, similar a regra de eliminac ao

    Se o objetivo e provar B e existe uma hip otese A B , aplicar ahip otese muda o objetivo para A.

    No exemplo, quando o objetivo e R , aplicamos Q R , mudando oobjetivo para Q .

  • 7/21/2019 Deduo Natural com Coq

    8/16

    Finalizando uma prova com assumption

    Se o objetivo atual j a existe como uma das hip oteses do contexto,assumption encontra a hip otese e naliza a prova do objetivo

    No exemplo, o objetivo e P , que est a estabelecido como uma daship oteses, e o assumption naliza a prova.

  • 7/21/2019 Deduo Natural com Coq

    9/16

    Regras Introduc ao da Conjunc ao

    A tatica split funciona como uma introduc ao da conjunc ao.

    Para provar A B , deve-se provar A e B separadamente.

    Se o objetivo e da forma A B , usar split vai criar doissub-objetivos: provar A e provar B .

  • 7/21/2019 Deduo Natural com Coq

    10/16

    Exemplo Conjunc ao, parte 1

    Provar : P Q Q P .

    Section Comut.Variables P Q : Prop.Hypothesis H : P / \ Q.

    Theorem ecom : Q / \ P.

    Proof.split ....

  • 7/21/2019 Deduo Natural com Coq

    11/16

    Regras Eliminac ao da Conjunc ao

    Uma forma de eliminar uma conjunc ao em uma hip otese e usando atatica inversion .

    Se H e uma hip otese da forma A B , inversion H cria duas novahip oteses no contexto: uma armando A, outra armando B .

    Voltando ao exemplo anterior, vamos comecar com inversion

    paseparar P e Q , depois usar split para separar o objetivo. Depoiss o usar assumption duas vezes (uma para cada sub-objetivo).

  • 7/21/2019 Deduo Natural com Coq

    12/16

    Exemplo Conjunc ao, parte 2

    Provar : P Q Q P .

    Section Comut.Variables P Q : Prop.Hypothesis H : P / \ Q.

    Theorem ecom : Q / \ P.

    Proof.inversion H.split .assumption.assumption.

    Qed.

    End Comut.

  • 7/21/2019 Deduo Natural com Coq

    13/16

    Regras Introduc ao da Disjunc ao

    Para provar A B , basta provar um dos dois (podemos escolher).

    As taticas left e right funcionam como introduc ao da disjunc ao

    Se o objetivo atual e da forma A B , left muda o objetivo para A

    Se o objetivo atual e da forma A B , right

    muda o objetivo para

  • 7/21/2019 Deduo Natural com Coq

    14/16

    Regras Eliminac ao da Disjunc ao

    Podemos usar inversion para eliminar uma disjunc ao de umahip otese.

    Funciona diferente da conjunc ao.

    Se a hip otese H e da forma A B , inversion H cria doissub-objetivos id enticos ao atual, um assumindo A como hip otese,outro assumindo B como hip otese.

    Isso equivale a regra que vimos: para provar A B e preciso mostrarque e possvel chegar na mesma conclus ao usando tanto A quantocomo hip oteses, separadamente.

  • 7/21/2019 Deduo Natural com Coq

    15/16

    Exemplo Disjunc ao

    Provar : P Q Q P .

    Section OuComut.Variables P Q : Prop.Hypothesis H : P \ / Q.

    Theorem oucom : Q \ / P.

    Proof.inversion H.right .assumption.left .assumption.

    Qed.End OuComut.

  • 7/21/2019 Deduo Natural com Coq

    16/16

    Regras Negac ao

    As regras para negac ao no Coq s ao diferentes

    Logica intuicionista versus l ogica cl assica

    Podemos obter o comportamento cl assico usando axiomas