Upload
internet
View
108
Download
0
Embed Size (px)
Citation preview
Elsa Carvalho
Programação em Lógica e Funcional (2000/01)(Actualizado em 2004/05)
1Universidade da Madeira
Departamento de Matemática
Teoria dos Modelos e das ProvasLógica fornece duas noções de consequência: lógica e sintática.
Teoria dos ModelosSeja 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.
Elsa Carvalho
Programação em Lógica e Funcional (2000/01)(Actualizado em 2004/05)
2Universidade da Madeira
Departamento de Matemática
Teoria dos Modelos e das Provas
Teoria das ProvasSeja 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.
Elsa Carvalho
Programação em Lógica e Funcional (2000/01)(Actualizado em 2004/05)
3Universidade da Madeira
Departamento de Matemática
Teoria dos Modelos - ConceitosUma 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 designa-se 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 contra-modelo (ou que não satisfaz).
Uma frase válida é uma frase lógica em que todas as suas interpretações são modelos.
Elsa Carvalho
Programação em Lógica e Funcional (2000/01)(Actualizado em 2004/05)
4Universidade da Madeira
Departamento de Matemática
Teoria dos Modelos - ConceitosExemplo
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.
Elsa Carvalho
Programação em Lógica e Funcional (2000/01)(Actualizado em 2004/05)
5Universidade da Madeira
Departamento de Matemática
Exemplo (cont.)
A frase gosta(barney, bambam) é verdade na interpretação:
= barney = bambam
egosta =
< > < > < >
porque o tuplo < > pertence ao domínio da relação gosta.
Teoria dos Modelos
Elsa Carvalho
Programação em Lógica e Funcional (2000/01)(Actualizado em 2004/05)
6Universidade da Madeira
Departamento de Matemática
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.
Elsa Carvalho
Programação em Lógica e Funcional (2000/01)(Actualizado em 2004/05)
7Universidade da Madeira
Departamento de Matemática
Teoria das Provas - ConceitosA 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 chamadas teoremas (ou consequências sintácticas).
Regras de inferência operam unicamente sobre a sintaxe das frases (e não sobre o seu significado).
Elsa Carvalho
Programação em Lógica e Funcional (2000/01)(Actualizado em 2004/05)
8Universidade da Madeira
Departamento de Matemática
Teoria das Provas - ConceitosA 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.
Elsa Carvalho
Programação em Lógica e Funcional (2000/01)(Actualizado em 2004/05)
9Universidade da Madeira
Departamento de Matemática
Teoria das Provas - ConceitosDefinição formal de ProvaSeja 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}
Elsa Carvalho
Programação em Lógica e Funcional (2000/01)(Actualizado em 2004/05)
10Universidade da Madeira
Departamento de Matemática
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
Elsa Carvalho
Programação em Lógica e Funcional (2000/01)(Actualizado em 2004/05)
11Universidade da Madeira
Departamento de Matemática
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 sistema de inferência que estabeleça a relação S├ c.
Relação entre Teoria dos Modelos e das Provas
Elsa Carvalho
Programação em Lógica e Funcional (2000/01)(Actualizado em 2004/05)
12Universidade da Madeira
Departamento de Matemática
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.
Relação entre Teoria dos Modelos e das Provas
Elsa Carvalho
Programação em Lógica e Funcional (2000/01)(Actualizado em 2004/05)
13Universidade da Madeira
Departamento de Matemática
Sistemas de Inferência para a Forma Clausal
As letras que vamos utilizar de seguida, A, B, C, etc., referem-se 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.
Elsa Carvalho
Programação em Lógica e Funcional (2000/01)(Actualizado em 2004/05)
14Universidade da Madeira
Departamento de Matemática
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).
Elsa Carvalho
Programação em Lógica e Funcional (2000/01)(Actualizado em 2004/05)
15Universidade da Madeira
Departamento de Matemática
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]
Elsa Carvalho
Programação em Lógica e Funcional (2000/01)(Actualizado em 2004/05)
16Universidade da Madeira
Departamento de Matemática
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
Sistemas de Inferência para a Forma Clausal
Elsa Carvalho
Programação em Lógica e Funcional (2000/01)(Actualizado em 2004/05)
17Universidade da Madeira
Departamento de Matemática
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
Elsa Carvalho
Programação em Lógica e Funcional (2000/01)(Actualizado em 2004/05)
18Universidade da Madeira
Departamento de Matemática
Resolução (versão proposicional)
Dado
pai mae progenitor e homem pai
construir
homem mae progenitor
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.
Elsa Carvalho
Programação em Lógica e Funcional (2000/01)(Actualizado em 2004/05)
19Universidade da Madeira
Departamento de Matemática
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 refutation-complete (completa com a refutação).
A resolução pode ser usada unicamente com frases lógicas na forma clausal.
Elsa Carvalho
Programação em Lógica e Funcional (2000/01)(Actualizado em 2004/05)
20Universidade da Madeira
Departamento de Matemática
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.
Elsa Carvalho
Programação em Lógica e Funcional (2000/01)(Actualizado em 2004/05)
21Universidade da Madeira
Departamento de Matemática
Resolução (versão proposicional)
Assim temos
P╞ A se e só se P {A} é inconsistente
então P╞ A se e só se P {A}├ por refutação
uma vez que a resolução é correcta e completa com a refutação.
Elsa Carvalho
Programação em Lógica e Funcional (2000/01)(Actualizado em 2004/05)
22Universidade da Madeira
Departamento de Matemática
Resolução (versão proposicional)
Exemplo com cláusulas de Horn
1. A2. A B C3. B C4. C Por resolução temos
de 1. e 2. infere-se 5. B Cde 3. e 5. infere-se 6. C Cde 4. e 6. infere-se 7. Cde 4. e 7. infere-se 8.
Note-se que existem outras refutações alternativas e podem ser obtidas por resolução.
Elsa Carvalho
Programação em Lógica e Funcional (2000/01)(Actualizado em 2004/05)
23Universidade da Madeira
Departamento de Matemática
Resolução (versão proposicional)
A representação em árvore é mais habitual
A A B C B C C
B C
C C
C