Teoria dos Modelos e das Provas Lógica fornece duas noções de consequência: lógica e sintática. Teoria dos Modelos Seja S um conjunto de frases lógicas e f uma frase lógica: f é consequência lógica de S se e só se todos os modelos de S são modelos de f. Escreve-se da seguinte forma: S╞ f A Teoria dos Modelos proporciona uma forma de atribuir significado (semântica) às frases lógicas. Universidade da Madeira Departamento de Matemática Elsa Carvalho 163 Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Teoria dos Modelos e das Provas Teoria das Provas Seja S um conjunto de frases lógicas, f uma frase lógica e R um conjunto de regras de inferência: f é consequência sintáctica (ou é derivável a partir) de S se e só se é possível inferir f a partir de S aplicando as regras de inferência R. Escreve-se da seguinte forma: S├ f A Teoria das Provas proporciona uma forma de gerar frases a partir da manipulação sintáctica de outras frases. Universidade da Madeira Departamento de Matemática Elsa Carvalho 164 Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Teoria dos Modelos - Conceitos Uma interpretação atribui significado a uma frase lógica, associando-a a alguma declaração que tenha valores lógicos (verdade ou falso), num domínio específico escolhido. Uma interpretação que faz uma frase lógica ser verdade designase um modelo da frase (ou que satisfaz a frase). Podemos estender esta definição para um conjunto de frases: Uma interpretação é um modelo para o conjunto se e só se é um modelo para cada um dos membros do conjunto. Uma interpretação que não satisfaz uma frase diz-se um contramodelo (ou que não satisfaz). Uma frase válida é uma frase lógica em que todas as suas interpretações são modelos. Universidade da Madeira Departamento de Matemática Elsa Carvalho 165 Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Teoria dos Modelos - Conceitos Exemplo Considere-se a seguinte fórmula chã gosta(barney, bambam) e escolha-se um domínio constituído por apenas 2 elementos. De forma a realizarmos uma interpretação teremos de associar os elementos do domínio com as constantes da fórmula: barney e bambam e também associar alguma relação binária no domínio com o predicado binário - gosta - da fórmula. Universidade da Madeira Departamento de Matemática Elsa Carvalho 166 Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Teoria dos Modelos Exemplo (cont.) A frase gosta(barney, bambam) é verdade na interpretação: = barney = bambam e gosta = < porque o tuplo < Universidade da Madeira Departamento de Matemática Elsa Carvalho >< >< > > pertence ao domínio da relação gosta. 167 Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Teoria dos Modelos a interpretação anterior é um modelo de gosta(barney, bambam) frase que não tem modelos (X)(Y) (gosta(X,Y) gosta(X,Y)) frase válida (X)(Y) (gosta(X,Y) gosta(X,Y)) Duas frases são logicamente equivalentes (S1 S2) se e só se tiverem os mesmos modelos. Universidade da Madeira Departamento de Matemática Elsa Carvalho 168 Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Teoria das Provas - Conceitos A Teoria das Provas preocupa-se com a derivabilidade de frases lógicas a partir de outras frases, usando regras de inferência. As frases iniciais são chamadas de axiomas. As frases derivadas são consequências sintácticas). chamadas teoremas (ou Regras de inferência operam unicamente sobre a sintaxe das frases (e não sobre o seu significado). Universidade da Madeira Departamento de Matemática Elsa Carvalho 169 Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Teoria das Provas - Conceitos A regra de inferência mais popular (usada pela lógica clássica) é o Modus Ponens: “do par de frases {W2, W1W2} inferir a frase W1” Os axiomas mais as regras de inferência constituem um sistema de inferência. Os axiomas juntamente com os teoremas derivados constituem uma Teoria. Uma teoria é inconsistente se e só se contém conjuntamente uma frase e a sua negação. Caso contrário é consistente. Universidade da Madeira Departamento de Matemática Elsa Carvalho 170 Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Teoria das Provas - Conceitos Definição formal de Prova Seja A um conjunto de axiomas e R um conjunto de regras de inferência. Uma prova derivada do sistema de inferência [A, R] é a sequência < s1, s2, ..., sn > em que cada si ou é um axioma de A ou é derivado através da aplicação de uma regra de R em axiomas de A e/ou de frases que precedem si. A sequência é denominada por prova de si i.e. A ├ si A relação de derivabilidade usando R é definida por: ├R = {(A, s) s é provado através de A usando R} Universidade da Madeira Departamento de Matemática Elsa Carvalho 171 Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Relação entre Teoria dos Modelos e das Provas Seja S um conjunto de frases lógicas e c uma conclusão. Requisito mínimo: Se S expressa correctamente o nosso problema a resolver então c expressa correctamente a conclusão. Se correcto quer dizer “verdade numa interpretação própria” então podemos dizer que, para uma dada interpretação I: Se I é um modelo de S então I é um modelo de c Universidade da Madeira Departamento de Matemática Elsa Carvalho 172 Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Relação entre Teoria dos Modelos e das Provas Mas o computador só manipula símbolos e nada sabe sobre as nossas intenções. Terá de ser algo mais forte, ou seja, para todas as possíveis interpretações I: Se I é um modelo de S então I é um modelo de c Por outras palavras, queremos mostrar que S╞ c. Felizmente, é possível mostrar que S╞ c sem ter que verificar todas as interpretações. Usamos simplesmente um estabeleça a relação S├ c. Universidade da Madeira Departamento de Matemática Elsa Carvalho 173 sistema de inferência que Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Relação entre Teoria dos Modelos e das Provas Duas propriedades essenciais dos sistemas de inferência Correcto (Soundness) para todo o S e c, se S├ c então S╞ c Um procedimento de prova que não prove fórmulas falsas diz-se que é correcto. Completo (Completeness) para todo o S e c, se S╞ c então S├ c Um procedimento de prova com o qual é possível provar qualquer fórmula verdadeira diz-se que é completo. Um sistema que não é completo não tem poder inferencial suficiente para resolver todos os problemas que têm solução. Universidade da Madeira Departamento de Matemática Elsa Carvalho 174 Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Sistemas de Inferência para a Forma Clausal As letras que vamos utilizar de seguida, A, B, C, etc., referemse a proposições. Um exemplo de um sistema correcto e completo é: modus ponens {B, A B} ├ A com transporte de literais (A B C A B C) Um problema com o uso do modus ponens é que é usado sem particular objectivo de uma conclusão específica. Assim pode inferir coisas nas quais não estamos interessados. Universidade da Madeira Departamento de Matemática Elsa Carvalho 175 Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Sistemas de Inferência para a Forma Clausal Considerando isto, é geralmente melhor usar um sistema de inferência com a seguinte regras: {(C A C1 … Cn), (A B)}├ C B C1 … Cn Um caso especial desta regra é modus tollens: {A, (A B)}├ B { A, (A B)}├ B (formato condicional) Com este novo método, primeiro nega-se a conclusão desejada e depois tenta-se inferir a cláusula vazia ( ) (inconsistência). Universidade da Madeira Departamento de Matemática Elsa Carvalho 176 Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Sistemas de Inferência para a Forma Clausal Generalizando, tendo um programa P (conjunto de cláusulas), uma desejada conclusão A e um sistema de inferência que é correcto e completo para ├, então: P {A}╞ se e só se P╞ (falso A) P {A}╞ se e só se P╞ A P {A}├ se e só se P├ A Na primeira equivalência utiliza-se uma teorema da consequência lógica que diz para qq conjunto de frases S = {s1, ..., sn} e qq frase f, S╞ f se e só se S – {si}╞ (f si) [para qq i] Universidade da Madeira Departamento de Matemática Elsa Carvalho 177 Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Sistemas de Inferência para a Forma Clausal Assim, se a conclusão A pode ser inferida directamente de P, então a sua negação A pode ser refutada de P. Qualquer prova de é designada por refutação. A execução de um programa em lógica é baseado no método de provas por refutação. Dado um programa P e uma fórmula negada A (ambas na forma clausal) tentamos mostrar que P {A} é inconsistente Universidade da Madeira Departamento de Matemática Elsa Carvalho 178 Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Resolução (versão proposicional) Resolução é uma regra de inferência que, usada isoladamente, é suficiente para testar se um dado conjunto de cláusulas é inconsistente (derivando ). Assim temos, dado um conjunto de cláusulas P: 1. Escolher uma cláusula A A1 … Am P 2. Procurar outra cláusula C A C1 … Cn P 3. Construir a cláusula C A1 … Am C1 … Cn 4. Adicionar a cláusula construída a P Universidade da Madeira Departamento de Matemática Elsa Carvalho 179 Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Resolução (versão proposicional) Dado pai mae progenitor e construir homem mae progenitor homem pai A aplicação da regra chama-se um passo da resolução. As cláusulas escolhidas para um passo de resolução são chamadas premissas. A cláusula que é derivada chama-se resolvente. Universidade da Madeira Departamento de Matemática Elsa Carvalho 180 Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Resolução (versão proposicional) Propriedades É correcto: cada resolvente é implicado pelas suas premissas. Um resolvente é a cláusula vazia ( ) se e só se uma premissa é uma fórmula atómica A e a outra é A. Para qualquer conjunto inconsistente de cláusulas de Horn, a cláusula vazia pode ser inferida como resolvente. Por causa desta propriedade chamamos à resolução refutationcomplete (completa com a refutação). A resolução pode ser usada unicamente com frases lógicas na forma clausal. Universidade da Madeira Departamento de Matemática Elsa Carvalho 181 Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Resolução (versão proposicional) A forma habitual de usar a resolução para a programação com cláusulas de Horn é: assumimos que P é um conjunto de cláusulas definidas a resposta desejada A é formulada como uma cláusula negativa A aplica-se a resolução com o objectivo de obter uma prova de ou seja, refutação. Universidade da Madeira Departamento de Matemática Elsa Carvalho 182 Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Resolução (versão proposicional) Assim temos P╞ A então P╞ A P {A} é inconsistente P {A}├ por refutação se e só se se e só se uma vez que a resolução é correcta e completa com a refutação. Universidade da Madeira Departamento de Matemática Elsa Carvalho 183 Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Resolução (versão proposicional) Exemplo com cláusulas de Horn 1. A 2. A B C 3. B C 4. C Por resolução temos de 1. e 2. infere-se de 3. e 5. infere-se de 4. e 6. infere-se de 4. e 7. infere-se 5. B C 6. C C 7. C 8. Note-se que existem outras refutações alternativas e podem ser obtidas por resolução. Universidade da Madeira Departamento de Matemática Elsa Carvalho 184 Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Resolução (versão proposicional) A representação em árvore é mais habitual A ABC BC C BC CC C Universidade da Madeira Departamento de Matemática Elsa Carvalho 185 Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05)