Lógica Computacional
Aula Teórica 9
Resolução proposicional: Propriedades e estratégias de prova
Ricardo Gonçalves
Departamento de Informática
13 de outubro de 2023
Resolução: aplicações Resolução como sistema de prova Estratégias de resolução Resolução-SLD
Correcção e Completude da Resolução
Teorema da Correção e Completude da Resolução
Dada φ ∈ FP com FNC(φ), então:
∅ ∈ Res∗ (φ) se e só se φ é contraditória
Resolução: aplicações Resolução como sistema de prova Estratégias de resolução Resolução-SLD
Verificação de natureza da fórmula
Qual a natureza de φ ∈ FP ?
1 Colocar na FNC
2 Aplicar Lema das disjunções para verificar se é válida
3 Se não for válida, usar Resolução para verificar se é possível ou
contraditória
Resolução: aplicações Resolução como sistema de prova Estratégias de resolução Resolução-SLD
Resolução e Validade
Objetivo do algoritmo de Resolução
Verificar se uma dada fórmula é contraditória ou não.
Resolução para verificar validade
Podemos usar Resolução para verificar a validade de fórmula?
Proposição
φ é válida se e só se ¬φ é contraditória
Corolário
Dada uma fórmula φ ∈ FP , tem-se que:
φ é válida se e só se ∅ ∈ Res∗ (¬φ)
Resolução: aplicações Resolução como sistema de prova Estratégias de resolução Resolução-SLD
Resolução e Consequência Semântica
Resolução para verificar Consequência Semântica
Podemos usar Resolução para verificar Consequência Semântica?
Proposição
Vn
{ψ1 , . . . , ψn } |= φ se e só se ( i=1 ψi ) ∧ (¬φ) é contraditória
Corolário
Dadas fórmulas ψ1 , . . . , ψn , φ ∈ FP , tem-se que:
{ψ1 , . . . , ψn } |= φ se e só se ∅ ∈ Res∗ (( ni=1 ψi ) ∧ (¬φ))
V
Resolução: aplicações Resolução como sistema de prova Estratégias de resolução Resolução-SLD
Objectivo
Procedimento automático
Pretende-se encontrar formas de implementar o método de
resolução, de forma a que seja mais eficiente.
No caso de uma fórmula φ ser contraditória:
não queremos ter de calcular todo o conjunto Res∗ (φ)
queremos uma prova simples que mostre que ∅ ∈ Res∗ (φ)
com que ordem calculamos os resolventes de forma a obter ∅?
estratégias ad-hoc não são (necessariamente) eficientes
Resolução: aplicações Resolução como sistema de prova Estratégias de resolução Resolução-SLD
Sistemas de prova
Sistema de prova
Um sistema de prova sobre FP é um conjunto de regras de
inferência.
Prova formal ou derivação
Dado um sistema de prova sobre FP , uma prova formal ou
derivação de uma fórmula φ a partir de um conjunto de fórmulas C
é uma sequência finita de fórmulas de FP tal que:
o último elemento da sequência é φ
cada elemento da sequência é:
um elemento de C ou
obtido de anteriores usando uma das regras de inferência
Resolução: aplicações Resolução como sistema de prova Estratégias de resolução Resolução-SLD
Resolução
Sistema R
∅ pode ser derivado no Sistema R a partir de um conjunto C de
cláusulas se existir uma sequência finita de cláusulas tal que:
a última cláusula da sequência é ∅
cada cláusula da sequência é:
uma cláusula de C ou
obtido de duas cláusulas anteriores usando Resolução
A sequência é uma prova no Sistema R de ∅ a partir de C.
É também chamada uma refutação por Resolução de C.
Notas
Em cada passo colocamos a justificação para esse passo
Numeramos a sequência para ser mais fácil referir um
elemento anterior
Resolução: aplicações Resolução como sistema de prova Estratégias de resolução Resolução-SLD
Exemplo de prova por resolução
Seja C = {{p, q, ¬r}, {p, ¬q}, {¬p}, {p, q, r}}
Passo Dedução Justificação
1 {p, q, ¬r} C1
2 {p, q, r} C4
3 {p, q} Res: 1 e 2
4 {p, ¬q} C2
5 {p} Res: 3 e 4
6 {¬p} C3
7 ∅ Res: 5 e 6
Resolução: aplicações Resolução como sistema de prova Estratégias de resolução Resolução-SLD
Resultados
Teorema
Seja φ ∈ FP tal que FNC(φ).
Se existe uma prova no Sistema R de ∅ a partir do conjunto de
cláusulas que representa φ, então ∅ ∈ Res∗ (φ).
Aplicação
Pelo Teorema da Correção do algoritmo de Resolução, podemos
mostrar que uma formula φ é contraditória fazendo uma prova no
Sistema R de ∅ a partir do conjunto das cláusulas de φ.
Corolário - Correção do Sistema R
Seja φ ∈ FP tal que FNC(φ).
Se existe uma prova no Sistema R de ∅ a partir do conjunto de
cláusulas que representa φ, então φ é contraditória.
Resolução: aplicações Resolução como sistema de prova Estratégias de resolução Resolução-SLD
Estratégias de resolução
Com que ordem/estratégia aplicamos a regra da Resolução para
derivar ∅?
Resolução: aplicações Resolução como sistema de prova Estratégias de resolução Resolução-SLD
Uma estratégia de Resolução
Resolução Negativa
Diz-se que uma prova por Resolução segue a estratégia de
Resolução Negativa ou Resolução-N, se em todas as aplicações da
regra da Resolução nessa prova pelo uma das cláusulas só tem
literais negativos.
Resolução: aplicações Resolução como sistema de prova Estratégias de resolução Resolução-SLD
Exemplo de Resolução-N
C = {{p, q}, {¬p, r}, {¬q, s}, {¬r}, {¬s}}
Resolução-N, solução 1
Passo Dedução Justificação
1 {¬r} C4
2 {¬p, r} C2
3 {¬p} Res: 1 e 2
4 {p, q} C1
5 {q} Res: 3 e 4
6 {¬s} C5
7 {¬q, s} C3
8 {¬q} Res: 6 e 7
9 ∅ Res: 5 e 8
Resolução: aplicações Resolução como sistema de prova Estratégias de resolução Resolução-SLD
Outro exemplo de Resolução-N
C = {{p, q}, {¬p, r}, {¬q, s}, {¬r}, {¬s}}
Resolução-N, solução 2
Passo Dedução Justificação
1 {¬s} C5
2 {¬q, s} C3
3 {¬q} Res: 1 e 2
4 {¬r} C4
5 {¬p, r} C2
6 {¬p} Res: 4 e 5
7 {p, q} C1
8 {q} Res: 6 e 7
9 ∅ Res: 3 e 8
Resolução: aplicações Resolução como sistema de prova Estratégias de resolução Resolução-SLD
Propriedade da Resolução-N
Teorema da Completude da Resolução-N
Seja φ ∈ FP tal que FNC(φ). Então,
∅ ∈ Res∗ (φ)
se e só se
∅ pode ser derivado por Resolução-N a partir de φ
Resolução: aplicações Resolução como sistema de prova Estratégias de resolução Resolução-SLD
Outra estratégia de Resolução
Resolução Linear
Diz-se que uma prova por Resolução segue a estratégia de
Resolução Linear ou Resolução-L, se cada aplicações da regra da
Resolução é aplicada ao resolvente obtido no passo anterior.
Resolução: aplicações Resolução como sistema de prova Estratégias de resolução Resolução-SLD
Exemplo de Resolução-L
C = {{p, q}, {¬p, r}, {¬q, s}, {¬r}, {¬s}}
Resolução-L, solução 1
Passo Dedução Justificação
1 {¬p, r} C2
2 {¬r} C4
3 {¬p} Res: 1 e 2
4 {p, q} C1
5 {q} Res: 3 e 4
6 {¬q, s} C3
7 {s} Res: 5 e 6
8 {¬s} C5
9 ∅ Res: 7 e 8
Resolução: aplicações Resolução como sistema de prova Estratégias de resolução Resolução-SLD
Exemplo de Resolução-L
C = {{p, q}, {¬p, r}, {¬q, s}, {¬r}, {¬s}}
Resolução-L, solução 2
Passo Dedução Justificação
1 {¬q, s} C3
2 {¬s} C5
3 {¬q} Res: 1 e 2
4 {p, q} C1
5 {p} Res: 3 e 4
6 {¬p, r} C2
7 {r} Res: 5 e 6
8 {¬r} C4
9 ∅ Res: 7 e 8
Este e a anterior são provas por Resolução-N?
Resolução: aplicações Resolução como sistema de prova Estratégias de resolução Resolução-SLD
Propriedade da Resolução-L
Teorema da Completude da Resolução-L
Seja φ ∈ FP tal que FNC(φ). Então,
∅ ∈ Res∗ (φ)
se e só se
∅ pode ser derivado por Resolução-L a partir de φ
Resolução: aplicações Resolução como sistema de prova Estratégias de resolução Resolução-SLD
Resolução-LN
Será que podemos combinar as duas estratégias?
Podemos sempre fazer Resolução-LN ?
Exemplo: C = {{p, q}, {¬p, r}, {¬q, s}, {¬s}, {¬r}}
Resolução-LN?
Pela estratégia N temos de começar de C4 ou de C5 .
Começando com C4 : juntamente com C3 obtém-se {¬q}.
Depois usamos C1 e obtemos {p}. Teríamos de usar C2 .
Falha a estratégia N
Começando com C5 : juntamente com C2 obtém-se {¬p}.
Depois usamos C1 e obtemos {q}. Teríamos de usar C3 .
Falha a estratégia N
Por Resolução-LN não dá.
A estratégia LN não é universal!
Resolução: aplicações Resolução como sistema de prova Estratégias de resolução Resolução-SLD
Fórmulas de Horn
Recordar
Seja φ ∈ FP tal que FNC(φ). Se cada cláusula em φ contém no
máximo um literal positivo, então φ diz-se uma fórmula de Horn.
Teorema
Seja φ ∈ FP tal que FNC(φ). Se φ é uma fórmula de Horn então
∅ ∈ Res∗ (φ)
se e só se
∅ pode ser derivado por Resolução-LN a partir de φ
Resolução: aplicações Resolução como sistema de prova Estratégias de resolução Resolução-SLD
Resolução-SLD
Terminologia
Cláusula só com literais negativos diz-se objetivo
Cláusula só com um literal positivo diz-se determinada
Na aplicação de Resolução-N temos de escolher, de uma
cláusula objetivo, que literal negativo vai se usado para
calcular o próximo resolvente
Chama-se função de seleção a uma estratégia de escolha do
literal negativo a usar
A função de seleção deve ser invariante para qualquer função
de substituição (não pode depender dos símbolos).
Resolução-SLD
A Resolução-SLD (Linear e Determinada, com Selector) é a
Resolução-LN com uma função de seleção.
Resolução: aplicações Resolução como sistema de prova Estratégias de resolução Resolução-SLD
Exemplo de Resolução-SLD
A Resolução-SLD está na base da programação em lógica.
Teorema
Seja φ ∈ FP tal que FNC(φ). Se φ é uma fórmula de Horn então
∅ ∈ Res∗ (φ)
se e só se
∅ pode ser derivado por Resolução-SLD a partir de φ
Resolução: aplicações Resolução como sistema de prova Estratégias de resolução Resolução-SLD
Exemplo de Resolução-SLD
C = {{¬p, s}, {p, ¬q}, {q}, {¬r, ¬s}, {r, ¬t}, {t}}
É fórmula de Horn. Vamos usar Resolução-SLD com seletor “à
direita” (selecionar o literal mais à direita):
Passo Dedução Justificação
1 {¬r, ¬s} C4
2 {¬p, s} C1
3 {¬p, ¬r} Res: 1 e 2
4 {r, ¬t} C5
5 {¬p, ¬t} Res: 3 e 4
6 {t} C6
7 {¬p} Res: 5 e 6
8 {p, ¬q} C2
9 {¬q} Res: 7 e 8
10 {q} C3
11 ∅ Res: 9 e 10
Resolução: aplicações Resolução como sistema de prova Estratégias de resolução Resolução-SLD
Outro exemplo de Resolução-SLD
C = {{¬p, ¬q, t}, {p}, {¬p, q}, {¬t}}
É fórmula de Horn. Vamos usar Resolução-SLD com seletor “à
esquerda” (selecionar o literal mais à esquerda):
Passo Dedução Justificação
1 {¬t} C4
2 {¬p, ¬q, t} C1
3 {¬p, ¬q} Res: 1 e 2
4 {p} C2
5 {¬q} Res: 3 e 4
6 {¬p, q} C3
7 {¬p} Res: 5 e 6
8 {p} C2
9 ∅ Res: 7 e 8
Resolução: aplicações Resolução como sistema de prova Estratégias de resolução Resolução-SLD
Verificação de natureza da fórmula
Qual a natureza de φ ∈ FP ?
1 Colocar na FNC
2 Aplicar Lema das disjunções para verificar se é válida
3 Se não for válida, usar Resolução para verificar se é possível ou
contraditória:
Se suspeitarmos que a fórmula é contraditória, podemos tentar
usar o Sistema R:
Se for fórmula de Horn usamos Resolução-SLD
Caso contrário podemos usar Resolução-N ou Resolução-L
Em caso de dúvida, podemos sempre calcular Res∗
Resolução: aplicações Resolução como sistema de prova Estratégias de resolução Resolução-SLD
Exercícios
Qual a natureza das seguintes fórmulas?
(p → (r ∧ q)) ∧ ((s ∧ q) → r) ∧ ¬(r → p)
(p → q) ∧ ¬(p → (r ∨ q))