Você está na página 1de 191

Logica Aplicada `a Computacao

Newton Jose Vieira

Departamento de Ciencia da Computa cao


Instituto de Ciencias Exatas
Universidade Federal de Minas Gerais
* http://www.dcc.ufmg.br/~nvieira
email: nvieira@dcc.ufmg.br
ii
Sumario
1 Modelagem e Formaliza cao 3
2 Logica Proposicional 13
2.1 A realidade sob a otica da logica proposicional . . . . . . . . . . . . . . 13
2.2 A linguagem proposicional . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.3 Sem antica da linguagem proposicional . . . . . . . . . . . . . . . . . . . 21
2.3.1 O signicado das formulas . . . . . . . . . . . . . . . . . . . . . . 21
2.3.2 Avalia cao de formulas no nvel conceitual . . . . . . . . . . . . . 25
2.3.3 Avalia cao de formulas no nvel formal . . . . . . . . . . . . . . . 32
2.3.4 Equivalencia logica . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.3.5 Satisfa cao, tautologias e contradi coes . . . . . . . . . . . . . . . . 38
2.3.6 O problema da satisfabilidade . . . . . . . . . . . . . . . . . . . . 44
2.3.7 Determinando a que classe pertence uma formula . . . . . . . . . 56
2.3.8 Formas normais . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
2.3.9 O algoritmo DPLL . . . . . . . . . . . . . . . . . . . . . . . . . . 66
2.4 Conseq uencia logica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
2.5 Dedu cao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
2.5.1 Exemplos de regras de inferencia e dedu coes . . . . . . . . . . . . 77
2.5.2 Sistema dedutivo do tipo Hilbert . . . . . . . . . . . . . . . . . . 79
2.5.3 Dedu cao natural . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
2.5.4 Tableau analtico . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
2.5.5 Resolu cao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
2.5.6

Arvores de prova . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
3 Logica de Predicados de Primeira Ordem 103
3.1 Modelando a realidade por meio de estruturas . . . . . . . . . . . . . . . 103
3.2 A linguagem da logica de predicados . . . . . . . . . . . . . . . . . . . . 106
3.3 Sem antica da linguagem . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
3.4 Conseq uencia logica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
3.5 Dedu cao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
3.5.1 Exemplos de regras de inferencia e dedu coes . . . . . . . . . . . . 116
3.5.2 Sistema dedutivo do tipo Hilbert . . . . . . . . . . . . . . . . . . 118
3.5.3 Dedu cao natural . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
iii
Newton Jose Vieira Captulo 1: Modelagem e formaliza c ao 1
3.5.4 Tableau analtico . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
3.5.5 Unica cao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
3.5.6 Tableau com unica cao . . . . . . . . . . . . . . . . . . . . . . . 128
3.5.7 Resolu cao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
3.5.8

Arvores de prova . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
3.6 L ogica de predicados multisortida . . . . . . . . . . . . . . . . . . . . . . 175
2 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
Captulo 1
Modelagem e Formalizacao
Men content themselves with the same words as other people use, as if the
very sound necessarily carried the same meaning. John Locke (1632-1704)
Um ser humano procura observar e compreender a realidade que o cerca utilizando
os sentidos, o raciocnio, a intui c ao etc., munido dos poderes a eles conferidos pela
natureza, mas tambem limitado pelas imperfei coes inerentes aos mesmos. Os sentidos
s ao os meios atraves dos quais o ser humano tem contato com objetos ou acontecimentos
externos. Em tal contato ele nunca tem uma compreensao exata daquilo que est a sendo
apreendido, seja porque os sentidos s ao imperfeitos, incapazes de captar a realidade
como ela e em todos os seus detalhes, seja porque os interesses, objetivos, emo coes etc.
do indivduo tem inuencia sobre o que ele efetivamente assimila ou n ao. Durante a
assimila cao de conhecimento, o raciocnio, a intui cao etc. s ao utilizados, em maior ou
menor grau, na tentativa de compreender o que se passa e tambem para decidir o que
e importante e o que n ao e, o que vale a pena reter e o que n ao vale.
O processo de assimila cao do conhecimento correspondente a uma por cao da re-
alidade, descrito acima de forma bastante sucinta e imperfeita, est a presente quando
um prossional de computa cao se envolve na atividade de construir um algoritmo,
um sistema de informa cao, uma base de dados ou uma base de conhecimentos para
certa aplica cao. Mas, alem das limita coes impostas pelos sentidos, raciocnio, intui cao,
interesses pessoais etc. o prossional se depara tambem com restri coes ditadas pelo
empregador, cliente, ou o que seja, que inuenciam diretamente em como ele deve
ver a realidade, de maneira que possa levar a bom termo a atividade sob sua respon-
sabilidade. Tal processo, nesse contexto, e denominado modelagem. O programador
ou analista obtem, a partir da realidade correspondente `a aplica cao que tem em vista,
um modelo conceitual que, n ao apenas inclua todos os detalhes necessarios para a sa-
tisfa cao dos requisitos da aplica cao, mas tambem que n ao inclua detalhes em excesso,
que possam comprometer a eciencia do tratamento computacional da mesma. Nesse
contexto, a realidade n ao e necessariamente constituda de objetos e acontecimentos
reais, objetos e acontecimentos que efetivamente tenham existido, existam ou vao
existir. Ela pode conter, alem de entidades concretas, entidades abstratas, ctcias, ou
o que quer que seja conveniente considerar como povoando a realidade na aplica cao
3
4 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
especca.
Varios tipos de entidades matem aticas podem ser utilizados no processo de mo-
delagem como, por exemplo, conjuntos, fun coes, rela coes, grafos, aut omatos nitos,
equa coes diferenciais etc. Depois de obtido um modelo conceitual em termos de al-
gumas entidades matem aticas como essas, um programador ou analista deve codicar
o conhecimento modelado em uma linguagem formal ou mais de uma, para que a
aplica cao possa ser tratada computacionalmente ou simplesmente para atingir um maior
rigor ou precisao. Exemplos de linguagens formais s ao as linguagens de programa cao
(procedurais, funcionais, orientadas a objeto ou baseadas em logica), linguagens de
especica cao formal de sistemas, linguagens de bases de dados (como as baseadas na
algebra ou no calculo relacional), e linguagens logicas para express ao de conhecimento
(como as logicas proposicional, de primeira ordem, de segunda ordem, n ao monot onicas,
paraconsistentes, probabilsticas) etc. O processo de codicar o conhecimento em uma
linguagem formal a partir de um modelo conceitual (explcito ou n ao) e denominado
formaliza c ao e o resultado e um sistema formal, sendo que este ultimo pressup oe, alem
da linguagem formal propriamente dita, algum mecanismo de processamento do conhe-
cimento expresso.
1
A Figura 1.1 mostra de forma esquem atica os processos mencionados anteriormente.
As caixas representam os tres de tipos de entidades envolvidas: a realidade (domnio
da aplica cao), o modelo conceitual e o sistema formal. As setas duplas representam
processos que levam de um tipo de entidade a outro. Assim, a gura mostra que o
processo de modelagem parte da realidade em questao e produz como resultado um
modelo conceitual, e o processo de formaliza cao parte do modelo conceitual e obtem
um sistema formal como resultado. Com isto, pode-se dizer que existem tres nveis de
atividades correspondentes aos tres tipos de entidades envolvidas: o nvel objeto, em
que se considera a realidade, o nvel conceitual, em que se expressa o modelo conceitual,
e o nvel formal, em que se trata do sistema formal. Do lado direito da cada caixa, na
gura, est ao anotados exemplos de elementos utilizados na composi cao do conhecimento
relativo `as entidades de cada um dos nveis.
Na atividade de modelagem e importante, n ao apenas a capacidade de distinguir
os detalhes importantes e express a-los por meio das entidades matem aticas escolhidas,
mas tambem a de desprezar detalhes irrelevantes, principalmente aqueles que possam
comprometer o processamento posterior `a formaliza cao. Assim, pode-se dizer que a
atividade de modelagem e uma atividade de abstra c ao: aos elementos da realidade
correspondem elementos abstratos (matem aticos), os quais n ao s o s ao inerentemente
incapazes de capturar todos os aspectos, mas tambem devem ser utilizados (intencional-
mente) de forma a deixar de capturar varios deles. J a na atividade de formaliza cao,
deve-se utilizar uma linguagem formal a partir da qual seja possvel expressar tudo
aquilo que est a presente no modelo conceitual concebido. E o mesmo princpio de
1
Em sua denicao padrao, um sistema formal consta, basicamente, de uma linguagem formal e um
conjunto de regras de reescrita. Tais regras denem, implicitamente, um mecanismo nao determinstico
de geracao de expressoes na linguagem. A concepcao de sistema formal como constitudo de linguagem
formal mais um mecanismo de processamento e consistente com a denicao padrao, embora um pouco
mais permissiva se se exibilizar a nocao de mecanismo de processamento.
Newton Jose Vieira Captulo 1: Modelagem e formaliza c ao 5
N

IVEIS
objeto
conceitual
formal
pessoas
deuses
cidades
contas bancarias
.
.
.
_

REALIDADE
MODELAGEM

conjuntos
relacoes
grafos
equacoes diferenciais
.
.
.
_

MODELO CONCEITUAL
FORMALIZAC

AO

linguagens de programacao
linguagens de especicacao formal
logica de predicados
logica probabilstica
.
.
.
_

SISTEMA FORMAL
Figura 1.1: Os processos de modelagem e formaliza cao.
economia que aconselha o desprezo de detalhes irrelevantes durante o processo de
modelagem pode ser utilizado na etapa de formaliza cao: normalmente, e conveniente
utilizar uma linguagem formal apenas suciente para expressar tudo que est a previsto
pela modelagem efetuada, pois uma linguagem que permita expressar mais do que o
necessario pode levar a ineciencias indesej aveis ou, mesmo, insuper aveis.
Na Figura 1.2 est a mostrado o tri angulo do signicado,
2
que explicita claramente a
rela cao indireta que existe entre um smbolo e o objeto que ele representa. O smbolo,
na verdade, diz respeito a um conceito que, por sua vez, e uma vers ao abstrata de
um objeto. O ser humano apreende e raciocina com conceitos, que ele interpreta como
referindo-se a elementos da realidade. Havendo a necessidade de express ao dos conceitos
por meio de uma linguagem, como no caso de uma formaliza cao, entram em cena
os smbolos. Assim, um smbolo representa um objeto indiretamente, denotando um
conceito que deve ser interpretado como uma vers ao abstrata do objeto. Evidentemente,
o tri angulo do signicado destaca os elementos fundamentais de cada um dos tres nveis
explicitados na Figura 1.1. Um exemplo bem simples mostrando entidades que povoam
os tres nveis: a idade de uma pessoa (no nvel objeto) pode ser modelada (abstrada)
como um n umero inteiro positivo (no nvel conceitual) que expresse o n umero de anos
2
Adaptado de Ogden, C.K., Richards, I.A. The meaning of meaning, Mariner Books, 1989.
6 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
OBJETO

abstrai

CONCEITO

denota

IMBOLO
representa

Figura 1.2: O tri angulo do signicado.


que a pessoa tem, desprezando-se os meses, dias etc. excedentes; tal n umero pode ser
formalizado (denotado) por meio de uma seq uencia de dgitos na notac ao decimal (no
nvel formal). Veja como s ao tres tipos de entidades diferentes: a idade (n umero de
anos da pessoa), o n umero (entidade matem atica abstrata) e a seq uencia de dgitos
decimais.

E interessante observar que cada um dos vertices pode estar ausente em certa
situa cao. Por exemplo, uma pessoa, ao ver um objeto desconhecido, pode formar
uma ideia (conceito) do mesmo, mas n ao ter uma denomina cao para ele. A palavra
lobisomem denota certa entidade (conceito) que n ao corresponde a um objeto real.
Uma pessoa pode encontrar uma palavra para a qual n ao conhece signicado (conceito)
ou a que objeto ela se refere; pode inventar um conceito para o qual ainda n ao formulou
uma denomina cao e que n ao designa (ainda) qualquer objeto; pode conviver com um
objeto para o qual n ao tem denomina cao nem faz ideia do que seja.
Um texto, tanto o escrito em uma linguagem formal quanto o escrito em uma lngua
natural, se situa no nvel formal, ou seja, simb olico. Com isto, quando uma pessoa
escreve uma senten ca em portugues, por exemplo, ela diz alguma coisa a respeito de
uma certa realidade (na verdade, conforme o entendimento que ela tem da realidade).
Deve-se enfatizar que a senten ca usa nomes para as entidades `as quais a pessoa se refere,
n ao as pr oprias entidades nem os conceitos que ela tem das mesmas. Por exemplo,
quando se diz
O ceu e azul.
n ao se est a usando as entidades ceu e azul na senten ca, mas nomes (ou seja, smbolos,
palavras) para elas. Uma forma de se referir ao nome de uma entidade em uma senten ca,
portanto colocando-o no nvel da realidade da qual se fala, e usar como nome do nome
o pr oprio entre aspas. Com esse artifcio, a senten ca
(a) A palavra ceu tem tres letras.
est a correta e diz uma verdade, enquanto que a senten ca
(b) A palavra ceu tem tres letras.
n ao diz uma verdade: anal, o ceu n ao e uma palavra! Porem, e comum interpretar
(b) como dizendo o que diz a senten ca (a).

E como se, implicitamente, se zesse
Newton Jose Vieira Captulo 1: Modelagem e formaliza c ao 7
uma convers ao de uma na outra, restabelecendo-se a corre cao. Esse tipo de atitude e
comum e, na verdade, e a mais comum, mesmo em textos em que se preza mais o uso
de formalismos, como os de matem atica e os de logica. Mas, nestes, e extremamente
importante que o leitor tenha consciencia disso, pois muitas vezes a pr opria linguagem
e objeto de discurso. Por exemplo, em matem atica, quando se diz a equa c ao x
2
x
1 = 0 tem duas razes complexas, o que se est a dizendo, na verdade, e que a equa c ao
x
2
x1 = 0 tem duas razes complexas. Uma outra maneira de dizer a mesma coisa
e: existem dois n umeros complexos x tais que x
2
x 1 = 0 (aqui usa-se a equa cao
para expressar uma proposi cao sobre n umeros, e n ao como um objeto do qual se esteja
falando; logo, n ao h a aspas).
Quando se estuda logica, a distin cao mencionada anteriormente e particularmente
importante porque ela tem como componente uma linguagem formal. Por causa disso, e
util tambem introduzir mais um conceito: o de metalinguagem. Quando se est a discur-
sando sobre uma linguagem, a linguagem objeto, usa-se para falar dela uma linguagem,
a metalinguagem, que pode ser a mesma ou n ao. Por exemplo, em livros de ensino da
lngua portuguesa, a pr opria lngua portuguesa e usada como metalinguagem para falar
sobre ela mesma. J a no caso de logica, costuma-se utilizar portugues suplementado com
uma simbologia matem atica (como de costume em matem atica em geral)
Os processos inversos aos da modelagem e da formaliza cao est ao ilustrados na
Figura 1.3. O caminho inverso ao da modelagem e percorrido por meio de uma in-
terpretac ao. Em uma interpreta cao, elementos das estruturas matem aticas utilizadas
para compor um modelo conceitual s ao vistos como abstraindo elementos respectivos da
realidade. Esta associa cao entre o modelo conceitual e a realidade s o existe na cabe ca
de quem interpreta. Na verdade, qualquer estrutura matem atica pode ser aplicada a
m ultiplas realidades. Pode-se imaginar que tais realidades tem em comum a estrutura
capturada por meio do modelo matem atico em questao. Para que pessoas diferentes
possam interpretar um modelo de uma maneira pr oxima daquela intencionada pelo seu
criador, o mesmo deve documenta-lo convenientemente, por exemplo, lan cando m ao de
descri coes complementares. Assim, o trabalho de mostrar que um modelo conceitual
captura uma por cao de realidade e um trabalho de convencimento, de mostrar com
argumentos intuitivos que as estruturas matem aticas empregadas capturam adequada-
mente o que se precisa.
O caminho inverso ao da formaliza cao e percorrido por meio de uma interpretac ao
formal. Em uma interpreta cao formal, os elementos ling usticos utilizados na forma-
liza cao s ao vistos como denotando elementos respectivos nas estruturas matem aticas
utilizadas na modelagem. Esta associa cao entre a linguagem formal e o modelo con-
ceitual e dada pela sem antica da linguagem. A grande vantagem de se utilizar metodos
formais est a justamente aqui: a sem antica e denida formalmente, de tal maneira
que as senten cas tenham um signicado preciso em termos das estruturas matem aticas
usadas na modelagem. Pessoas diferentes n ao podem fazer interpreta coes formais
diferentes.
3
3
Na verdade, podem existir estruturas matematicos distintas a partir dos quais se pode ter inter-
pretacoes formais alternativas, mas, xada a estrutura, a interpretacao formal e unica.
8 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
_

REALIDADE
MODELAGEM

INTERPRETAC

AO

MODELO CONCEITUAL
FORMALIZAC

AO

INTERPRETAC

AO FORMAL

SISTEMA FORMAL
Figura 1.3: Os dois processos de interpreta cao.

E importante ressaltar que os mapeamentos entre a realidade e o modelo conceitual,


tanto a modelagem como a interpreta cao, s o existem nas mentes das pessoas. Podem
haver anota coes, artigos, manuais etc. que expliquem como tais mapeamentos podem
ser feitos, mas os mapeamentos, em si, s o se realizam mentalmente. Por outro lado,
os outros dois mapeamentos, a formaliza cao e a interpreta cao formal s ao realizadas de
forma precisa e rigorosa, matematicamente, atraves de uma deni cao da sem antica da
linguagem formal.

E interessante notar que os objetos concretos, presentes em nosso dia-a-dia, n ao


podem povoar (eles pr oprios) o nvel conceitual e que os conceitos, como manifesta coes
mentais que s ao, n ao podem estar (eles pr oprios) no nvel formal. Em certo sentido, e
essa impossibilidade mesma que induz a cria cao dos dois nveis articiais, o conceitual,
para que se possa organizar o (pouco que seja) que se consiga abstrair do mundo, e o
formal, para que se possa atingir um m aximo de rigor e precisao (evidentemente, onde
for possvel e necessario). Por outro lado, a realidade, como considerada aqui, n ao
tem que ser constituda apenas por coisas concretas. Por exemplo, na metamatematica
o objeto de estudo e a pr opria matem atica. Em computa cao, na area de constru cao
de compiladores, a realidade tratada contem uma entidade formal: a linguagem de
programa cao a compilar.
Em uma aplica cao mais simples ou em que o analista ou programador tenha in-
Newton Jose Vieira Captulo 1: Modelagem e formaliza c ao 9
timidade suciente com certo tipo de sistema formal, pode ser conveniente realizar
os processos de modelagem e formaliza cao quase que concomitantemente, obtendo-se
diretamente uma express ao formal da realidade, saltando-se, ou quase, a etapa de com-
posi cao do modelo conceitual. Por exemplo, um programador pode `as vezes produzir
um algoritmo diretamente em uma linguagem de programa cao, sem passar pela etapa
de produzir um algoritmo em uma pseudolinguagem (esta ultima livre de restri coes
e idiossincrasias existentes em linguagens de programa cao reais, que, normalmente,
dicultam o processo de modelagem em si).
Nestas notas estaremos interessados na express ao e manipula cao de conhecimento
utilizando como linguagem formal a da l ogica matem atica,
4
sendo que daremos uma
enfase especial `a manipula cao por meio de computadores, ou seja, de algoritmos. Em
outras palavras, ao ser apresentado um metodo, ser a considerada a formula cao de um
algoritmo respectivo, quando aplic avel. Os algoritmos ser ao escritos em uma linguagem
procedural estilo Pascal. Acredita-se que o leitor n ao ter a diculdade em entende-los,
ja que as constru coes menos usais ser ao explicadas ao longo do texto na medida em que
forem aparecendo. De qualquer forma, o Apendice apresenta uma descri cao sucinta das
constru coes da linguagem algortmica usada.
Embora a logica matem atica tenha sido inicialmente desenvolvida no intuito de
prover uma fundamenta cao para a matem atica, ela teve e continua tendo sucesso,
talvez ate maior do que o daquele vericado para o proposito original, na express ao
e manipula cao de conhecimento em varias areas da computa cao como bancos de dados,
linguagens de programa cao e inteligencia articial. As vers oes que ser ao aqui estudadas,
a l ogica proposicional e a l ogica de predicados de primeira ordem, s ao sucientes, apesar
da simplicidade e economia conceitual de ambas, para a express ao e manipula cao de
uma parte substancial da matem atica e tambem do conhecimento tipicamente tratado
em computa cao. Alem disso, elas s ao as bases a partir das quais se considera extensoes,
como logicas de ordem superior, logicas modais etc., ou alternativas, como logicas pro-
babilsticas, intuicionistas, n ao monot onicas, paraconsistentes etc.
Daqui para frente o termo logica ser a usado como sin onimo de logica matem atica.
As aplica coes mais importantes das diversas vers oes de logica est ao ligadas `a pos-
sibilidade de determinar se a veracidade de uma certa armativa segue ou n ao da
veracidade de um conjunto de armativas, as quais comp oem uma teoria, ou uma base
de conhecimentos, ou a especica cao de um sistema etc. Essa determina cao e o que faz,
por exemplo, um matem atico quando demonstra um teorema a partir de um conjunto
de hip oteses H (incluindo-se em tais hip oteses todo o conhecimento necessario para a
demonstra cao do teorema).

E tambem o que faz um programa para prova autom atica
de teoremas que, a partir de um conjunto de armativas H, demonstra uma armativa
. Algumas diferen cas b asicas entre estas duas atividades s ao:
O programa lida com uma linguagem formal, tipicamente da logica proposicional
ou de predicados, enquanto que o matem atico usa o portugues intercalado, em
maior ou menor grau, com uma simbologia tpica da area em que se situa o
teorema.
4
Tambem chamada de logica formal ou logica simbolica.
10 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
O funcionamento do programa e determinado por um algoritmo que, por sua vez,
baseia-se em um sistema dedutivo formal. J a o matem atico, como um ser humano
que e (brincadeiras `a parte...), utiliza intui cao, raciocnio, estrategias etc.
As demonstra coes produzidas por um programa s ao dedu c oes formais, enquanto
que as produzidas por um matem atico s ao informais. Mas e importante ressaltar
que ambos se baseiam nos mesmos princpios. Por exemplo, tanto um passo
de uma dedu cao formal, quanto um passo de uma dedu cao informal (embora a
granularidade do primeiro costume ser menor) devem ser logicamente corretos
(em um sentido a ser explicitado a seguir).
Assim, dadas a primeira e a terceira observa coes anteriores, existem duas coisas
importantes no nvel formal que devem ser abordadas por uma logica:
a linguagem para express ao do conhecimento;
a no cao de dedu cao.
Correspondentemente, existem duas coisas importantes no nvel conceitual que devem
ser abordadas por uma logica, quais sejam, estruturas matem aticas a partir das quais
seja possvel denir:
a sem antica da linguagem para express ao do conhecimento; e
a sem antica da no cao de dedu cao.
A liga cao entre a parte formal e a conceitual e dada, no primeiro caso, por meio de uma
fun cao denominada func ao de valora c ao que especica em que condi coes cada senten ca
da linguagem e verdadeira ou falsa. No segundo caso, a liga cao e dada por meio da
equivalencia entre a rela cao de dedutibilidade (do nvel formal) e a de conseq uencia
logica (do nvel conceitual).
A no cao de conseq uencia logica, que ser a a mesma para as logicas proposicional e de
predicados, pode ser informalmente denida assim: dado um conjunto de armativas
H e uma armativa , diz-se que e conseq uencia logica de H se, e somente se,
e verdadeira sempre que todas as armativas em H sejam verdadeiras. Para dizer
de forma abreviada que e conseq uencia logica de H, escreve-se: H [= . Observe
que esta deni cao depende do signicado de e verdadeira, ou seja, da fun cao de
valora cao referida no par agrafo anterior.
A contrapartida formal da conseq uencia logica e a dedu cao (formal). Ser a usada
a nota cao H para dizer que a armativa e dedutvel a partir do conjunto de
armativas H. Quando se diz H (em palavras: e dedutvel a partir de H) deve-
se ter em mente um sistema dedutivo (tambem chamado de sistema formal ) especco,
o qual e composto de tres tipos de entidades:
uma linguagem (a linguagem para express ao do conhecimento referida anterior-
mente);
um conjunto de armativas na linguagem, denominadas axiomas; e
Newton Jose Vieira Captulo 1: Modelagem e formaliza c ao 11
um conjunto de regras de inferencia.
Dado um sistema dedutivo, dizer que H e o mesmo que dizer que existe uma
seq uencia de armativas
1
,
2
, . . . ,
n
tal que
n
e e cada
i
e:
um axioma, ou
uma armativa de H, ou
o resultado da aplica cao de uma regra de inferencia com premissas antes de
i
.
Algumas vezes, as armativas de H s ao chamadas de axiomas
5
e os axiomas do sistema
dedutivo s ao chamados de axiomas l ogicos.
Idealmente, e interessante que, para um certo sistema dedutivo, se tenha:
H se e somente se H [= .
Isso expressa a equivalencia anteriormente referida entre as rela coes de dedutibilidade e
de equivalencia logica. Em termos da Figura 1.3, pode-se dizer que [= e a interpreta cao
formal de . Um sistema que satisfaz
se H entao H [=
e dito ser correto, pois s o permite dedu coes corretas. Por outro lado, um sistema que
satisfaz
se H [= entao H
e dito ser completo, pois permite a dedu cao de tudo que e conseq uencia logica de um
conjunto de hip oteses. Logo, s o pode ser considerada uma formaliza cao exata de
[= (e [= uma interpreta cao formal exata de ) se o sistema dedutivo subjacente a
for correto e completo.
No pr oximo captulo ser a abordada uma vers ao limitada da logica classica, denomi-
nada logica proposicional, que e um subconjunto da logica de predicados de primeira
ordem. Existem duas raz oes para se apresentar essa logica mais simples. Uma delas
e possibilitar a introdu cao de alguns conceitos importantes em um contexto mais sim-
ples, ja que os mesmos s ao preservados na logica de primeira ordem, e mesmo em varias
outras vers oes. A outra raz ao e que ela e suciente para a express ao e processamento
de conhecimento em uma gama apreci avel de aplica coes praticas.
5
Em alguns contextos, pode fazer mais sentido chamar tais armativas de hipoteses; em outros, base
de conhecimentos; em outros, especicacoes etc.
12 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
Captulo 2
Logica Proposicional
Em vez de partir diretamente para uma apresenta cao de como formalizar conhecimento
em logica proposicional, e feita inicialmente uma introdu cao `a natureza da realidade
que se pode formalizar, assim como dos conceitos abstrados a partir dessa realidade.
2.1 A realidade sob a otica da logica proposicional
Que tipo de realidade pode ser formalizada atraves da logica proposicional? Informal-
mente, a realidade e vista como composta de proposi c oes e argumentos que envolvem
tais proposi coes. Uma proposi cao e um enunciado susceptvel de ser verdadeiro ou
falso. Dois princpios importantes assumidos na logica classica s ao:
princpio da n ao contradic ao: uma proposi cao n ao pode ser verdadeira e falsa ao
mesmo tempo;
princpio do terceiro excludo: toda proposi cao e verdadeira ou falsa.
Existem dois tipos de proposi coes: as simples e as compostas. Qualquer enunciado
susceptvel de ser verdadeiro ou falso pode ser considerado como uma proposi cao simples
na atividade de modelagem; basta que ela possa ser considerada como indivisvel, ou
seja, n ao constituda de proposi coes mais simples. Observe que um mesmo enunciado
pode ser considerado simples em uma aplica cao e composto em outra. A escolha dos
enunciados a serem considerados simples e uma das tarefas da (arte da) modelagem
conceitual.
Exemplo 1 Podem ser consideradas proposi coes simples:
Belo Horizonte e a capital de Minas Gerais;
Graciliano Ramos escreveu Mem orias do C arcere;
2 + 2 = 5;
2 e um n umero primo;
13
14 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
Elvis n ao morreu.
J a express oes do tipo a capital de Minas Gerais ou 2+2 n ao podem ser consideradas
proposi coes (nem simples, nem compostas), visto que n ao s ao susceptveis de serem
verdadeiras ou falsas.
Uma proposi cao composta e um enunciado visto como constitudo de outras proposi coes
mais simples de forma a expressar uma:
Negac ao. A proposi cao arma que certa proposi cao n ao e verdadeira, ou seja, e
falsa (pelo princpio do terceiro excludo). Exemplo: a lua n ao est a visvel hoje
diz que a proposi cao a lua est a visvel hoje n ao e verdadeira, ou seja, e falsa.
Conjun c ao. Arma que duas proposi coes s ao verdadeiras. Exemplo: o dia est a
lindo, embora esteja nublado diz que o dia est a lindo e est a nublado.
Disjun c ao. Arma que pelo menos uma dentre duas proposi coes e verdadeira.
Exemplo: Godofredo estuda muito ou e inteligente diz que Godofredo estuda muito
ou Godofredo e inteligente ou Godofredo estuda muito e e inteligente.
Condicional. Arma que caso uma certa proposi cao seja verdadeira, uma outra
tambem e, ou seja, n ao e o caso que a primeira possa ser verdadeira e a outra falsa.
Exemplo: se chover hoje, n ao vou ao cinema diz que se a proposi cao hoje vai
chover for verdadeira, entao a proposi cao hoje n ao vou ao cinema e verdadeira.
Bicondicional. Arma que uma certa proposi cao e verdadeira exatamente nos
casos em que uma outra tambem e. Exemplo: o n umero e par se, e somente
se, seu quadrado e par diz que as proposi coes o n umero e par e o quadrado do
n umero e par s ao ambas verdadeiras ou ambas falsas.
Em portugues, existem muitas formas de expressar esses tipos de composi coes. Por
outro lado, uma senten ca em portugues normalmente apresenta um conte udo que n ao
pode ser totalmente expresso utilizando apenas tais tipos de composi coes.
`
As vezes
a aproxima cao obtida ao se expressar o que e possvel expressar via logica proposi-
cional e bastante crua... Mas, se ela for suciente para os propositos de uma aplica cao
especca, por que n ao? Economia conceitual pode levar a economia formal, que pode
levar a maior eciencia (de processamento, do entendimento do cerne de uma questao
etc.).
Exemplo 2 Seguem mais exemplos de proposi coes que podem ser vistas como com-
postas:
O n umero 5 n ao e negativo.

E a nega cao da proposi cao o n umero 5 e negativo.
O n umero 1 e mpar e o 2 e par.

E a conjun cao de duas proposi coes: o n umero
1 e mpar e o n umero 2 e par.
M ario e arquiteto ou engenheiro.

E a disjun cao de duas proposi coes: M ario e
arquiteto e M ario e engenheiro.
Newton Jose Vieira Captulo 2: L ogica proposicional 15
Se Jose e engenheiro, ent ao ele sabe matem atica.

E uma proposi cao condicional:
e verdade que Jose sabe matem atica, se for verdade que Jose e engenheiro. Em
outras palavras: n ao e possvel (e falso) que Jose e engenheiro seja verdadeira e
Jose sabe matem atica seja falsa.
Se o Sr. Silva est a feliz, ent ao a Sra. Silva n ao est a feliz, e se o Sr. Silva
n ao est a feliz, ent ao a Sra. Silva est a feliz.

E a conjun cao de duas proposi coes
condicionais: (1) se o Sr. Silva est a feliz, ent ao a Sra. Silva n ao est a feliz e (2) se
o Sr. Silva n ao est a feliz, ent ao a Sra. Silva est a feliz. A proposi cao condicional
(1) diz que a nega cao de a Sra. Silva est a feliz e verdadeira caso o Sr. Silva
est a feliz seja verdadeira. E a proposi cao condicional (2) diz que a proposi cao
a Sra. Silva est a feliz e verdadeira caso a nega cao de o Sr. Silva est a feliz seja
verdadeira.
Observe que qualquer uma dessas proposi coes pode ser considerada uma proposi cao
simples. Por exemplo, se a primeira proposi cao acima for considerada simples (na etapa
de modelagem), n ao mais ser a possvel distinguir que ela e a negac ao da proposi cao o
n umero 5 e negativo.
A disjun cao, como apresentada acima, e a denominada disjun cao inclusiva: ela
arma que uma dentre duas proposi coes e verdadeira ou ambas. Um outro tipo de
disjun cao freq uentemente empregado e a disjun cao exclusiva, que arma que uma den-
tre duas proposi coes e verdadeira mas n ao ambas. Assim, a proposi cao passarei o
pr oximo s abado em Paris ou em New York pode ser considerada, em nveis crescentes
de detalhes:
uma proposi cao simples, n ao se distinguindo a proposi cao como uma composi cao
de outras;
uma disjun cao inclusiva de passarei o pr oximo s abado em Paris e passarei o
pr oximo s abado em New York, n ao descartando a possibilidade de que aconte cam
ambos os eventos;
uma disjun cao exclusiva de passarei o pr oximo s abado em Paris e passarei o
pr oximo s abado em New York, descartando a possibilidade de que aconte cam
ambos os eventos.
Note que, assim como n ao e incorreto considerar a proposi cao anterior uma proposi cao
simples, tambem n ao e incorreto considera-la uma disjun cao inclusiva: neste caso,
apenas deixa-se de capturar uma informa cao adicional, qual seja, que passarei o pr oximo
s abado em Paris e passarei o pr oximo s abado em New York n ao podem ser ambas
verdadeiras.
Uma simplica cao digna de nota, inerente `a logica matem atica, e que a veracidade
de uma proposi cao composta, para todos os tipos de composi cao apresentados, depende
unica e exclusivamente da veracidadade das proposi coes componentes. Com isto, por
exemplo, a conjun cao de duas proposi coes deve ser considerada verdadeira se, e somente
16 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
se, ambas forem verdadeiras, a disjun cao de duas proposi coes ser a verdadeira se, e
somente se, uma delas ou ambas forem verdadeiras, e assim por diante. Em outras
palavras, o signicado de cada tipo de composi cao pode ser modelado mediante uma
fun cao (como ser a visto na Se cao 2.3). Por outro lado, n ao h a limite para a constru cao
de uma proposi cao composta com rela cao ao uso dos varios tipos e ao n umero de
nveis de composi cao. Embora exemplos disso tenham que esperar pela introdu cao de
smbolos para expressar proposi c oes simples, o que sera feito na pr oxima se cao, deve-se
ressaltar que as proposi coes resultantes podem ser extremamente complexas de serem
enunciadas em linguagem natural.
Um argumento, tipicamente, diz que uma certa proposi cao (a conclus ao) e ver-
dadeira caso as proposi coes de um certo conjunto (as premissas) sejam verdadeiras.
Segue um exemplo.
Exemplo 3 Segue um argumento do tipo que pode ser modelado e formalizado medi-
ante a logica proposicional.
Supondo que:
M ario e arquiteto ou engenheiro;
se M ario e engenheiro ent ao ele sabe matem atica; e
M ario n ao sabe matem atica;
pode-se concluir que M ario e arquiteto.
Deve-se notar que dicilmente esse argumento fara sentido se alguma das tres primeiras
proposi coes for considerada uma proposi cao simples. Se a primeira for considerada uma
disjun cao, a segunda uma condicional e a terceira uma nega cao, a sim, e o que basta
para alguem se convencer que o argumento e correto (tente!).
No nvel formal, uma proposi cao ser a representada por meio de uma f ormula, sendo
que para cada tipo de composi c ao de proposi coes ser a utilizado um conectivo l ogico.
Uma caracterstica fundamental da logica e a separa cao cuidadosa dos nveis formal e
conceitual, de forma a se obter uma sem antica precisa.
Os conceitos correspondentes a verdadeiro e falso serao aqui referidos por V
e F. Assim, V ser a usado no nvel conceitual para denotar que uma certa proposi cao
e verdadeira e F ser a usado para denotar que ela e falsa. Como ja ressaltado anteri-
omente, esta associa cao entre V e verdadeiro e entre F e falso s o existe em nossa mente.
Uma fun cao de valorac ao, que fara a ponte entre os nveis formal e conceitual, ser a
denida adiante de tal maneira que, dada uma formula, ela associar a `a mesma um dos
dois valores, V ou F. O uso de uma fun cao e condizente com o princpio ja referido da
n ao contradic ao: uma proposi cao n ao pode ser verdadeira e falsa ao mesmo tempo; ou
seja, a valora cao deve ter realmente a propriedade de unicidade inerente a uma fun cao.
Alem disso, coerente com o princpio do terceiro excludo (toda proposi cao e verdadeira
ou falsa), a imagem da fun cao de valora cao deve ser o conjunto V, F.
Newton Jose Vieira Captulo 2: L ogica proposicional 17
Alem de V e F, os valores passveis de serem atribudos como signicado de uma
formula pela fun cao de valora cao, o nvel conceitual conter a os elementos necessarios
para a deni cao dessa fun cao: as interpretac oes de cada um dos conectivos logicos.
Denida a fun cao de valora cao, que dar a entao a sem antica das formulas (que
representam proposi coes), ser a possvel tambem denir em que condi coes um argumento
e correto, como ser a visto mais adiante.
Apos essa descri cao bastante sucinta do que se espera modelar e formalizar (proposi coes
e argumentos) e da estrutura matem atica a ser utilizada na modelagem (basicamente,
os dois valores, V e F, e fun coes desses dois valores) na pr oxima se cao sobe-se dire-
tamente para o nvel formal, apresentando-se a linguagem proposicional. Em seguida,
e apresentada a sem antica da linguagem proposicional, descendo-se, portanto, para o
nvel conceitual esbo cado anteriormente. Na se cao seguinte, mas ainda no nvel con-
ceitual, e apresentada a no cao de conseq uencia logica. Finalmente, sobe-se de novo
para o nvel formal apresentando-se a no cao de dedu cao.
Exerccios
1. Identique as proposi coes simples que comp oem as proposic oes a seguir, as-
sim como os tipos de composi cao. Procure identicar o m aximo possvel de
proposi coes simples, isto e, considere uma proposi cao como simples somente se
n ao for possvel considera-la composta. Ha certos aspectos que n ao s ao repre-
sentaveis em logica proposicional; ignore-os.
a) Jo ao e poltico mas e honesto.
b) Jo ao e honesto, mas seu irm ao n ao e.
c) Virao `a festa Jo ao ou sua irm a, alem da m ae.
d) A estrela do espetaculo n ao canta, dan ca, nem representa.
e) Sempre que o trem apita, Jo ao sai correndo.
f) Caso Jo ao n ao perca o dinheiro no jogo, ele vai `a feira.
g) Jo ao vai ser multado, a menos que diminua a velocidade ou a rodovia n ao
tenha radar.
h) Uma condi cao suciente para que n seja mpar, e que seja primo.
i) Jo ao vai ao teatro somente se estiver em cartaz uma comedia.
j) Se voce for brasileiro, gosta de futebol, desde que n ao tor ca para o Tabajara.
k) A propina ser a paga exatamente nas situa coes em que o deputado votar
como instrudo pelo Jo ao.
l) Se Jo ao testemunhar e disser a verdade, ele ser a absolvido, mas se Jo ao n ao
testemunhar, ele n ao ser a absolvido.
m) Se, mas somente se, Jo ao n ao peder o dinheiro no jogo, ele ir a pagar o que
lhe deve.
18 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
n) Se Jo ao for ao circo ou ao futebol hoje, ele estar a sem dinheiro amanha.
2. Que tipo de disjun cao est a envolvida em cada uma das proposi coes a seguir?
a) Vou viajar pela Europa se herdar uma fortuna ou ganhar na loteria.
b) Brasil: ame-o ou deixe-o.
c) 5 2.
d) Ao refem restava trair o seu pas ou morrer por ele.
e) Quando estou com dor-de-cotovelo ou meu time perde ou empata, procuro
ir ao cinema para me distrair.
3. Considere o seguinte conjunto de proposi coes:
O mordomo e inocente ou culpado. Se o mordomo e inocente, entao a
testemunha mentiu. Se o mordomo tem um c umplice, entao a teste-
munha n ao mentiu. A testemunha tendo mentido ou n ao, o mordomo
tem um c umplice.
Supondo que tais proposi coes sejam verdadeiras, responda: o mordomo e culpado
ou e inocente? Explique sua resposta de uma forma coloquial, sem apelar para
os conceitos e formalismos logicos que porventura conhe ca.
2.2 A linguagem proposicional
O alfabeto da linguagem consta de tres tipos de smbolos:
Vari aveis proposicionais: smbolos usados para representar proposi coes simples.
Ser ao usados p, q, r e s, com ou semndices (0, 1, 2, . . . ). O conjunto das vari aveis
proposicionais ser a denotado por 1.
Conectivos l ogicos: smbolos usados para representar os tipos de composi cao.
S ao eles: (verum), (falsum), (nega cao), (conjun cao), (disjun cao),
(condicional) e (bicondicional).
Smbolos auxiliares: abre e fecha parenteses.
A linguagem nada mais e do que um conjunto, T, de seq uencias de smbolos, de-
nominadas f ormulas (ou formulas bem formadas ou senten cas), que pode ser denido
recursivamente como segue.
Deni cao 1 O conjunto de formulas, T, que constitui a linguagem da l ogica proposi-
cional pode ser assim denido:
a) 1 T, ou seja, cada vari avel proposicional e uma f ormula, denominada
formula atomica ou atomo;
b.1) e s ao f ormulas;
Newton Jose Vieira Captulo 2: L ogica proposicional 19
b.2) se e uma f ormula, ent ao () e uma f ormula;
b.3) se e s ao f ormulas, ent ao ( ), ( ), ( ) e ( ) s ao
f ormulas;
c) s o s ao f ormulas as palavras que podem ser obtidas como indicado em (a) e (b.1)
a (b.3).
Em uma formula = ( ), sendo um dos conectivos bin arios, e dito ser o
conectivo principal de .
Exemplo 4 Considere o Exemplo 2. Seguem algumas representa coes de proposi coes
simples por vari aveis proposicionais (tal associa cao s o existe na nossa cabe ca):
p: o n umero 5 e negativo;
q
1
: o n umero 1 e mpar;
q
2
: o n umero 2 e par;
r: M ario e arquiteto;
s: M ario e engenheiro.
Eis algumas formulas seguidas, entre parenteses, pelas proposi coes que representam:
p (o n umero 5 e negativo);
(p) (o n umero 5 n ao e negativo);
(q
1
q
2
) (o n umero 1 e mpar e o 2 e par);
(r s) (M ario e arquiteto ou engenheiro);
((r s) p) (se M ario e arquiteto e engenheiro, ent ao o n umero 5 e negativo).
Esta ultima formula exemplica como se pode expressar coisas que em linguagem na-
tural soam absurdas (ou estranhas). Note que o conectivo principal dela e .
Cada formula n ao atomica receber a a mesma designa cao que e dada `a proposi cao
que ela representa. Assim, uma formula da forma () e dita ser a negac ao de ;
() e a conjun c ao de e , () e a disjunc ao de e , ( ) e uma formula
condicional e ( ) uma bicondicional. No caso da condicional ( ), e dita
ser o antecedente e o consequente.
Na verdade, poderiam ser introduzidos outros conectivos alem daqueles explicitados
na Deni cao 1. Por outro lado, como ser a visto na pr oxima se cao, em que se considera a
sem antica dos conectivos, o conjunto de conectivos adotado naquela deni cao e redun-
dante, no sentido de alguns podem ser expressos por meio de outros. Por que, entao, a
escolha do conjunto de conectivos especco da Deni cao 1? A resposta e que tal con-
junto e o mais conveniente para uso nas aplica coes que temos em mente, basicamente
20 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
o do uso de logica como formalismo para express ao e/ou manipula cao de conhecimento
em geral. Em outros tipos de aplica cao, como, por exemplo, especica cao e concep cao
de circuitos digitais, um outro conjunto de conectivos e mais adequado; por exemplo,
nesse contexto costuma haver um conectivo para a nega cao da conjun cao e outro para
a nega cao da disjun cao.
Os conectivos e , em particular, s ao dispens aveis para express ao de conheci-
mento. No entanto, eles est ao sendo introduzidos porque podem ser uteis do ponto de
vista de manipula cao no nvel formal, como ser a visto mais `a frente.
Na medida em que as formulas se tornam maiores, elas podem car bem ilegveis.
Por isso, ser a admitida, daqui para frente, a omissao de parenteses. Neste caso, assume-
se que os parenteses s ao repostos de acordo com as duas regras:
os conectivos tem a seguinte ordem de precedencia, da maior para a menor: ,
, , , .
para conectivos identicos, faz-se a associa cao `a esquerda.
Veja exemplo a seguir.
Exemplo 5 A express ao p
1
p
2
p
3
q r abrevia a formula (((p
1
p
2
) p
3
)
((q) r)), assim obtida, passo a passo:
p
1
p
2
p
3
(q) r (precedencia de );
((p
1
p
2
) p
3
) (q) r (precedencia de e associa cao `a esquerda);
((p
1
p
2
) p
3
) ((q) r) (precedencia de );
(((p
1
p
2
) p
3
) ((q) r)) (parenteses externos).
Veja que o conectivo principal de p
1
p
2
p
3
q r e .
Note que a formula (p
1
(p
2
p
3
)) pode ser abreviada como p
1
(p
2
p
3
), mas n ao
como p
1
p
2
p
3
. Esta ultima abrevia ((p
1
p
2
) p
3
). As duas regras fornecem um
criterio puramente sintatico de elimina cao de parenteses.
Exerccios
1. Represente as proposi coes do Exerccio 1 da se cao anterior por meio de formulas.
Ao faze-lo, indique que vari aveis proposicionais representam que proposi coes sim-
ples. Como la, procure usar o m aximo possvel de conectivos, isto e, considere
uma proposi cao como simples somente se n ao for possvel considera-la composta.
Aspectos n ao representaveis em logica proposicional devem ser ignorados.
2. Represente as proposi coes do Exerccio 3 da se cao anterior por meio de formulas.
3. Reponha os parenteses das seguintes formulas de acordo com as regras enunciadas
na se cao:
Newton Jose Vieira Captulo 2: L ogica proposicional 21
a) p q
b) p
1
p
2
q
1
q
2
q
3
c) p
1
p
2
q
1
q
2
d) p
1
p
2
p
3
p
4
p
5
e) ( )
2.3 Semantica da linguagem proposicional
A sem antica das formulas ser a dada pela func ao de valora c ao v
i
: T V, F, uma
fun cao que d a, para uma certa interpreta cao formal i das vari aveis proposicionais, o
valor V ou F. Como ja ressaltado anteriormente, V pode ser imaginado como verdadeiro
e F como falso. Assim, dada uma formula T, v
i
() ser a V ou F. Veja que v
i
()
n ao e a proposi cao representada por ; esta s o existe (se existir) na nossa cabe ca.
Em outras palavras, v
i
() e a interpreta cao formal de , V ou F, e da proposi cao
correspondente a (no nvel da realidade) s o e capturado matematicamente o fato de
que ela e verdadeira (V) ou falsa (F).
2.3.1 O signicado das formulas
A fun cao de valora cao e denida levando-se em considera cao os signicados das vari aveis
proposicionais e dos conectivos logicos. Tais signicados ser ao dados, cada um por uma
fun cao especca. Para os conectivos e , o signicado ser a dado por duas fun coes
sem argumentos (constantes, portanto), para o conectivo , ele ser a dado por uma
fun cao un aria, e para os outros conectivos ser a dado por fun coes bin arias, como ser a
visto adiante. O signicado das vari aveis proposicionais ser a dado por meio de uma
fun cao i que associa a cada vari avel o valor i() V, F. Pode-se imaginar que
a fun cao i d a uma interpretac ao (formal) para cada vari avel proposicional. Para n
vari aveis proposicionais, existem 2
n
fun coes i distintas, ja que i() V, F.
1
Exemplo 6 Sejam as seguintes vari aveis proposicionais, com as respectivas proposi coes
que elas representam (s o na nossa cabe ca):
p: a terra gira em torno do sol ;
q: Paris e a capital da Fran ca;
r:

2 e um n umero racional.
Entao, de maneira consistente com a realidade em que vivemos, as duas primeiras
proposi coes s ao verdadeiras e a terceira e falsa:
i(p) = V ;
1
Na verdade, o suprimento de variaveis proposicionais e innito. O abuso de linguagem aqui faz
sentido se se considerar que o valor logico de uma formula so depende dos valores associados (por i)
`as n variaveis que ocorrem em .
22 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
fb

V F
F V
fb

V F
V V F
F F F
fb

V F
V V V
F V F
fb

V F
V V F
F V V
fb

V F
V V F
F F V
Figura 2.1: Signicados dos conectivos.
i(q) = V ;
i(r) = F.
Se na nossa realidade tudo que interessa pode ser expresso a partir destas tres
proposi coes simples, entao i() e irrelevante para diferente de p, q e r, mas e consi-
derado como sendo um dos dois valores: V ou F.
Os conectivos e s ao interpretados como duas constantes fb

= V e fb

= F. O
conectivo e interpretado como uma fun cao un aria fb

: V, F V, F
2
e os outros
s ao interpretados como fun coes bin arias fb

: V, F V, F V, F, , ,
, , sendo tais fun coes como denido a seguir.
Deni cao 2 As interpretac oes de , , e de cada conectivo , , , s ao,
respectivamente, as func oes fb

, fb

, fb

: V, F V, F e fb

: V, F V, F
V, F tais que:
fb

= V ;
fb

= F;
fb

(V ) = F e fb

(F) = V ;
fb

(x, y) = V se x = V e y = V , e fb

(x, y) = F nos outros tres casos;


fb

(x, y) = F se x = F e y = F, e fb

(x, y) = V nos outros tres casos;


fb

(x, y) = F se x = V e y = F, e fb

(x, y) = V nos outros tres casos;


fb

(x, y) = V se x = y, e fb

(x, y) = F se x ,= y.
A Figura 2.1 apresenta as func oes un aria e bin arias em formato tabular.
A interpreta cao (formal) de uma formula e a valora cao logica v
i
: T V, F,
que pode ser denida recursivamente utilizando-se as interpreta coes dos smbolos do
alfabeto, como segue.
2
O smbolo fb pode ser lido como fun cao booleana. Assim, fb

e a funcao booleana que da o


signicado do conectivo .
Newton Jose Vieira Captulo 2: L ogica proposicional 23
Interpretac ao formal
N

IVEL CONCEITUAL:
fb

fb

fb

fb

fb

V
`

F
`

i(p)
`
p
i(q)
`
q



N

IVEL FORMAL:
Figura 2.2: Interpreta cao dos smbolos da linguagem proposicional.
Deni cao 3 A valora cao logica de uma f ormula, v
i
: T V, F, e denida recursi-
vamente a partir de i:
v
i
() = i() para cada 1;
v
i
() = V e v
i
() = F;
se T, ent ao v
i
() = fb

(v
i
());
se , T, ent ao
v
i
( ) = fb

(v
i
(), v
i
()),
v
i
( ) = fb

(v
i
(), v
i
()),
v
i
( ) = fb

(v
i
(), v
i
()),
v
i
( ) = fb

(v
i
(), v
i
()).
Em sntese, o mapeamento entre a linguagem, no nvel formal, e a estrutura ma-
tem atica constituda dos dois valores, V e F, no nvel conceitual, e feito por meio
da fun cao de valora cao v
i
. Ou seja, v
i
() e a interpreta cao formal da formula . Tal
fun cao e denida a partir das interpreta coes formais dos conectivos, dadas pelas fun coes
booleanas fb

, fb

, fb

, fb

, fb

, fb

, fb

, e dos valores das vari aveis, i(p), i(q), i(r)


etc., sendo que cada um destes e V ou F. Tal mapeamento est a esquematizado na
Figura 2.2, em que s ao mostrados apenas os smbolos do alfabeto e seus signicados.
A partir deles, a parte recursiva da deni cao de v
i
mapeia qualquer senten ca no
nvel formal para seu signicado v
i
() V, F no nvel conceitual. Observe que
v
i
() s o depende dos valores i(p), i(q), . . . relativos `as vari aveis proposicionais, visto
as fun coes que interpretam os conectivos s ao predeterminadas (e como se
i
= V ,

i
= F,
i
= fb

,
i
= fb

etc., para toda interpreta cao i). Diz-se que os conectivos


s ao smbolos l ogicos, enquanto que as vari aveis proposicionais s ao smbolos n ao l ogicos.
3
Se, por um lado, a veracidade de uma formula depende de i, a veracidade de i()
s o pode ser conhecida consultando-se a realidade para saber se a proposi cao repre-
sentada por e verdadeira ou falsa. Como ser a visto posteriormente, no nvel formal a
unica forma de circunscrever os valores logicos que um conjunto de vari aveis proposi-
cionais pode assumir e armar (ou assumir) que certas formulas em que elas participam
3
Em ingles, nonlogical symbols.
24 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
s ao verdadeiras (ou seja, tem valor V ). Assim, por exemplo, quando se arma (ou se
supoe) no nvel formal a formula p (p (q r)), arma-se (conclui-se) no nvel con-
ceitual que v
i
(p) = V e que v
i
(p (q r)) = V e, como conseq uencia, v
i
(q) e v
i
(r)
n ao podem ser ambos F.
Nas duas pr oximas subse coes ser a abordado o problema de, dadas uma formula e
uma interpreta cao i, determinar v
i
(). Com isto, ser ao introduzidos dois estilos b asicos
de manipula cao de conhecimento expresso em logica: um em que se trabalha com
enfase no nvel conceitual e em que, portanto, a sem antica tem um papel importante,
(comumente referido como abordagem baseada em teoria de modelos
4
) e outro em que
se trabalha no nvel formal e que, no caso, e intensivo em processamento de smbolos
(comumente referido como abordagem baseada em teoria da prova
5
).
Exerccios
1. A disjun cao vista nessas notas e a chamada disjun cao inclusiva. Uma outra,
menos usada em matem atica (mas mais usada em outros contextos, como cons-
tru cao de circuitos digitais) e a disjun cao exclusiva, em que se considera ou
verdadeira apenas se e verdadeira ou verdadeira, mas n ao ambas. Como seria
a fun cao booleana para ou exclusivo? Use o smbolo como conectivo para
ou exclusivo. Mostre como expressar ou exclusivo sem um smbolo especco
para tal (ou seja, usando apenas os conectivos ja vistos): expresse fb

como uma
composi cao das outras fun c oes boolenas vistas.
2. Para cada formula, determine seu valor logico para a interpreta cao i em que
i(p) = V , i(q) = F e i(r) = V :
a) (p q) r
b) (p p) p
c) ((p q) q) p
d) ((q p) q) p
e) ((p q) r) (q (p r))
3. Suponha que v
i
(p ) = V e v
i
(p ) = V para certas formulas e . Prove
que, neste caso, v
i
( ) = V .
4. Para cada formula a seguir, determine interpreta coes para suas vari aveis que as
fa cam receber o valor V , se possvel, e interpreta coes que as fa cam receber o valor
F, se possvel.
a) (p ) (p )
b) (p q) (p )
4
Em ingles, model theoretic approach.
5
Em ingles, proof theoretic approach.
Newton Jose Vieira Captulo 2: L ogica proposicional 25
c) (p q) (p q)
d) (p q) (p q)
e) (p q) (p q)
2.3.2 Avaliacao de formulas no nvel conceitual
Dadas uma formula e uma interpreta cao i, v
i
() pode ser calculado mediante o
metodo da tabela da verdade, em que se calcula paulatinamente o valor logico de cada
subf ormula de , partindo-se dos valores associados por i `as vari aveis proposicionais.
Antes de formular um algoritmo, ser a visto um exemplo informal.
Exemplo 7 Sejam as seguintes proposi coes simples, juntamente com vari aveis proposi-
cionais que as representam:
p
1
: est a chovendo;
p
2
: h a um cano estourado;
q
1
: a rua est a molhada;
q
2
: a rua est a escorregadia.
Suponha uma situa cao em que:
i(p
1
) = V (est a chovendo);
i(p
2
) = F (n ao h a um cano estourado);
i(q
1
) = V (a rua est a molhada); e
i(q
2
) = V (a rua est a escorregadia).
Seja = ((p
1
p
2
) q
1
)(q
1
q
2
) (se est a chovendo ou h a um cano estourado, a rua
est a molhada; e se a rua est a molhada, ent ao est a escorregadia). Para calcular v
i
()
pelo metodo da tabela da verdade, inicialmente obtem-se as subf ormulas de em uma
ordem tal que todas as subf ormulas de uma subf ormula gurem antes de . Para
este exemplo, pode ser:
p
1
p
2
q
1
q
2
p
1
p
2
q
1
q
2
(p
1
p
2
) q
1

Em seguida, anota-se os valores i() para as vari aveis proposicionais embaixo das
mesmas:
p
1
p
2
q
1
q
2
p
1
p
2
q
1
q
2
(p
1
p
2
) q
1

V F V V
Agora calcula-se os valores logicos v
i
() das subf ormulas restantes da esquerda para
a direita, obtendo-se:
26 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
p
1
p
2
q
1
q
2
p
1
p
2
q
1
q
2
(p
1
p
2
) q
1

V F V V V V V V
Portanto, v
i
() = V . Por outro lado, mantendo-se os mesmos valores para i(p
1
), i(p
2
)
e i(q
1
) e fazendo-se i(q
2
) = F, tem-se:
p
1
p
2
q
1
q
2
p
1
p
2
q
1
q
2
(p
1
p
2
) q
1

V F V F V F V F
E, neste caso, v
i
() = F.
Em prepara cao para a obten cao de um algoritmo que avalie uma formula para um
interpreta cao, dene-se agora, com precisao, o conceito de subf ormula.
Deni cao 4 O conjunto das subf ormulas de uma f ormula , subf (), pode ser assim
denido:
a) se 1 , , ent ao subf () = ;
b) se = (), ent ao subf () = subf ();
se = ( ), em que , , , , subf () = subf () subf ().
No item (b), e s ao ditas ser subf ormulas imediatas de , sendo que se = ( ),
e uma subf ormula imediata `a esquerda e uma subf ormula imediata `a direita.
Exemplo 8 As subf ormulas de = (p q) (q p), podem ser assim calculadas
como indicado na Deni cao 4:
subf ()= subf (p q) subf (q p)
= p q, q p, subf (p) subf (q) subf (q) subf (p)
= p, q, q, p q, q p, subf (q)
= p, q, q, p q, q p,
Note que as subf ormulas imediatas de s ao p q e q p, sendo p q `a esquerda e
q p `a direita.
A rela cao bin aria subf ormula imediata restrita ao conjunto subf() ser a designada
por si(). Segue uma deni cao.
Deni cao 5 Seja uma f ormula. A rela c ao si() subf() subf() e tal que para
quaisquer , subf(), (, ) si() se, e somente se e subf ormula imediata de .
Uma forma alternativa de dizer (, ) si() e dizer que e uma subf ormula
imediata de em .
Exemplo 9 Seja = (p q) (q p). Como mostrado no Exemplo 8, subf() =
p, q, q, p q, q p, . Aplicando-se a Deni cao 5, ve-se que:
p q e q p s ao subf ormulas imediatas de em ;
Newton Jose Vieira Captulo 2: L ogica proposicional 27
(p q) ((p q) q)
p q (p q) q
p q q
(a) O grafo da formula.


p q
(b) Forma simplicada do grafo da formula.
Figura 2.3: Grafo de (p q) ((p q) q).
p e q s ao subf ormulas imediatas de p q em ;
q e p s ao subf ormulas imediatas de q p em ; e
q e subf ormula imediata de q em .
Observe que p e subf ormula imediata `a esquerda de p q e e uma subf ormula imediata
`a direita de q p.

E interessante observar que o par (subf(), si()) e um grafo dirigido acclico. Tal
grafo ser a denominado o grafo de .
Deni c ao 6 O grafo de uma formula e o grafo dirigido que tem subf() como seu
conjunto de vertices e si() como seu conjunto de arestas, sendo que cada aresta (, )
tem associada a informa c ao se e subf ormula imediata ` a esquerda ou ` a direita de ,
quando pertinente.
Deve-se notar que e o unico vertice do grafo de que n ao tem sucessor: n ao
existe tal que (, ) si(). Alem disso, se 1 , , n ao e sucessor de
qualquer outro vertice: n ao existe tal que (, ) si(). O pr oximo exemplo mostra
o desenho do grafo de uma formula.
Exemplo 10 O grafo da formula (pq) ((pq)q) est a desenhado na Figura 2.3(a).
A informa cao de que uma aresta representa uma subf ormula imediata `a esquerda e
colocada desenhando-a `a esquerda daquela que representa uma subf ormula imediata `a
direita da mesma formula.
Uma forma simplicada de desenhar o grafo de uma formula e explicitar apenas o
conectivo principal de cada subf ormula, visto que a subf ormula pode ser recuperada
dos subgrafos antecessores, como mostra o exemplo a seguir.
28 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao


p
V
q
F
(a) O grafo com valores anotados para as variaveis.

V
F V
p
V
q
F V
(b) O grafo com valores propagados.
Figura 2.4: Propaga cao de valores no grafo de (p q) ((p q) q).
Exemplo 11 A Figura 2.3(b) mostra o desenho simplicado do grafo da formula (p
q) ((p q) q), que fora desenhado na Figura 2.3(a). Veja que a subf ormula
que constitui o vertice rotulado com e a concatena cao da que constitui o vertice do
antecessor imediato da esquerda, com , com a subf ormula que constitui o vertice do
antecessor imediato da direita: p q. As outras subf ormulas s ao obtidas, uma de cada
vertice, de forma similar.
No metodo da tabela da verdade, o valor v
i
() e obtido a partir dos valores das
vari aveis de propagando-se estes ultimos de tal forma que v
i
(), para subf(), e
determinado a partir das subf ormulas imediatas de . A seguir e mostrado um exemplo
usando o grafo da formula, em vez da nota cao tabular, de forma a se ter uma visao
abrangente de todas as subf ormulas envolvidas e seus interrelacionamentos.
Exemplo 12 Seja novamente o grafo simplicado da formula (p q) ((p q) q),
que est a desenhado na Figura 2.3(b). Na Figura 2.4(a) est ao mostrados os valores
logicos i(p) = V e i(q) = F para as duas vari aveis da formula, anotados ao lado dos
vertices correspondentes, dentro de uma caixa. Na Figura 2.4(b) est ao mostrados os
valores logicos propagados, obtidos assim:
como v
i
(p) = V e v
i
(q) = F, v
i
(p q) = F e, portanto, a subf ormula p q recebe
a anota cao F ;
como v
i
(q) = F, v
i
(q) = V , e q recebe a anota cao V ;
como v
i
(p q) = F e v
i
(q) = V , v
i
((p q) q) = V e, assim, a subf ormula
(p q) q recebe a anota cao V ;
nalmente, (pq) ((pq) q), recebe a anota cao V , visto que v
i
(pq) = F
e v
i
((p q) q) = V .
Conclui-se que v
i
((p q) ((p q) q)) = V para v
i
(p) = V e v
i
(q) = F.
Newton Jose Vieira Captulo 2: L ogica proposicional 29
proc avalia(formula , interpretacao i) retorna |V, F:
para cada subf() faca valor[] := vazio mfaca;
propague(, V ); propague(, F);
vars := 1 subf();
enquanto valor[] = vazio faca
:= escolha(vars); | escolha nao determinstica
vars := vars |;
propague(, i())
menquanto;
retorne valor[]
m avalia
Figura 2.5: Avalia cao de uma formula.
Algumas vezes, e possvel fazer a propaga cao de valores logicos de forma que v
i
()
seja determinado sem a necessidade de determinar valores para todas as subf ormulas;
algumas vezes, inclusive, sem utilizar valores para todas as vari aveis de . Isso se deve
ao fato de que o resultado da aplica cao de uma fun cao booleana algumas vezes pode
ser determinado ao se conhecer apenas um dos argumentos (neste caso, n ao havendo a
necessidade de avaliar o outro). Por exemplo, quaisquer que sejam as formulas e ,
se i() = V , entao i( ) = V , n ao havendo, portanto a necessidade de determinar
v
i
(). Considerando o grafo da Figura 2.4, veja que o mesmo resultado pode ser obtido
propagando-se apenas o valor v
i
(q) = F:

V
F
p q
F
ja que v
i
(p q) = F se v
i
(q) = F, e v
i
((p q) ((p q) q)) = V se v
i
(p q) = F.
A Figura 2.5 apresenta um algoritmo baseado no metodo informalmente descrito,
que, dada um formula e uma interpreta cao i, retorna v
i
(). O algoritmo supoe a
existencia de um vetor associativo global de nome valor, de forma que, para uma
subf ormula , valor[] pode conter V , F ou vazio; neste ultimo caso, signicando que
(ainda) n ao foi anotado valor para . A chamada ao procedimento propaga, apresen-
tado na Figura 2.6, providencia a propaga cao de valores a partir de uma subf ormula
em dire cao `a formula original, enquanto for possvel; assim, todos os valores logicos
de ancestrais da formula recebida como argumento que sejam possveis de determinar
s ao determinados. Note que a escolha da pr oxima vari avel a iniciar uma propaga cao
de valores e n ao determinstica. Mas este e um n ao determinismo especial: indepen-
dentemente da ordem de escolha, o loop ir a terminar e o procedimento ter a sucesso,
retornando o valor desejado. Entretanto, nem toda computa cao possvel, propiciada
por cada seq uencia de escolhas, redundar a no mesmo desempenho para o algoritmo. No
30 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
proc propague(formula , |V, F val):
se valor[] ,= vazio entao retorne mse
valor[] := val;
para cada tal que (, ) si() faca
caso seja
: | negacao
propague(, val)
ou : | conjuncao
se val = F entao
propague(, F)
senaose valor[] = V entao
propague(, V )
mse
ou : | disjuncao
se val = V entao
propague(, V )
senaose valor[] = F entao
propague(, F)
mse
: | condicional: primeiro caso
se val = F entao
propague(, V )
senaose valor[] ,= vazio entao
propague(, valor[])
mse
: | condicional: segundo caso
se val = V entao
propague(, V )
senaose valor[] ,= vazio entao
propague(, valor[])
mse
ou : | bicondicional
se valor[] = valor() entao
propague(, V )
senaose valor[] ,= vazio entao
valor[] = F
mse
mcaso
mpara;
retorne
m propague
Figura 2.6: Propaga cao de valores a partir de uma vari avel.
Newton Jose Vieira Captulo 2: L ogica proposicional 31

q
1
q
2
p
1
p
2
(a) O grafo simplicado.
F

V

F

q
1 V
q
2 F
p
1
p
2
(b) O grafo com valores propagados.
Figura 2.7: Propaga cao de valores no grafo de ((p
1
p
2
) q
1
) (q
1
q
2
).
presente caso, isso n ao tem import ancia, visto que o algoritmo tem tempo de execu cao
polinomial no comprimento da formula, no pior caso. Mas passara a ter import ancia
mais `a frente em conexao com outros tipos de problemas.
Exemplo 13 O grafo da formula = ((p
1
p
2
) q
1
) (q
1
q
2
) do Exemplo 7 est a
mostrado na Figura 2.7(a). Na Figura 2.7(b) est ao apresentados os valores propagados
pelo algoritmo da Figura 2.5, dada a interpreta cao i tal que i(p
1
) = V , i(p
2
) = F,
i(q
1
) = V e i(q
2
) = F, obtidos como a seguir. O conjunto vars e inicializado com
p
1
, p
2
, q
1
, q
2
. Supondo que q
1
seja a primeira vari avel escolhida e que q
2
seja a segunda,
as duas outras nem chegam a ser escolhidas, e nos dois passos executados pelo comando
enquanto obtem-se:
1. = q
1
;
valor[q
1
] = V , valor[(p
1
p
2
) q
1
] = V ;
2. = q
2
;
valor[q
2
] = F, valor[q
1
q
2
] = F, valor[] = F.
Evidentemente, essa e apenas uma das varias computa coes possveis para o par (, i),
aquela em que a primeira vari avel escolhida e q
1
e a segunda e q
2
.
Na pr oxima se cao ser a visto um algoritmo similar, s o que trabalhando no nvel
formal.
Exerccios
1. Para cada formula a seguir, determine seu conjunto de subf ormulas:
a) (p q) r
32 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
b) (p p) p
c) ((p q) q) p
d) ((q p) q) p
e) ((p q) r) (q (p r))
2. Desenhe o grafo de cada formula do Exerccio 1.
3. Use o algoritmo da Figura 2.5 para avaliar cada formula do Exerciccio 1 para a
interpreta cao i tal que i(p) = V , i(q) = F e i(r) = V . Fa ca como no Exemplo 13,
procurando ter o menor trabalho possvel.
2.3.3 Avaliacao de formulas no nvel formal
Nos exemplos da se cao anterior mostrou-se como avaliar uma formula , ou seja, de-
terminar v
i
() por meio da avalia cao de v
i
para subf ormulas. O metodo empregado
propiciou a formula cao do algoritmo de avalia cao da Figura 2.5. Tal avalia cao pode ser
imaginada como ocorrendo no nvel conceitual, ja que ela e feita diretamente a partir
das fun coes booleanas que d ao o signicado dos conectivos.
A seguir, ser a apresentada uma outra abordagem, que faz a avalia cao no nvel
formal, baseada na aplica cao de regras de reescrita. Na apresenta cao do algoritmo ser a
utilizado o conceito de substitui cao de (todas as ocorrencias de) uma subf ormula por
outra.
Deni cao 7 A substitui cao de uma subf ormula por uma f ormula em , [/],
pode ser assim denida:
a) se , subf (), ent ao [/] = ;
b) se = , ent ao [/] = ;
b) se subf () e ,= , ent ao
se = (), ent ao [/] = ([/]),
se = ( ), em que , , , , [/] = ([/] [/]).
O pr oximo exemplo apresenta algumas substitui coes.
Exemplo 14 Seja = (p q) (p (q r)). Entao:
[q/p r] = ;
[p q/r] = r (p (q r));
[q r/q] = (p q) (p q);
[p/r q] = ((r q) q) ((r q) (q r)).
Newton Jose Vieira Captulo 2: L ogica proposicional 33
Nega cao
neg1:
neg2:
Conjun cao
conj1:
conj2:
conj3:
conj4:
Disjun cao
disj1:
disj2:
disj3:
disj4:
Condicional
cond1:
cond2:
cond3:
Bicondicional
bic1:
bic2:
bic3:
Figura 2.8: Regras de simplica cao.
O algoritmo avaliaf (o nal f vem de formal) e baseado no fato de que para
qualquer vari avel :
se i() = V , entao v
i
() = v
i
([/] (pois v
i
() = V ); e
se i() = F, entao v
i
() = v
i
([/] (pois v
i
() = F).
Com isso, em vez de anotar V ou F em valor[] e propagar valores a partir de enquanto
possvel, avaliaf substitui por ou e simplica a formula enquanto possvel. Por
exemplo, seja uma formula = p e suponha que deva ser avaliada para v
i
(p) = V .
O algoritmo come ca substituindo p por em , obtendo [p/]; em seguida, ele
simplica esta ultima, obtendo

, onde

e o resultado de simplicar [p/] enquanto


possvel. Isto e corroborado pelo fato de que v
i
(p ) = v
i
([p/]) para v
i
(p) = V .
A Figura 2.8 apresenta todas as regras de simplica cao usada pelo algoritmo, cada
uma no formato , signicando que uma subf ormula pode ser substituda por
. Por exemplo a regra cond1 diz que uma subf ormula pode ser substituda
por . J a a regra cond3 diz que uma subf ormula da forma (em que e
qualquer formula) pode ser substituda por . A regra bic1 diz que uma subf ormula da
forma (em que e qualquer formula) pode ser substituda por . O algoritmo,
mostrado na Figura 2.9, e similar `aquele da Figura 2.5. A diferen ca fundamental e que
a atividade de propaga cao (efetuada pelo procedimento da Figura 2.6) e substituda por
simplica coes mediante as regras da Figura 2.8, feitas pelo algoritmo da Figura 2.10.
Note que aqui tambem o n ao determinismo presente na escolha no corpo do co-
mando enquanto e especial: qualquer seq uencia de escolhas leva a uma computa cao
bem sucedida. No entanto, pode haver seq uencias de escolhas que redundem em uma
conuencia para ou mais rapidamente que outras.
O processo realmente termina com a produ cao de ou , visto que em cada passo
do comando enquanto:
alguma regra e aplic avel na chamada ao procedimento simplica;
a aplica cao de uma regra provoca a obten cao de uma formula menor.
34 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
proc avaliaf(formula , interpretacao i) retorna |V, F:
:= simplique();
vars := 1 subf();
enquanto , |, faca
:= escolha(vars); | escolha nao determinstica
vars := vars |;
:= simplique(se i() = V entao [/] senao [/] m)
menquanto;
retorne se = entao V senao F m
m avaliaf
Figura 2.9: Avalia cao formal de uma formula.
proc simplica(formula ) retorna formula:
enquanto alguma regra da Figura 2.8 e aplicavel a faca
:= resultado de aplicar uma regra a
menquanto;
retorne
m simplica
Figura 2.10: Simplica cao de uma formula.
Como cada

obtido ap os a aplica cao de uma regra a uma formula e tal que v


i
(

) =
v
i
(), segue-se que o resultado e se, e somente se, v
i
() = V .
Exemplo 15 Seja, novamente, o problema do Exemplo 7 de determinar v
i
() para
= ((p
1
p
2
) q
1
) (q
1
q
2
) em uma situa cao em que: i(p
1
) = V , i(p
2
) = F,
i(q
1
) = V e i(q
2
) = F. A chamada avaliaf(, i) provoca as seguintes duas passadas no
corpo do comando enquanto supondo que a vari avel q
1
e a primeira a ser escolhida e
que q
2
e a segunda:
1. = q
1
;
na chamada a simplica(((p
1
p
2
) q
1
) (q
1
q
2
)[q
1
/]) obtem-se as simpli-
ca coes:
((p
1
p
2
) ) ( q
2
) ( q
2
) (cond3)
q
2
(conj1)
2. = q
2
;
na chamada a simplica( q
2
[q
2
/]) obtem-se a simplica cao:
(cond1)
Portanto, v
i
() = F.
Assim como em portugues, existem in umeras formas de se dizer a mesma coisa na
linguagem da logica proposicional. Para ver isto, basta considerar que os signicados
Newton Jose Vieira Captulo 2: L ogica proposicional 35
de e s ao o mesmo, qualquer que seja a formula : v
i
() = v
i
() para toda i.
Para xar esse conceito de formulas com o mesmo signicado, ser a usado o conceito
de equivalencia logica, denido a seguir.
Exerccios
1. Use o algoritmo da Figura 2.9 para avaliar cada formula do Exerciccio 1 da se cao
anterior, replicada abaixo, para a interpreta cao i tal que i(p) = V , i(q) = F e
i(r) = V . Fa ca como no Exemplo 15, procurando ter o menor trabalho possvel.
a) (p q) r
b) (p p) p
c) ((p q) q) p
d) ((q p) q) p
e) ((p q) r) (q (p r))
2. Refa ca o algoritmo da Figura 2.9 para que, dada uma formula e uma inter-
preta cao i, ele fa ca as substitui coes, em , de por se i() = V , e de por
se i() = F, para todas as vari aveis antes das aplica coes das regras de sim-
plica cao. As regras de simplica cao da Figura 2.8 seriam modicadas? Se sim,
quais seriam as novas regras?
2.3.4 Equivalencia logica
Duas formulas podem ter exatamente o mesmo signicado, por mais dspares que
forem sintaticamente. A deni cao a seguir captura o que vem a ser formulas de mesmo
signicado por meio do conceito de equivalencia logica.
Deni c ao 8 Duas f ormulas e s ao logicamente equivalentes se, e somente se,
v
i
() = v
i
() para toda i.
Ser a usada a nota cao para dizer que e s ao logicamente equivalentes. Note
que n ao e um conectivo e n ao e uma formula. A express ao e
apenas uma forma abreviada de dizer a formula e logicamente equivalente `a formula
.
Exemplo 16 Observe como as colunas relativas `as formulas p e p s ao identicas
na seguinte tabela da verdade:
p p p
V F F F
F F V V
Isso prova que v
i
(p) = v
i
(p ) para toda i. Conclui-se, portanto, que p p .
36 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
Exemplo 17 p q p q. Para ver isso, basta avaliar v
i
(p q) e v
i
(p q) para
cada i possvel. Usando tabela da verdade:
p q p q p p q
V V V F V
V F F F F
F V V V V
F F V V V
Como as colunas relativas a v
i
(p q) e v
i
(pq) s ao identicas, v
i
(p q) = v
i
(pq)
para cada i. Portanto, p q p q.
O teorema a seguir permite generalizar resultados como os dos exemplos anteriores:
na verdade, para qualquer formula , n ao apenas para = p, e
para quaisquer formulas e , n ao apenas para = p e = q. De forma geral: se
duas formulas s ao logicamente equivalentes, se forem aplicadas as mesmas substitui coes
de vari aveis por formulas a ambas, elas continuam logicamente equivalentes. Lembre-se
que a express ao [/] denota a formula ap os substituir toda ocorrencia de por ,
como na Deni cao 7.
Teorema 1 Sejam , , T e 1. Se , ent ao [/] [/].
Prova
Suponha que . Entao, se e uma vari avel proposicional que ocorra em
e/ou , v
i
() = v
i
() tanto no caso em que i() = V , quanto no caso em que i() = F.
Como v
i
() V, F, ao se substituir toda ocorrencia de por em e , continua-se
tendo v
i
() = v
i
(). E se n ao ocorre em nem em , naturalmente n ao inui nos
valores v
i
() e v
i
() e, portanto, v
i
() = v
i
() tambem neste caso.
Exemplo 18 No exemplo anterior, mostrou-se que p q p q. O Teorema 1
permite concluir que para quaisquer formula , (p q)[p/] (p q)[p/], ou seja,
q q. Pelo mesmo teorema, tem-se entao que para qualquer formula ,
( q)[q/] ( q)[q/], ou seja, para quaisquer , T.
Em particular, fazendo-se = (p q) e = p, tem-se que (p q) p
(p q) p. Aplicando-se novamente o Teorema 1, este ultimo resultado pode ser
generalizado para ( ) ( ) .
Na Figura 2.11 est ao exibidas algumas equivalencias que podem ser demonstradas
facilmente por meio de tabelas da verdade e aplica cao do Teorema 1, como feito nos
Exemplos 17 e 18 para .

E facil demonstrar que e realmente uma rela cao de equivalencia: tem as pro-
priedades de reexividade, simetria e transitividade. E, como se espera, formulas logi-
camente equivalentes podem ser substitudas umas pelas outras sem mudan ca de sig-
nicado, como mostrado a seguir.
Newton Jose Vieira Captulo 2: L ogica proposicional 37



( ) ( ) ( ) ( )
( )
( ) ( ) ( ) ( )
( ) ( ) ( ) ( ) ( ) ( )
( ) ( ) ( ) ( )
Figura 2.11: Algumas equivalencias b asicas.
Teorema 2 Sejam , , T e

o resultado de substituir em uma ou mais


ocorrencias de por . Se , ent ao

.
Prova
Suponha que , ou seja, v
i
() = v
i
() para toda i. Ser a provado por indu cao
sobre a estrutura de que

, ou seja, v
i
() = v
i
(

) para toda i. Se
1 , , entao se = ,

= e, logo, v
i
(

) = v
i
() = v
i
() = v
i
(); e se
,= ,

= e, logo, v
i
(

) = v
i
(). Se for , entao

, em que

recebe as substitui coes de por ; pela hip otese de indu cao,

. Segue-se que
v
i
() = fb

(v
i
()) = fb

(v
i
(

)) = v
i
(

) = v
i
(

). Se for , sendo um dos


conectivos bin arios, entao

, em que

e/ou

recebem as substitui coes de


por ; pela hip otese de indu cao,

. O resultado e imediato, ja que


v
i
() = fb

(v
i
(), v
i
()) = fb

(v
i
(

), v
i
(

)) = v
i
(

).
Munido de um arsenal de equivalencias como as da Figura 2.11, e outras que se pode
demonstrar mediante o uso de tabela da verdade e do Teorema 1, pode-se demonstrar
novas equivalencias aplicando-se o Teorema 2, como exemplicado a seguir. Eviden-
temente, essas novas equivalencias podem, tambem, ser usadas na demonstra cao de
outras.
Exemplo 19 Segue uma demonstra cao de (p q) p p:
(p q) p (p q) p [ ]
(p q) p [( ) ]
p [( ) ]
Usando-se o Teorema 1, pode-se concluir, portanto, que ( ) para
quaisquer formulas e .
A seguir, mais um exemplo.
Exemplo 20 Segue uma demonstra cao de ( ) para quaisquer formulas
e :
( ) ( )
( )
38 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
( )


Exerccios
1. Mostre que s ao logicamente equivalentes utilizando equivalencias mais simples,
como no Exemplo 20:
a) (p ) (p ) e
b) (p q) p q e
c) p q e (p q)
d) p q e p (p q)
e) (p q) r e (p r) (q r)
f) (p q) q e p q
g) (p q) e (p q) (p q)
Use apenas equivalencias mostradas na Figura 2.11.
2.3.5 Satisfacao, tautologias e contradicoes
Nesta subse cao ser ao tratados alguns conceitos extremamente importantes, n ao apenas
na vers ao proposicional da logica, mas tambem na vers ao com predicados.
Deni cao 9 Uma interpretac ao i e um modelo para uma f ormula se, e somente se,
v
i
() = V .
Assim, os modelos para uma certa formula correspondem `as linhas da tabela da
verdade para as quais ela e verdadeira. Em particular, qualquer i e modelo para e
nenhum e modelo para . De forma similar, diz-se que i e um modelo para um conjunto
de formulas H se, e somente se, v
i
() = V para toda H. Assim, se H for nito, i
ser a um modelo para H se, e somente se, for um modelo para a conjun cao das formulas
em H.
Exemplo 21 Sejam as vari aveis proposicionais e respectivas proposi coes:
p: l ogica e f acil;
q: matem atica e f acil;
r: muitos alunos gostam de l ogica.
Newton Jose Vieira Captulo 2: L ogica proposicional 39
Seja H o conjunto das tres formulas:
r
(muitos alunos gostam de l ogica);
q p
(se matem atica e f acil, l ogica e f acil);
p r
(l ogica n ao e f acil ou n ao muitos alunos gostam de l ogica).
Observando-se na tabela da verdade as tres formulas de H, ve-se que todas recebem o
valor V apenas no caso ressaltado:
p q r p r q p p r
V V V F F V F
V V F F V V V
V F V F F V F
V F F F V V V
F V V V F F V
F V F V V F V
F F V V F V V
F F F V V V V
Assim, observando-se na mesma linha os valores para p, q e r, ve-se que todo modelo i
para H deve ser tal que:
i(p) = F: l ogica n ao e f acil;
i(q) = F: matem atica n ao e f acil;
i(r) = V : muitos alunos gostam de l ogica.
Uma outra forma de dizer que tem modelo e dizer que e satisfatvel .
Deni cao 10 Uma f ormula e satisfatvel se, e somente se, tem um modelo. E se
n ao e satisfatvel (n ao tem modelo), diz-se que e insatisfatvel (ou uma contradi cao).
Logo, pela Deni cao 10, uma formula e satisfatvel se, e somente se v
i
() = V para
alguma i; e e insatisfatvel ( uma contradi cao) se, e somente se, v
i
() = F para toda
i. Assim, em particular, e insatisfatvel. Observe que o conjunto T de todas as
formulas e particionado nos dois conjuntos: o conjunto das formulas satisfatveis e o
das contradi coes.
Exemplo 22 Considere a formula = (r (q p) (p r)) q no contexto do
exemplo anterior. Acrescentando-se uma coluna para o primeiro termo da conjun cao e
uma para na tabela la apresentada obtem-se:
40 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
p q r p r q p p r r (q p) (p r)
V V V F F V F F F
V V F F V V V F F
V F V F F V F F F
V F F F V V V F F
F V V V F F V F F
F V F V V F V F F
F F V V F V V V F
F F F V V V V F F
o que mostra que v
i
() = F para toda i e, portanto, e insatisfatvel. Conclusao: as
tres proposi coes do Exemplo 21 n ao podem ser verdadeiras e, ao mesmo tempo, ser
verdadeiro que matem atica e f acil.
Na verdade, no exemplo anterior ja cou constatado que para = r (q p)
(p r), v
i
() = V somente se i(q) = F (alem de i(p) = F e i(r) = V ); mas e
justamente a conjun cao q. Realmente, n ao se pode ter v
i
() = V e i(q) = V .
Como uma formula e uma contradi cao se, e somente se, v
i
() = F para toda i,
segue-se que todas as contradi coes s ao logicamente equivalentes. Em particular, para
qualquer contradi cao , .
Deni cao 11 Uma f ormula e uma tautologia se, e somente se, v
i
() = V para toda
i. E se n ao e tautologia, isto e, se existe i tal que v
i
() = F, diz-se que e falseavel.
Pela Deni cao 11, e uma tautologia. Dada a no cao de equivalencia logica, segue-
se que todas as tautologias s ao logicamente equivalentes. Em particular, para
qualquer tautologia . Observe que o conjunto T de todas as formulas e particionado
nos dois conjuntos: o conjunto das tautologias e das formulas falseaveis.
Exemplo 23 Considere a formula = (r(q p)(pr)) q ainda no contexto
do Exemplo 21. Acrescentando-se uma coluna para r, outra para o antecedente da
implica cao e outra para na tabela la apresentada obtem-se:
p q r p q r q p p r r (q p) (p r)
V V V F F F V F F V
V V F F F V V V F V
V F V F V F V F F V
V F F F V V V V F V
F V V V F F F V F V
F V F V F V F V F V
F F V V V F V V V V
F F F V V V V V F V
o que mostra que e uma tautologia (e tautol ogica).
Newton Jose Vieira Captulo 2: L ogica proposicional 41
tautologias contingencias contradic oes

>

satisfatveis
>
false aveis
Figura 2.12: Relacionamentos entre tipos de formulas.
Na verdade, no Exemplo 21 ja cou constatado que para = r(q p)(pr),
v
i
() = V somente se q
i
= F (alem de p
i
= F e r
i
= V ); mas e justamente q.
Realmente, n ao se pode ter v
i
() = V e q
i
= V , ou seja v
i
() = V e v
i
(q) = F.
O teorema a seguir expoe uma rela cao importante entre e o conectivo .
Teorema 3 se, e somente se, e uma tautologia.
Prova
Por deni cao, se, e somente se, v
i
() = v
i
() para toda i. E e
uma tautologia se, e somente se v
i
( ) = V para toda i, ou seja, por deni cao,
fb

(v
i
(), v
i
()) = V para toda i, ou ainda, v
i
() = v
i
() para toda i.
Assim, para mostrar que p q p q, basta mostrar que (p q) (p q) e
uma tautologia, o que pode ser feito usando-se a tabela da verdade, de forma similar `a
empregada no Exemplo 17, s o que com uma coluna a mais para a f ormula (p q)
(p q): sendo as colunas para as subf ormulas p q e p q identicas, segue-se que
a coluna para (p q) (p q) contem apenas V s: a formula e uma tautologia;
portanto, p q p q.
Para completar o quadro da terminologia relativa aos varios tipos de formulas,
dene-se o que e uma contingencia.
Deni cao 12 Uma f ormula e uma contingencia se, e somente se, n ao e tautologia
nem contradi c ao.
Ou seja, e uma contingencia se, e somente se, v
i
() = V para alguma interpreta cao
i (ou seja, e satisfatvel) e v
i
() = F para alguma interpreta cao i (ou seja, e falseavel).
A Figura 2.12 apresenta esquematicamente o relacionamento entre as cinco classes
de formulas denidas anteriormente. Na gura cam bem claras as rela coes existentes
entre as varias classes de formulas, como, por exemplo:
T e particionada em tres classes: tautologias, contingencias e contradi coes.
T e particionada em duas classes: tautologias e formulas falseaveis.
T e particionada em duas classes: contradi coes e formulas satisfatveis.
42 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
A classe das contingencias e a interse cao entre a classe das satisfatveis e a das
falseaveis. Ou ainda: e a classe das satisfatveis subtrada da classe das tautolo-
gias. Ou ainda: e a classe das falseaveis subtrada da classe das contradi coes.
Considere o seguinte problema:
Suponha que pertenca a uma das cinco classes de f ormulas mencionadas
na Figura 2.12. Neste caso, a que classe pertence ? E se pertencer
a uma das cinco classes, a que classe pertencer a ?
O teorema a seguir apresenta respostas para tais perguntas.
Teorema 4 Para toda T:
i. e tautologia se, e somente se, e contradic ao;
ii. e tautologia se, e somente se, e contradic ao.
Prova
A primeira:
() Suponha que seja uma tautologia. Seja i uma interpreta cao arbitraria. Como
e tautologia, segue-se que v
i
() = V . Logo, v
i
() = fb

(v
i
()) = fb

(V ) = F. Como
i e arbitraria, conclui-se que v
i
() = F para toda i e, portanto, e uma contradi cao.
() Suponha que n ao seja uma tautologia. Seja, entao, i tal que v
i
() = F. Segue-se
que v
i
() = fb

(v
i
()) = fb

(F) = V . Isso mostra que existe i tal que v


i
() = V e,
portanto, n ao e uma contradi cao.
Assim, est a provada a parte i. Da parte i, segue-se que e tautologia se, e so-
mente se, e contradi cao. Como , ou seja, v
i
() = v
i
() para toda i,
segue-se que e contradi cao se, e somente se, e contradi cao. Conclui-se, portanto,
a parte ii.
Segue-se, imediatamente, de i e ii do Teorema 4 que:
e contingencia se, e somente se, e contingencia.
pois:
e contingencia
se, e somente se, n ao e tautologia e n ao e contradi cao (por deni cao)
se, e somente se, n ao e contradi cao (por i) e n ao e tautologia (por ii)
se, e somente se, e contingencia (por deni cao).
Por outro lado, deve-se notar que as partes i e ii tem as seguintes formula coes equiva-
lentes:
Newton Jose Vieira Captulo 2: L ogica proposicional 43
i e false avel se, e somente se, e satisfatvel (ja que dizer que e falseavel e o
mesmo que dizer que n ao e tautologia, e dizer que e satisfatvel e o mesmo
que dizer que n ao e contradi cao);
ii e satisfatvel se, e somente se, e false avel (ja que dizer que e satisfatvel e
o mesmo que dizer que n ao e contradi cao, e dizer que e falseavel e o mesmo
que dizer que n ao e tautologia).
Agora ser ao abordados os problemas de, dada uma formula, descobrir se ela per-
tence a uma dada classe. Dados os relacionamentos entre as classes, ve-se que os
problemas podem todos ser reduzidos ao de vericar se uma formula pertence a uma
das quatro classes: satisfatveis, falseaveis ou as complementares a estas (contradi coes
e tautologias). Por exemplo, eles podem ser reduzidos ao de vericar se uma formula e
satisfatvel:
e falseavel se, e somente se, e satisfatvel, pelo Teorema 4(i );
e contradi cao se, e somente se, n ao e satisfatvel, por deni cao;
e tautologia se, e somente se, n ao e satisfatvel, pelo Teorema 4(i );
e contingencia se, e somente se, e s ao satisfatveis, por deni cao.
Um exerccio ao nal da se cao pede as redu coes para as outras classes.
Os problemas de determinar se uma formula e satisfatvel e de determinar se uma
formula e falseavel s ao NP-completos, sendo que o primeiro foi, na verdade, o primeiro
problema de decis ao provado ser NP-completo. Os problemas complementares de de-
terminar se uma formula e tautologia e de determinar se uma formula e contradi cao
s ao ambos coNP-completos. Na pr oxima se cao ser ao apresentados alguns algoritmos
n ao determinsticos para o problema da satisfabilidade.
Exerccios
1. Descubra, para cada formula abaixo, se ela e tautol ogica, contradit oria ou con-
tingente. Explique da maneira mais sucinta que puder a sua resposta:
a) ( ) ( )
b) (p q) (p q) q
c) (p q) (q p)
d) (p q) (q p)
e) p (q p) q
2. Considere as formulas obtidas para o Exerccio 2 da Se cao 2.2. Construa um
modelo para tal conjunto. Este modelo diz o que, caso se interprete as vari aveis
proposicionais de acordo com as proposi coes do Exerccio 3 da Se cao 2.1?
44 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
procnd sat(formula ):
para cada subf() faca valor[] := vazio mfaca;
propague(, V ); propague(, F);
vars := 1 subf();
enquanto valor[] = vazio faca
:= escolha(vars); | escolha nao determinstica
vars := vars |;
propague(, escolha(|V, F)) | escolha nao determinstica
menquanto;
se valor[] = V entao sucesso senao fracasso mse
m sat
Figura 2.13: Algoritmo n ao determinstico para satisfabilidade.
3. Explique como os problemas de determinar se uma formula pertence a cada uma
das classes de formulas exibidas na Figura 2.12 pode ser reduzidos ao de deter-
minar se uma formula e:
a) falseavel;
b) tautologia;
c) contradi cao.
4. Mostre que sim ou que n ao:
a) Se e satisfatvel, entao e satisfatvel.
b) Se e tautologia, entao e tautologia.
c) Se e satisfatvel, entao e satisfatvel.
d) Se e tautologia, entao e satisfatvel.
e) Se e s ao tautologias, entao e tautologia.
f) Se e tautologia e e satisfatvel, entao e satisfatvel.
g) Se e s ao satisfatveis, entao e satisfatvel.
2.3.6 O problema da satisfabilidade
Uma primeira ideia para obter um algoritmo para, dada uma f ormula , determinar
se ela e satisfatvel, e testar cada uma das interpreta coes relativas `as vari aveis que
ocorrem em , via um dos algoritmos vistos anteriormente nas Figuras 2.5 e 2.9. Nas
Figuras 2.13 e 2.14 s ao apresentados algoritmos n ao determinsticos baseados nestes.
Esses dois algoritmos tem um nvel a mais de n ao determinismo: a escolha do valor
(V ou F) ou da substitui cao ( ou ) para uma vari avel. Mas esse n ao determinismo
e especial: uma seq uencia de escolhas pode resultar em sucesso ou fracasso de uma
computa cao! Esta-se usando procnd para ressaltar que o procedimento e n ao deter-
minstico no sentido de que: uma chamada e dita ter sucesso se, e somente se, existe
Newton Jose Vieira Captulo 2: L ogica proposicional 45
procnd satf(formula ):
:= simplique();
vars := 1 subf();
enquanto , |, faca
:= escolha(vars); | escolha nao determinstica
vars := vars |;
:= escolha(|, ); | escolha nao determinstica
:= simplique([/])
menquanto;
se = entao sucesso senao fracasso mse
m satf
Figura 2.14: Avalia cao formal n ao determinstica de uma formula.
uma computa cao que resulta em sucesso. Esta ultima arma cao n ao exclui a possibili-
dade de existir seq uencias de escolhas que levem a computa coes com loops (que seriam
computa coes que n ao resultam em sucesso). Mas, aqui n ao h a a necessidade de usar um
conceito de n ao determinismo tao geral. Assim, um algoritmo n ao determinstico, no
presente contexto, ser a tal que toda computa c ao possvel do mesmo termina em sucesso
ou fracasso, ou seja, nunca entra em loop. Com isto, ter a sentido testar, em outro al-
goritmo, se uma chamada ao procedimento resulta em sucesso (existe computa cao que
termina em sucesso) ou resulta em fracasso (toda computa cao termina em fracasso), ja
que, mesmo uma simula cao ingenua de todas as computa coes possveis tem a garantia
de terminar.
Deve-se ressaltar que um procedimento n ao determinstico, aqui come cado por
procnd, s o pode ser terminado com emissao de um dos comandos sucesso ou fra-
casso, diferentemente de um procedimento determinstico, come cado por proc, que
deve terminar via um retorne.
Uma computa cao de qualquer um dos dois algoritmos corresponde `a avalia cao de
uma formula para uma certa interpreta cao, aquela constituda dos valores correspon-
dentes `as escolhas efetuadas. Com isso, o tempo correspondente e de ordem polinomial,
tanto para computa coes com sucesso, quanto para computacoes com fracasso. E, como
resultado de deni cao da teoria da complexidade, diz-se que os algoritmos tem desem-
penho de ordem NP (n ao determinstico polinomial). O que est a de acordo com o que
ja foi dito: o problema da satisfabilidade e NP-completo. J a o problema complemen-
tar, de vericar insatisfabilidade, e CoNP-completo. Note que a adapta cao direta do
algoritmo para vericar se toda computa cao termina em fracasso, de forma a garantir
que uma formula e insatisfatvel, e exponencial no pior caso.
Os metodos empregados pelos dois algoritmos podem ser considerados como sendo
do tipo bottom-up, visto que eles trabalham das vari aveis em dire cao ao conectivo
principal da formula. A seguir ser a apresentado um outro algoritmo, tambem n ao
determinstico, este baseado em um metodo top-down, ou seja, que trabalha a partir
do conectivo principal da formula em dire cao `as vari aveis. Ele funciona atraves da
disseca cao da formula e a coes apropriadas dependentes dos conectivos que vao sendo
encontrados. Por exemplo, na tentativa de mostrar que e satisfatvel, deve-se
46 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
mostrar que e satisfatvel e e satisfatvel; na tentativa de mostrar que e
satisfatvel, deve-se mostrar que e satisfatvel ou que e satisfatvel.
Na Figura 2.15 est a um algoritmo, satisfaz, n ao determinstico que procura por
uma interpreta cao que satisfaz uma formula. Como nos algoritmos anteriores, tal inter-
preta cao e colocada no vetor associativo global valor, inicialmente vazio. Ao contr ario
dos algoritmos anteriores, no entanto, s o ser ao atribudos valores para as vari aveis
proposicionais. Durante o processo, ao se tentar mostrar que e satisfatvel, sendo
uma vari avel proposicional, se valor[] = vazio, faz-se valor[] := V ; se valor[] = V ,
h a sucesso; e se valor[] = F, fracasso. O algoritmo satisfaz chama o algoritmo falseia,
mostrado na Figura 2.16, quando necessita falsear uma subf ormula (no caso em que
e da forma ). Tal algoritmo e um espelho exato de satisfaz: satisfaz() procura
por uma interpreta cao que satisfaz e falseia() procura por uma interpreta cao que
falseia .
Um procedimento que chame satisfaz ou falseia deve, antes, fazer:
valor[] := vazio para toda vari avel .
Note que, alem do n ao determinismo, provocado pela disjun cao, e da invers ao sa-
tisfaz/falseia, provocada pela nega cao, chama a aten cao a itera cao provada pela con-
jun cao. No n ao determinismo, basta que uma das computa coes possveis leve a sucesso,
para que haja sucesso. O comando paracada provoca uma itera cao em que todas as
computa coes possveis da para frente devem ter sucesso para que haja sucesso. Isso
pode ser considerado como um exemplo do que se denomina computa c ao alternante,
uma generaliza cao de computa cao n ao determinstica. O termo alternante vem do
fato de que agora existem dois tipos de bifurca cao: um em que para a computa cao ter
sucesso basta existir uma alternativa de sucesso, e outra em que todas as alternativas
devem ser de sucesso.
Para conseguir uma vers ao determinstica de um procedimento n ao determinstico,
pode-se implementar os pontos de escolha como pontos de backtracking, mediante o uso
de uma pilha, na forma usual. Para lidar com o comando paracada, pode-se tambem
fazer uso de uma pilha da seguinte forma:
Seja pf uma pilha de formulas, com T contendo seu topo, um n umero natural a
partir de 1. Antes de chamar qualquer um dos procedimentos, deve-se fazer:
T := 0; pilha vazia
No incio do procedimento fazer:
t := T;
Seja uma das formulas do conjunto C e =
1
, . . . ,
n
as formulas restantes de
C. Substituir paracada C por:
:= ;
t := t + 1; pf[t] :=
1
;
Newton Jose Vieira Captulo 2: L ogica proposicional 47
procnd satisfaz(formula ):
laco
caso seja
var: se valor[] = F entao
fracasso
senao
valor[] := V ; sucesso
mse
: sucesso
: fracasso
: se falseia() resulta em sucesso entao
sucesso
senao
fracasso
mse
: paracada |,
: := escolha(|, ) | escolha nao determinstica
: := escolha(|, ) | escolha nao determinstica
: paracada | ,
mcaso
mlaco
m satisfaz
Figura 2.15: Procedimento satisfaz.
procnd falseia(formula ):
laco
caso seja
var: se valor[] = V entao
fracasso
senao
valor[] := F; sucesso
mse
: fracasso
: sucesso
: se satisfaz() resulta em sucesso entao
sucesso
senao
fracasso
mse
: := escolha(|, ) | escolha nao determinstica
: paracada |,
: paracada |,
: := escolha(| , ) | escolha nao determinstica
mcaso
mlaco
m falseia
Figura 2.16: Procedimento falseia.
48 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
s: (p q) ((q r) p)


s: p q
s: (q r) p

s: p s: q
f : p

s: (q r)
s: p
f : q r

f : q f : r
Figura 2.17:

Arvore e-ou para satisfaz(p q) ((q r) p)).
.
.
.
t := t + 1; pf[t] :=
n
;
Substituir o comando sucesso por:
se t = T entao sucesso senao := pf[t]; t := t 1 mse;
Nos exemplos, o conjunto de todas as computa coes possveis ser a representado me-
diante uma arvore e-ou, uma arvore em que cada vertice com mais de um sucessor e dito
ser do tipo e ou do tipo ou. De um vertice do tipo ou emanam (sub)computa coes alter-
nativas, correspondendo a um ponto de escolha n ao determinstico, e de um vertice do
tipo e emanam (sub)computa coes que devem todas ter sucesso para que a computa cao
como um todo tenha sucesso. Ou seja, um vertice do tipo ou corresponde a uma bi-
furca cao relativa ao comando escolha e um do tipo e corresponde a uma bifurca cao
relativa ao comando paracada. Alem do tipo (e/ou), cada vertice vira rotulado com as
seguintes informa coes:
o procedimento ativado (satisfaz ou falseia), e
a subf ormula em an alise.
No desenho da arvore e-ou, as arestas que emanam de vertice tipo e ser ao ligadas
por meio de um arco, da maneira convencional. As outras duas informa coes ser ao
explicitadas na forma s : ou f : , conforme o procedimento ativado tenha sido
satisfaz ou falseia e a subf ormula em an alise seja . A arvore n ao mostra os valores
valor[] atribudos `as vari aveis . Eles dependem da computa cao especca, podendo,
para cada computa cao ser recuperados a partir das informa coes presentes na arvore,
como ser a mostrado nos exemplos.
Exemplo 24 A arvore e-ou correspondente `a chamada satisfaz(p q) ((q r) p))
est a mostrada na Figura 2.17. Intuitivamente, a arvore diz que (veja a raiz) para que
(p q) ((q r) p) seja satisfeita, isto e, para que v
i
[(p q) ((q r) p)]
Newton Jose Vieira Captulo 2: L ogica proposicional 49
seja V , e necessario que (lho `a esquerda) (1) p q seja satisfeita, isto e, v
i
[p q]
seja V e (lho `a direita) (2) (q r) p seja satisfeita, isto e, v
i
[(q r) p] seja
V . Para cada um desses casos, raciocina-se de forma an aloga a partir das informa coes
da arvore. Com isto, existem quatro computa coes possveis, que podem ser resumidas
mostrando-se as folhas correspondentes da arvore e-ou (fazendo-se um caminhamento
esquerda primeiro):
6
1. f : p, f : q, f : r;
2. f : p, s: p;
3. s: q, f : q, f : r;
4. s: q, s: p.
A primeira computa cao e de sucesso, obtendo valor[p] = F, valor[q] = F e valor[r] = F.
A segunda e de fracasso, pois tenta falsear e satisfazer p. A terceira tambem e de
fracasso, visto que tenta satisfazer e falsear q. Finalmente, a quarta e de sucesso,
obtendo valor[q] = V e valor[p] = V . Note que apesar das 2
3
= 8 interpreta coes
possveis para as tres vari aveis, o algoritmo admite apenas 4 computa coes possveis. E
uma vers ao determinstica qualquer, em que se ordene as computa coes a se explorar,
retorna sucesso, no mais tardar, ap os explorar a terceira computa cao.

E importante ressaltar que a arvore e-ou para satisfaz() sintetiza todas as maneiras
de fazer v
i
() = V . Em certo sentido, ela codica uma tabela da verdade simplicada,
em que a cada computa cao com sucesso corresponde uma linha da tabela; em tal
linha, s : origina V para i(), f : origina F, e ausencia dos dois r otulos origina
, signicando que i() e irrelevante para o calculo de v
i
(). E s o s ao exibidas as
linhas para as quais v
i
() = V ; para as outras, assume-se que o valor e F. A tabela
para o Exemplo 24, assim construda, teria apenas duas linhas, ja que h a apenas duas
computa coes de sucesso. Seria:
p q r (p q) ((q r) p)
F F F V
V V V
Observe que a arvore e-ou para a chamada falseia() pode ser obtida da arvore e-ou
para a chamada satisfaz() da seguinte forma:
vertices do tipo e se tornam vertides do tipo ou e vice-versa;
s(atisfaz) se torna f(alseia) e vice-versa.
E, de forma an aloga `a vista acima, tem-se uma tabela da verdade simplicada em que
se explicita apenas as linhas para interpreta coes que fazem a formula receber o valor
F. Veja o exemplo a seguir.
6
Quando se diz esquerda ou direita aqui, e apenas com relacao ao desenho da arvore. Na
verdade, a arvore e nao ordenada.
50 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
f : (p q) ((q r) p)

f : p q f : (q r) p

f : p f : q
s: p

f : (q r) f : p
s: q r

s: q s: r
Figura 2.18:

Arvore e-ou para falseia(p q) ((q r) p)).
Exemplo 25 Compare a arvore e-ou correspondente `a chamada falseia(p q) ((q
r) p)), mostrada na Figura 2.18, com a do Exemplo 24, mostrada na Figura 2.17.
Neste caso, a arvore sintetiza tres computa coes possveis, com as folhas correspondentes
da arvore e-ou (fazendo-se um caminhamento esquerda primeiro):
1. s: p, f : q;
2. s: q, f : p;
3. s: r, f : p.
Todas elas s ao de sucesso, sendo que a primeira obtem valor[p] = V valor[q] = F, a
segunda, valor[q] = V e valor[p] = F, e a terceira obtem valor[r] = V e valor[p] = F.
Interessantemente, uma vers ao determinstica qualquer, que explore as computa coes em
alguma ordem, retorna sucesso ja na primeira computa cao, qualquer que seja a ordem
adotada.
A tabela da verdade simplicada correspondente, com uma linha para cada com-
puta cao bem sucedida, e:
p q r (p q) ((q r) p)
V F F
F V F
F V F
A an alise de uma arvore e-ou para extra cao das interpreta coes possveis, correspon-
dentes `as computa coes efetuadas, pode n ao ser la muito simples, principalmente quanto
a arvore contiver muitas altern ancias de vertices dos tipos e e ou. Assim, mostra-se
a seguir um metodo bastante simples para se obte-las. A cada vertice v ser a asso-
ciado o conjunto das interpreta c oes correspondentes, ints(v), considerando apenas a
subarvore de raiz v. Cada interpreta cao ser a representada por uma seq uencia em que
cada elemento e uma vari avel n ao barrada , representando i() = V , ou barrada ,
Newton Jose Vieira Captulo 2: L ogica proposicional 51
s: (p q) ((q r) p) pqr, pp, qqr, pq


s: p q
p, q s: (q r) p qr, p

s: p
p
s: q
q
f : p p

s: (q r)
qr
s: p
p
f : q r qr

f : q q f : r r
Figura 2.19:

Arvores e-ou para satisfaz(p q) ((q r) p)) com ints.
representando i() = F; a ordem e irrelevante, mas nos exemplos ser a adotada a ordem
p, p, q, q, r, r, s, s. Por exemplo, ints(v) = pqr, pqq, corresponde a duas inter-
preta coes: aquela em que i(p) = F, i(q) = V , i(r) = F, e aquela em que i(p) = V ,
i(q) = V , i(q) = F (esta ultima, portanto, contradit oria). Para determinar ints(r), para
uma arvore de raiz r, basta executar os seguintes passos (n ao deterministicamente) para
os vertices v da arvore-ou de :
7
1. Se v e uma folha cuja formula associada e uma vari avel, fa ca ints(v) = se o
r otulo for s: , ou ints(v) = se o r otulo for f : .
2. Se v e uma folha cuja formula associada e ou , fa ca ints(v) = se o r otulo
for s: ou f : , ou fa ca ints(v) = se o r otulo for s: ou f : .
3. Se v tem um unico lho, v

e o lho de v e ints(v

) ja foi determinado, fa ca
ints(v) = ints(v

);
4. Se v e do tipo e, v

e v

s ao os lhos de v e ints(v

) e ints(v

) ja foram determi-
nados, fa ca ints(v) = X Y [ X ints(v

) e Y ints(v

);
5. Se v e do tipo ou, v

e v

s ao os lhos de v e ints(v

) e ints(v

) ja foram deter-
minados, fa ca ints(v) = ints(v

) ints(v

).
Ao rotular a raiz r (de r otulo ), as interpreta coes podem ser recuperadas de ints(r).
Exemplo 26 Seja a arvore e-ou da Figura 2.17. Trabalhando das folhas em dire cao `a
raiz, aplicando-se o metodo anteriormente descrito, obtem-se ints(v) para cada vertice v
da arvore, como indicado na Figura 2.19. Para cada vertice v, ints(v) est a explicitado ao
lado do r otulo respectivo. Pode-se conferir com o resultado apresentado no Exemplo 24.
7
Cada elemento de ints(v) e tratado como um conjunto, ja que nao ha repeticoes e a ordem e
irrelevante.
52 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
s: p ( ) p

f : p p s:

f : s:
(a)

Arvore para satisfaz(p ( )).
f : p ( ) p


s: p
p f :


s: f :
(a)

Arvore para falseia(p ( )).
Figura 2.20:

Arvores e-ou para satisfaz(p ( )) e falseia(p ( )).
Note que a ocorrencia de em ints(v) para v com r otulo s: , indica que v
i
() = V
para qualquer i; e em ints(v) para v com r otulo f : , indica que v
i
() = F para
qualquer i. Na Figura 2.20(a) est a a arvore e-ou para satisfaz(p ( )) com os
valores ints(v) anotados para cada vertice v. Veja, por exemplo, que para os vertices
v de r otulos f :: , s :: e s :: , ints(v) = , sinalizando, respectivamente,
que n ao e falseavel, n ao e satisfatvel e tambem n ao e satisfatvel. Por
outro lado, as anota coes na arvore e-ou para falseia(p ( )), apresentadas na
Figura 2.20(b), anunciam que v
i
() = V , v
i
() = F e v
i
( ) = F para toda
interpreta cao i, ja que ints(v) = para os vertices v respectivos.
Como ja foi dito, pode-se determinar se uma formula pertence a qualquer uma das
cinco classes de formulas denidas anteriormente usando-se o procedimento satisfaz.
Antes de apresentar procedimentos para cada classe, o pr oprio procedimento satisfaz
ser a refeito para que ele n ao fa ca referencia ao procedimento falseia que, neste caso,
pode ser descartado. Veja a Figura 2.21.
A arvore e-ou utilizada para representar as computa coes possveis desse novo pro-
cedimento n ao tem, evidentemente, os r otulos s/f, visto que cada subf ormula deve ser
satisfeita (nunca falseada). Alem disso, cada folha da arvore tem como r otulo:
uma vari avel, representando a atribui cao de V `a mesma; ou
a nega cao de uma vari avel, representando a atribui cao de F `a mesma; ou
, , ou , representando os valores obvios.
O conjunto ints(v) para cada vertice da arvore e-ou e calculado da mesma forma, s o
que em vez de:
1. Se v e uma folha cuja formula associada e uma vari avel, fa ca ints(v) = se o
r otulo for s: , ou ints(v) = se o r otulo for f : .
2. Se v e uma folha cuja formula associada e ou , fa ca ints(v) = se o r otulo
for s: ou f : , ou fa ca ints(v) = se o r otulo for s: ou f : .
tem-se:
Newton Jose Vieira Captulo 2: L ogica proposicional 53
procnd satisfaz(formula ):
laco
caso seja
var: se valor[] = F entao
fracasso
senao
valor[] := V ; sucesso
mse
var: se valor[] = V entao
fracasso
senao
valor[] := F; sucesso
mse
: sucesso
: fracasso
: fracasso
: sucesso
: :=
: paracada |,
( ): := escolha(|, ) | escolha nao determinstica
: := escolha(|, ) | escolha nao determinstica
( ): paracada |,
: := escolha(|, ) | escolha nao determinstica
( ): paracada |,
: paracada | ,
( ): := escolha(|( ), ( )) | escolha nao determinstica
mcaso
mlaco
m satisfaz
Figura 2.21: Procedimento satisfaz sem chamada a falseia.
54 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
(p q) ((q r) p)


p q
(q r) p

p q

(q r)
p

q r
Figura 2.22: Outra arvore e-ou para satisfaz(p q) ((q r) p)).
1. Se v e uma folha cuja formula associada e uma vari avel, fa ca ints(v) = se o
r otulo for , ou ints(v) = se o r otulo for .
2. Se v e uma folha cuja formula associada e ou , fa ca ints(v) = se o r otulo
for ou , ou fa ca ints(v) = se o r otulo for ou .
O Exemplo 24 e remodelado a seguir para retratar as mudan cas anteriores.
Exemplo 27 A arvore e-ou correspondente `a chamada satisfaz(p q)((qr) p)),
considerando o algoritmo da Figura 2.21, est a exibida na Figura 2.22. As quatro
computa coes possveis, podem ser recuperadas de ints(r), sendo r a raiz da arvore e-
ou. Como ints(r) = pp, pq, pqr, qqr, o resultado e o mesmo que para o Exemplo 24,
s o que nesse novo formato.
Deve-se notar que varias computa coes podem levar ao mesmo elemento de ints(r),
em que r e a raiz da arvore e-ou. Quando isto acontecer, tal elemento ser a seguido do
n umero de ocorrencias entre parenteses.
Exemplo 28 Seja o problema de vericar se = (p (q r)) ((p r) q)
e satisfatvel, por meio do procedimento satisfaz da Figura 2.21. A arvore e-ou da
Figura 2.23 corresponde `a execu cao do procedimento satisfaz().
Existem 6 computa coes possveis, que podem ser resumidas calculando-se ints(v)
para cada vertice v, ate chegar `a raiz r de r otulo . Tres dessas computa coes levam `a
mesma interpreta cao, representada em ints(r) por pqr. Por isso, ints(r) tem apenas qua-
tro elementos: ints(r) = ppqr, pqr(3), pqr, pqrr. Notando que duas das computa coes
possveis redundam em fracasso (correspondentes `as interpreta coes com elementos con-
tradit orios), obtem-se apenas duas interpreta coes que satisfazem :
i(p) = V , i(q) = i(r) = F (correspondente a pqr); e
i(p) = i(q) = F, i(r) = V (correspondente a pqr).
Isso corresponde `a tabela da verdade simplicada:
p q r (p (q r)) ((p r) q)
V F F V
F F V V
Newton Jose Vieira Captulo 2: L ogica proposicional 55
(p (q r)) ((p r) q)
p (q r) ((p r) q)

p
(q r)

q r

(p r)
q

(p r) (r p)

`
`
`

p r

`
`
`

r p
Figura 2.23:

Arvore e-ou para satisfa cao de (p (q r)) ((p r) q).
(Para todas as outras 8 2 = 6 linhas, o valor e F.)
Foram apresentadas duas abordagens para a solu cao do problema da satisfabilidade,
ambas usando algoritmos n ao determinsticos polinomiais. A obten cao de algoritmos
determinsticos para solu cao de ampla gama de inst ancias do problema, muitas delas
de enorme interesse pr atico, e uma ativa area de pesquisa h a muito tempo. No nal
do captulo, ser a apresentado o algoritmo mais utilizado como base para a resolu cao
determinstica do problema da satisfabilidade, o DPLL. Antes disso, a seguir ser a visto
como um algoritmo (ainda o n ao determinstico) pode ser usado para determinar se uma
formula pertence a qualquer uma das classes de formulas ilustradas na Figura 2.12, e
em seguida ser ao apresentadas algumas formas normais, dentre as quais aquela usada
pelo algoritmo DPLL.
Exerccios
1. Para cada formula a seguir:
Mostre as arvores e-ou correspondentes `as chamadas dos procedimentos sa-
tisfaz e falseia das Figuras 2.15 e 2.16.
Determine o conjunto ints.
Exiba os modelos da formula.
Escreva a tabela da verdade simplicada.
a) (p q) q
b) (p ) (q p)
c) (p q) (p q)
d) (p q) ((q r) (r p))
56 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
2. Repita o exerccio anterior utilizando o procedimento da Figura 2.21.
3. Mostre como implementar o n ao determinismo (comando escolha) dos procedi-
mentos satisfaz e falseia por meio de backtracking.
2.3.7 Determinando a que classe pertence uma formula
Como ja foi ressaltado, tanto as computa coes de sucesso, quanto as de fracasso, ter-
minam, sendo que, para o procedimento satisfaz terminar com sucesso, e preciso que
exista uma computa cao que termine em sucesso, e para o procedimento terminar com
fracasso, e preciso que todas as computa coes possveis terminem em fracasso. Con-
tinuando com a poltica de n ao impor nenhuma estrategia de escolhas que torne o
procedimento satisfaz determinstico (apesar dela ser necessaria para implementa cao
nos computadores atuais, que s ao m aquinas determinsticas), um procedimento que
chame satisfaz poder a testar se houve sucesso ou fracasso mediante (pseudo)testes dos
tipos satisfaz() resulta em sucesso ou satisfaz() resulta em fracasso.
Na Figura 2.24 s ao apresentados procedimentos que chamam o procedimento satis-
faz para determinar se uma formula e:
1. satisfatvel; e
2. falseavel.
Na Figura 2.25 s ao apresentadas as fun coes que chamam o procedimento satisfaz
para determinar se uma formula e:
1. tautol ogica;
2. contradit oria;
3. contingente.
Como o leitor deve ter notado, a pseudolinguagem utilizada segue a linha conven-
cional de linguagens procedurais tipo C ou Pascal. Esta-se supondo a existencia, dentre
outros, dos tipos formula e booleano, este ultimo presente em todas (ou quase todas)
as linguagens de programa cao procedural convencionais. As palavras verdadeiro e falso
s ao usadas, na pseudolinguagem, para representar os dois valores booleanos. Por ex-
emplo, se tautol ogica()= verdadeiro, entao e uma tautologia, sen ao n ao e (neste
ultimo caso, tautol ogica()= falso).
Exemplo 29 A formula (pp), que expressa o princpio da n ao contradi cao restrito
`a vari avel proposicional p, e tautol ogica: a chamada tautol ogica((p p)) retorna
verdadeiro, ja que a chamada a satisfaz((pp)) resulta em fracasso. A arvore e-ou
correspondente est a exibida na Figura 2.26. Note que a unica computa cao possvel
para o procedimento n ao determinstico satisfaz resulta em fracasso: ints(r) = pp
Segue um exemplo mais elaborado ainda mostrando que uma certa formula e tau-
tologica. Evidentemente, assim como no exemplo anterior, toda computa cao possvel
do procedimento n ao determinstico satisfaz fracassa para a nega cao da formula.
Newton Jose Vieira Captulo 2: L ogica proposicional 57
1. Verica se e satisfatvel:
proc satisfazvel(formula ) retorna booleano:
vetor [variaveis] de |V, F valor;
procnd satisfaz(formula );
para cada variavel de faca
valor[] := vazio
mpara;
se satisfaz() resulta em sucesso entao
retorne verdadeiro
senao
retorne falso
mse
m satisfazvel
2. Verica se e falseavel:
proc falseavel(formula ) retorna booleano:
vetor [variaveis] de |V, F valor;
procnd satisfaz(formula );
para cada variavel de faca
valor[] := vazio
mpara;
se satisfaz() resulta em sucesso entao
retorne verdadeiro
senao
retorne falso
mse
m falseavel
Figura 2.24: Fun coes satisfatvel e falseavel.
58 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
1. Verica se e tautologia:
proc tautologica(formula ) retorna booleano:
vetor [variaveis] de |V, F valor;
procnd satisfaz(formula );
para cada variavel de faca
valor[] := vazio
mpara;
se satisfaz() resulta em sucesso entao
retorne falso
senao
retorne verdadeiro
mse
m tautologica
2. Verica se e contradicao:
proc contraditoria(formula ) retorna booleano:
vetor [variaveis] de |V, F valor;
procnd satisfaz(formula );
para cada variavel de faca
valor[] := vazio
mpara;
se satisfaz() resulta em sucesso entao
retorne falso
senao
retorne verdadeiro
mse
m contraditoria
3. Verica se e contingencia:
proc contingente(formula ) retorna booleano:
vetor [variaveis] de |V, F valor;
procnd satisfaz(formula );
para cada variavel de faca
valor[] := vazio
mpara;
se satisfaz() resulta em sucesso entao
para cada variavel de faca
valor[] := vazio
mpara;
se satisfaz() resulta em sucesso entao
retorne verdadeiro
mse
mse;
retorne falso
m contingente
Figura 2.25: Fun coes tautol ogica, contradit oria e contingente.
Newton Jose Vieira Captulo 2: L ogica proposicional 59
(p p)
p p

p p
Figura 2.26:

Arvore e-ou para satisfa cao de (p p).
[(p (q r)) (p q)]
p (q r) (p q))


>
>
>
>
>


p (q r) (q r) p
/
/
/
`
`
`
p q r
/
/
/
`
`
`
q r
/
/
/
`
`
`
(q r)
p
/
/
/
`
`
`

q r
q
/
/
/
`
`
`

p q
Figura 2.27:

Arvore e-ou para satisfa cao de [(p (q r)) ((p r) q)].
Exemplo 30 A formula (p (q r)) (p q) e uma tautologia. A arvore
e-ou da Figura 2.27 resume todas as tentativas de satisfazer a nega cao dessa formula.
Existem 6 computa coes possveis, e o calculo de ints(r) para a raiz r revela que todas
elas s ao de fracasso:
ints(r) = ppq(2), ppqr, pqqr(2), pqqrr
Logo, p (q r)) ((p r) q) e uma tautologia.
Muito algoritmos determinsticos, tanto para o problema da satisfabilidade, quanto
para prova autom atica, trabalham com formulas em uma forma normal, usualmente
forma normal conjuntiva ou forma normal disjuntiva. Por exemplo, o algoritmo DPLL
trabalha com formulas na forma normal conjuntiva. Seguem, entao, metodos para a
obten cao de tais formas normais.
Exerccios
60 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
1. Descubra, para cada formula a seguir, se ela e tautol ogica, contradit oria ou con-
tingente utilizando os procedimentos da Figura 2.25. Desenhe a arvore e-ou e
determine o conjunto ints para cada um dos tres procedimentos e cada uma das
formulas.
a) ( ) ( )
b) (p q) (p q) q
c) (p q) (q p)
d) (p q) (q p)
e) p (q p) q
2. Como demonstrar que usando o procedimento satisfaz? Exemplique
mostrando que (p q) p q.
2.3.8 Formas normais
O elemento b asico de uma formula nas formas normais a serem apresentadas e o literal.
Um literal e uma vari avel proposicional, 1, e neste caso diz-se que o literal e
positivo, ou a nega cao de uma vari avel proposicional, , para 1, e neste caso
diz-se que o literal e negativo. Se L e um literal, o complemento de L, denotado por L,
e se L = , e e se L = ( 1).
Deni cao 13 Uma f ormula e dita estar na forma normal da nega cao (FNN) se e ,
ou e constituda apenas de literais e (eventualmente) conectivos e/ou .
Para qualquer formula , existe uma formula logicamente equivalente na FNN. Para
obte-la, basta substituir as subf ormulas da esquerda das seguintes equivalencias pelas
da direita, enquanto possvel:
(a) elimina cao dos conectivos e :
(a.1)
(a.2) ( ) ( )
(b) internaliza cao da nega cao:
(b.1)
(b.2) ( )
(b.3) ( )
(c) tratamento de e :
(c.1)
(c.2)
(c.3)
Newton Jose Vieira Captulo 2: L ogica proposicional 61
(p q) ((q r) p)


p q (q r) p

p q

q r p

q r
Figura 2.28:

Arvore e-ou para (p q) ((q r) p).
(c.4)
(c.5)
(c.6)
O conjunto de equivalencias acima redunda em um conjunto de regras de re-escrita
que podem ser aplicadas n ao deteministicamente (ou seja, em qualquer ordem) com
garantia de conuencia para uma formula na FNN.
Deve-se notar que esse metodo produz uma formula na FNN que explicita a estrutura
e-ou da f ormula original, como exemplicado a seguir.
Exemplo 31 Seja a formula do Exemplo 27, (p q) ((q r) p). Uma formula
equivalente na FNN pode ser assim obtida:
(p q) ((q r) p)
(p q) ((q r) p) (a.1)
(p q) ((q r) p) (a.1)
(p q) ((q r) p) (b.3)
Na Figura 2.28 est a a arvore e-ou correspondente `a chamada de satisfaz passando esta
ultima formula como argumento.
Observe como ela e isomorfa `a arvore e-ou do Exemplo 27 para a formula original,
(p q) ((q r) p), mostrada na Figura 2.22. Em particular, os conjuntos ints(r)
para as raizes r das duas arvores e o mesmo, como se pode vericar.
Em geral, a arvore e-ou de uma formula na FNN n ao e exatamente isomorfa `a
arvore e-ou da formula original, mas ints(r) para as raizes r das duas arvores e o
mesmo, traduzindo o fato de que as computa c oes possveis em um caso e no outro s ao
essencialmente as mesmas.
Um outro aspecto importante e que, em geral, uma formula na FNN n ao possui
parenteses que especiquem precedencia para uma seq uencia de s ou de s. Com
isso, tem-se o que se denomina disjun coes e conjun coes generalizadas. Assim, por
exemplo, p
1
(q
1
q
2
(r
1
r
2
)) p
2
e uma conjun cao de tres subf ormulas: p
1
,
q
1
q
2
(r
1
r
2
) e p
2
. A segunda destas, por sua vez, e a disjun cao de tres subf ormulas:
q
1
, q
2
e r
1
r
2
. As identidades
62 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
(p q r) ((p r) (r p)) q


p q r (p r) (r p)
q

p q r

p r r p

`
`
`

p r

`
`
`

r p
Figura 2.29:

Arvore e-ou para FNN de (p (q r)) ((p r) q).
(b.2) ( )
(b.3) ( )
tornam-se (n 2):
(b.2

) (
1

2
. . .
n
)
1

2
. . .
n
(b.3

) (
1

2
. . .
n
)
1

2
. . .
n
A arvore e-ou e generalizada da forma obvia: agora os vertices e e ou podem ter mais
de dois lhos, um para cada subf ormula. Veja o pr oximo exemplo.
Exemplo 32 Seja a formula do Exemplo 28, = (p (q r)) ((p r) q), com
arvore e-ou para sua satisfa cao mostrada na Figura 2.23. Segue a obten cao de uma
formula equivalente na FNN:
(p (q r)) ((p r) q)
(p q r) ((p r) q) (b.2)
(p q r) (p r) q (b.2)
(p q r) ((p r) (r p)) q (a.2)
(p q r) ((p r) (r p)) q (b.2)
(p q r) ((p r) (r p)) q (a.1)
(p q r) ((p r) (r p)) q (b.3)
(p q r) ((p r) (r p)) q (b.1)
(p q r) ((p r) (r p)) q (a.1)
(p q r) ((p r) (r p)) q (b.3)
(p q r) ((p r) (r p)) q (b.1)
A arvore e-ou para satisfa cao desta ultima formula n ao e isomorfa `a da Figura 2.23,
mas leva ao mesmo conjunto de interpreta coes, que pode ser facilmente recuperado da
Figura 2.29. Pode-se dizer que a FNN obtida como mostrado anteriormente explicita
claramente a estrutura e-ou da formula original.
Newton Jose Vieira Captulo 2: L ogica proposicional 63
Existem duas outras nota coes que encontram aplica coes em in umeras circunstancias.
S ao as chamadas formas normais conjuntiva e disjuntiva. Para den-las, ser ao usados
os conceitos de cl ausula e de cl ausula conjuntiva. Uma clausula e uma disjun cao de
literais l
1
l
2
. . . l
k
, k 0. No caso em que k = 0, tem-se a denominada cl ausula
vazia, que ser a denotada por (e uma contradi cao). J a uma clausula conjuntiva e uma
conjun cao de literais l
1
l
2
. . . l
k
, k 0. No caso em que k = 0, tem-se a clausula
conjuntiva vazia, que ser a denotada por (e uma tautologia).
Algumas vezes e util, do ponto de vista pragmatico, ver (ou tratar) uma clausula
como um conjunto de literais, visto que clausulas com os mesmos literais s ao logica-
mente equivalentes. O mesmo para clausulas conjuntivas. Embora seja usada a nota cao
ja vista, elas ser ao tratadas aqui, por conveniencia, como conjuntos. Assim, por exem-
plo, p q e q p ser ao consideradas a mesma clausula.
Deni c ao 14 Uma f ormula e dita estar na forma normal conjuntiva (FNC) se for ,
ou da forma
1

2
. . .
n
, para n 1, sendo cada
i
uma cl ausula n ao vazia.
Aqui, novamente, a ordem das subf ormulas (clausulas) ser a considerada irrelevante.
Exemplo 33 S ao exemplos de formulas na FNC:
(n ao tem nenhuma clausula);
(uma clausula sem literais: a clausula vazia);
p (uma clausula de um literal);
p r (uma clausula de dois literais);
p q r (tres clausulas de um literal cada uma);
(p
1
r) q (r p
2
) (tres clausulas, uma de um literal e duas de dois literais).
Note que a primeira formula do exemplo anterior, , pode ser vista com uma
conjun cao de zero clausulas. E a segunda, , como uma conjun cao de uma unica
clausula: a clausula sem nenhum literal. Caso a formula na FNC contenha a clausula
vazia, n ao pode conter nenhuma outra clausula.
Para obter uma formula equivalente na FNC, basta obter uma na FNN e, em
seguida, usar a equivalencia logica a seguir, novamente substituindo a subf ormula da
esquerda pela da direita, enquanto possvel. Note que aqui ja est ao sendo utilizadas a
conjun cao e a disjun cao generalizadas. Alem disso, supoe-se, implicitamente, a comu-
tatividade de ambas, ou seja, a ordem dos termos a seguir, tanto da disjun cao quanto
da conjun cao, e irrelevante.

1

m
(
1

n
) (
1

m

1
) (
1

m

n
).
64 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
Esta e a lei distributiva da disjun c ao generalizada com rela cao `a conjun cao generalizada.
Quando n ao for mais possvel aplicar a transforma cao a formula estar a na FNC.
Exemplo 34 No Exemplo 32 obteve-se uma formula equivalente a
(p (q r)) ((p r) q)
na FNN, qual seja:
(p q r) ((p r) (r p)) q.
Segue a obten cao de uma formula equivalente na FNC aplicando-se, sucessivamente a
regra anterior:
(p (q r)) ((p r) q)
(p q r) ((p r) (r p)) q (pelo Exemplo 32)
(p q r) ((p r) r) ((p r) p) q
(p q r) (p r) (r r) (p p) (r p) q
Note que as clausulas r r e p p s ao tautol ogicas e, portanto, a formula obtida e
logicamente equivalente a (p q r) (p r) (r p) q.
Ao se transformar uma formula em uma equivalente na FNC, perde-se a estrutura
e-ou. Por outro lado, se a formula for uma tautologia, isso ir a transparecer claramente:
uma formula na FNC e uma tautologia se, e somente se, e ou toda clausula da mesma
contem um literal e seu complementar. Isso pode ser testado em tempo linear, mas o
problema de obter uma formula na FNC e exponencial no pior caso.
Observe, por outro lado, que pode-se obter interpreta coes que falseiam uma formula
a partir de uma equivalente na FNC: para cada clausula n ao tautol ogica l
1
l
2
. . . l
k
tem-se uma interpreta cao, aquela em que i(l
i
) = F, se l
i
for um literal positivo, ou
i(l
i
) = V , se l
i
for um literal negativo. Segue um exemplo.
Exemplo 35 No exemplo anterior, vericou-se que (pqr)(pr)(rp)q e
uma formula na FNC, sem clausulas tautol ogicas, equivalente a = p(qr))((p
r) q). Cada clausula d a uma interpreta cao que falseia , como dito anteriormente:
de p q r obtem-se i(p) = F, i(q) = V, i(r) = V ;
de p r obtem-se i(p) = F, i(r) = F; e
de r p obtem-se i(p) = V, i(r) = V .
Deni cao 15 Uma f ormula e dita estar na forma normal disjuntiva (FND) se for ,
ou da forma
1

2
. . .
n
, para n 1, sendo cada
i
uma cl ausula conjuntiva
n ao vazia.
Newton Jose Vieira Captulo 2: L ogica proposicional 65
Aqui, novamente, a ordem das subf ormulas (clausulas conjuntivas) ser a considerada
irrelevante.
Exemplo 36 S ao exemplos de formulas na FND:
(n ao tem nenhuma clausula conjuntiva);
(uma clausula conjuntiva sem literais: a clausula conjuntiva vazia);
p (uma clausula conjuntiva de um literal);
p r (uma clausula conjuntiva de dois literais);
p q r (tres clausulas conjuntivas de um literal cada uma);
(p
1
r) q (r p
2
) (tres clausulas conjuntivas, uma de um literal e duas de
dois literais).
Note que a primeira formula do exemplo anterior, , pode ser vista com uma
disjun cao de zero clausulas conjuntivas. E a segunda, , como uma disjun cao de
uma unica clausula conjuntiva: a clausula conjuntiva sem nenhum literal. Caso a
formula na FND contenha a clausula conjuntiva vazia, n ao pode conter nenhuma outra
clausula.
Para obter uma formula equivalente na FND, basta obter uma na FNN e, em
seguida, usar a equivalencia logica a seguir, substituindo a subf ormula da esquerda
pela da direita, enquanto possvel.

1

m
(
1

n
) (
1

m

1
) (
1

m

n
).
Exemplo 37 Segue a obten cao de uma formula equivalente `a do Exemplo 32,
(p (q r)) ((p r) q)
na FND aplicando-se a regra anterior:
(p (q r)) ((p r) q)
(p q r) ((p r) (r p)) q (pelo Exemplo 32)
[((p r) (r p)) q p]
[((p r) (r p)) q q]
[((p r) (r p)) q r]
(p r q p) (r p q p)
(p r q) (r p q)
(p r q r) (r p q r)
Note que h a 3 clausulas conjuntivas identicas e duas contradit orias e, portanto, a
formula obtida e logicamente equivalente a (p q r) (p q r).
66 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
Como no caso da FNC, ao se transformar uma formula em uma equivalente na
FND, perde-se a estrutura e-ou. Por outro lado, se a formula for uma contradi cao, isso
ir a transparecer claramente: uma formula na FND e uma contradi cao se, e somente se,
e ou toda clausula conjuntiva da mesma contem um literal e seu complementar. Isso
pode ser testado em tempo linear, mas o problema de obter uma formula na FND e
exponencial no pior caso.
Observe que, por outro lado, pode-se obter as interpreta c oes que satisfazem uma
formula obtendo-se uma formula equivalente na FND, sem clausulas conjuntivas con-
tradit orias, e, para cada clausula conjuntiva l
1
l
2
. . . l
k
, obtendo a interpreta cao
em que i(l
i
) = V , se l
i
for um literal positivo, ou i(l
i
) = F, se l
i
for um literal negativo.

E interessante notar que pode-se obter uma formula na FNC ou na FND a partir
de uma arvore e-ou. Na verdade o conjunto ints(r), sendo r a raiz, e a codica cao
de uma formula equivalente `a original na FND. Para ver isso, basta comparar os re-
sultados dos Exemplos 37 e 28. Conclusao: os algoritmos das Figuras 2.15 e 2.21, na
verdade, procuram, implicitamente, por alguma clausula conjuntiva n ao contradit oria
da FND. Com isso, um algoritmo determinstico simplorio baseado nos mesmos acaba
realizando, tambem implicitamente, o mesmo trabalho que o da transforma cao de uma
formula em uma equivalente na FND (parando ao encontrar uma clausula conjuntiva
n ao contradit oria).
Exerccios
1. Mostre como obter uma formula na FNC equivalente a uma dada formula a
partir de uma arvore e-ou para satisfa cao de .
2. Encontre formas normais disjuntiva e conjuntiva para as formulas:
a) ((p q) p) (p q)
b) (p q) (p r)
c) ((q r) p) (p q)
d) p (q (p r))
e) (q p) ((q p) q)
f) ((p q) p) p
3. Com base na resposta ao exerccio anterior, classicar cada formula dizendo se
ela e tautologia, contingencia ou contradi cao. Para contingencias, dizer que in-
terpreta coes satisfazem e que interpreta coes falseiam cada formula.
2.3.9 O algoritmo DPLL
A grande maioria dos algoritmos para o problema da satisfabilidade s ao baseados no
metodo DPLL, que leva esse nome gra cas aos pioneiros do mesmo, Davis, Putnam,
Logemann e Loveland, que o introduziram em 1962. Ele supoe a formula fornecida na
Newton Jose Vieira Captulo 2: L ogica proposicional 67
proc fncd(formula ) retorna formula na FNC:

:= formula equivalente a na FNN;


para cada subf(

) seja

como denido no texto;


seja a conjuncao de todas as formulas assim obtidas:
.para cada = 1 n subf(

):
(

1
) . . . (


n
);
.para cada = 1 n subf(

):

1
. . .
n
;
retorne


m fncd
Figura 2.30: FNC de Tseitin.
FNC. Como dito pelos dois primeiros, essa suposi cao e util e pr atica por dois motivos.
Primeiro, por descartar a complexidade estrutural das formulas em geral, permitindo
um tratamento relativamente simples do problema. Assim e que, por exemplo, para
se mostrar que uma formula na FNC e satisfatvel, basta escolher uma vari avel
qualquer, digamos p, e mostrar que
1
e satisfatvel ou
2
e satisfatvel, sendo
=
1

2
,
1
a conjun cao das clausulas que contem p e
2
a conjun cao das
clausulas que contem p. Em segundo lugar, como uma base de conhecimentos (nita)
pode ser vista como uma conjun cao de dezenas, centenas, milhares, . . . , de formulas,
pode-se coloca-la na FNC simplesmente transformando-se formula por formula, cada
uma relativamente pequena, sem o uso explosivo da multiplica cao distribuitiva (que
seria inevitavel na obten cao de uma FND).
Mesmo que, no caso geral, a obten cao de uma formula na FNC possa levar a uma ex-
plos ao combinat oria, existem atualmente trabalhos que mostram como evita-la atraves
da obten cao de uma formula na FNC n ao equivalente `a original, mas satisfatvel se, e
somente se, a original for satisfatvel. E tal obten cao e linear, tanto no tempo gasto
quanto em espa co, sendo conseguida `a custa da introdu cao de novas vari aveis proposi-
cionais. O procedimento da Figura 2.30, baseado em metodo de Tseitin, faz isso. No
algoritmo, para uma (sub)f ormula ,

= se e um literal, e

e uma vari avel nova


se n ao for um literal.
Exemplo 38 Seja a formula = (p q) ((p r) q). Uma formula equivalente
na FNN seria

= (p q) ((p r) q). Sejam:


= x
1
;

pq
= x
2
;

(pr)q
= x
3
;

pr
= x
4
.
O algoritmo da Figura 2.30 retorna a conjun cao das clausulas:
x
1
68 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
proc propague(formula na fnc ) retorna formula na fnc:
enquanto contem uma clausula unitaria L faca
:= resultado de remover de toda clausula que contem L
se = | entao retorne mse;
para cada clausula C de que contem L faca
C

:= C |L;
se C = | entao retorne mse;
:= resultado de substituir, em , C por C

mpara
menquanto;
retorne
m propague
Figura 2.31: Propaga cao por clausulas unit arias.
x
1
x
2
x
3
x
2
p
x
2
q
x
3
x
4
x
3
q
x
4
p r
O desempenho do algoritmo apresentado e de ordem polinomial no comprimento das
formulas. Assim, o problema da satisfabilidade para formulas em geral ca reduzido, em
tempo polinomial, ao da satisfabilidade para clausulas, o que aumenta a import ancia
dos metodos que funcionam para formulas em FNC, como os baseados em DPLL.
O algoritmo original do metodo DPLL tem dois componentes b asicos:
propaga cao pelas unit arias; e
escolha de literal a receber valor.
A propagac ao pelas unit arias e inspirada no fato de que uma cl usula unit aria (aquela
com um unico literal), L, for ca a atribui cao de V a i(L), se L for positivo, ou de F
a i(L), se L for negativo. Ao se fazer isso, toda clausula que contenha o literal pode
ser considerada como satisfeita e os literais complementares podem ser retirados das
clausulas restantes (ja que i(L = F). Esta ultima providencia pode fazer com que
apare cam novas clausulas unit arias, o que justica aplicar repetitivamente o processo
enquanto possvel. Tal processo, freq uentemente denominado BCP (de boolean con-
straint propagation), est a especicado no algoritmo da Figura 2.31.
Exemplo 39 Seja a formula na FNC que contem as seguintes clausulas:
1. p
1
Newton Jose Vieira Captulo 2: L ogica proposicional 69
2. p
1
p
2
3. p
1
q
1
4. p
1
r
5. p
1
q
1
r
6. p
2
r
7. p
2
q
1
q
2
8. q
1
q
3
A chamada propague() produz o seguinte comportamento: na primeira execu cao do
corpo do enquanto, e identicada a clausula unit aria L = p
1
; removendo de toda
clausula que contem p
1
, ela ca com as clausulas:
2. p
1
p
2
5. p
1
q
1
r
6. p
2
r
7. p
2
q
1
q
2
8. q
1
q
3
Em seguida, L = p
1
e eliminada das clausulas em que aparece, 2 e 5, cando com:
2

. p
2
5

. q
1
r
6. p
2
r
7. p
2
q
1
q
2
8. q
1
q
3
Como a clausula 2

e unit aria, o corpo do comando enquanto e executado uma segunda


vez, sendo inicialmente identicada L = p
2
; removendo de toda clausula que contem
p
2
, ela ca com as clausulas:
5

. q
1
r
7. p
2
q
1
q
2
8. q
1
q
3
Em seguida, L = p
2
e eliminada da clausula 7, cando com
5

. q
1
r
70 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
proc DPLL(formula na fnc ) retorna booleano:
:= propague();
se = entao
retorne verdadeiro
senaose = entao
retorne falso
mse;
L := escolha um literal em ;
se DPLL( L) entao
retorne verdadeiro
senao
retorne DPLL( L)
mse
m DPLL
Figura 2.32: O algoritmo DPLL para satisfabilidade.
7

. q
1
q
2
8. q
1
q
3
Como n ao h a mais clausula unit aria, o procedimento retorna a conjun cao das clausulas
5

, 7

e 8: (q
1
r) (q
1
q
2
) (q
1
q
3
).
O outro componente b asico e a escolha de literal a receber valor. Esse e o mesmo
tipo de escolha que se faz nos algoritmos sat e satf das Figuras 2.13 e 2.14 com rela cao a
vari aveis, que e n ao determinstica mas nunca leva a situa cao de fracasso. No algoritmo
DPLL original n ao e especicada nenhuma poltica especca de escolha; aqui tambem
n ao ser a. A escolha ser a expressa mediante o pseudocomando escolha um literal em
para enfatizar que a escolha do literal pode depender de caractersticas da formula
. Por outro lado, o n ao determinismo daqueles algoritmos relativo `a escolha do valor
V ou F n ao existira aqui. Primeiro, tenta-se atribuir o valor V ao literal, depois F,
como mostra a Figura 2.32.
Segue um exemplo bem simples de aplica cao do algoritmo.
Exemplo 40 Uma formula na FNC equivalente a (p (q r)) ((p r) q) foi
obtida no Exemplo 34, qual seja:
= (p q r) (p r) (r p) q.
O procedimento DPLL, com como argumento, come ca chamando propague, que
retorna a nova formula = (p r) (r p). Em seguida, escolhe um literal desta
ultima; suponha que seja L = p. Ocorre a chamada recursiva com argumento
= (p r) (r p) p
Ao ser chamado, o procedimento propague retorna na segunda itera cao de seu co-
mando enquanto, o que faz com que a chamada recursiva retorne verdadeiro, provo-
cando o retorno de verdadeiro para a formula inicial.
Note que, implicitamente, o algoritmo descobriu um modelo para a formula:
Newton Jose Vieira Captulo 2: L ogica proposicional 71
i(q) = F, pois a clausula unit aria q e usada na primeira chamada a propague;
i(p) = F, pois o literal p e escolhido, ou, o que d a no mesmo: a clausula unit aria
p e usada na segunda chamada a propague/primeira itera cao do enquanto;
i(r) = V , pois a clausula unit aria r e usada na segunda chamada a propague/segunda
itera cao do enquanto.
Segue um exemplo de aplica cao do algoritmo com uma formula insatisfavel, tambem
bastante simples.
Exemplo 41 Para provar que (p q) (p q) (p q) e tautologia, basta provar
que ((p q) (p q) (p q)) e contradit oria, ou seja, e insatisfatvel. Obtendo
uma formula na FNC equivalente:
((p q) (p q) (p q))
((p q) (q p) (p q) (p q))
((p q) (q p) (p q) (p q))
(p q) (q p) (p q) (p q))
(p q) (q p) (p q) (p q)
Come cando o DPLL com
= (p q) (q p) (p q) (p q),
propague() retorna a pr opria , visto que esta n ao tem clausula unit aria. Em seguida,
DPLL escolhe um literal. Suponha que seja L = p. Ocorre a chamada recursiva de
DPLL com
= (p q) (q p) (p q) (p q) p.
Agora, o algoritmo propague retorna . Com isto, o DPLL aciona a outra chamada
recursiva com
= (p q) (q p) (p q) (p q) p.
Neste caso, tambem, o algoritmo propague retorna . E o DPLL, entao, retorna falso,
signicando que a formula (p q) (q p) (p q) (p q) e insatisfatvel.
Como ja ressaltado anteriormente, clausulas tautol ogicas podem ser eliminadas sem
afetar a equivalencia logica da formula obtida com a original. Dessa forma, antes de
submeter uma formula na FNC ao algoritmo, pode-se simplesmente eliminar todas as
clausulas tautol ogicas. Um outro tipo de elimina cao, alias presente no DPLL original,
e o de clausulas com literais puros. Um literal L que ocorra em uma formula na FNC
e dito puro se n ao existe clausula de que contenha L. Uma clausula com literal puro
pode ser eliminada sem afetar a satisfabilidade. A explica cao e que, se L ocorre em e
L n ao, ao fazer v
i
(L) = V , toda clausula em que ocorre L e satisfeita; e removendo-se
72 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
tais clausulas, obtem-se uma formula sem o literal L. Isso pode ser feito, n ao apenas
antes de submeter a formula ao algoritmo, como no caso das clausulas tautol ogicas,
mas tambem ap os a elimina cao de clausulas e literais de clausulas durante a aplica cao
do algoritmo. A efetividade disso depende das caractersticas da formula recebida como
argumento (indiretamente, da aplica cao).
A escolha do literal, n ao determinstica no algoritmo apresentado, e muito impor-
tante para se conseguir implementa coes mais ecientes, tendo sido objeto da proposi cao
de varios tipos heursticas.
O algoritmo da Figura 2.32 tem uma implementa cao (recursiva ou n ao) em que a
busca propiciada pelas atribui coes tentativas a literais escolhidos e realizada mediante
backtracking. Uma implementa cao simples utiliza um backtracking cronol ogico padrao:
se a chamada DPLL(L) retorna falso, recupera-se o estado imediatamente antes da
chamada e procede-se `a chamada DPLL( L). Isso e o que provoca um desempenho
exponencial com rela cao a tempo gasto. Muitos trabalhos tem sido feitos ultimamente
para utilizar metodos de backtracking inteligentes.
Nesta se cao foi apresentado o algoritmo DPLL b asico. Existem varias vers oes desse
algoritmo que, como dito acima, incorporam estruturas e heursticas no intuito de
melhorar o desempenho do mesmo, pelo menos para classes especcas de aplica coes.
A seguir, ser a apresentada a no cao de conseq uencia logica, que modela as situa coes
em que se pode dizer que uma proposi cao segue (logicamente) de um conjunto de
proposi coes assumidas como verdadeiras.

E baseado nessa no cao que se pode denir o
que segue de uma base de conhecimento de forma que se possa depois, no nvel formal,
trabalhar com base em um sistema dedutivo para realizar inferencias. Este ultimo,
de qualquer forma, s o pode ser avaliado, quanto a corre cao e completude, a partir da
deni cao de conseq uencia logica.
Exerccios
1. Modique o algoritmo DPLL para que seja determinado um modelo da formula,
caso exista algum. Dica: Observe o nal do Exemplo 40.
2. Modique o algoritmo DPLL para que fa ca a elimina cao de clausulas com literais
puros.
2.4 Conseq uencia logica
A seguir, ser a abordado o conceito de conseq uencia logica, que explicita o que sig-
nica dizer que uma certa proposi cao segue necessariamente de um conjunto de outras
proposi coes.
Deni cao 16 Uma f ormula e uma conseq uencia logica de um conjunto de f ormulas
H (ou H implica logicamente ), H [= , se, e somente se, para qualquer i, v
i
() = V
se para toda H v
i
() = V .
Newton Jose Vieira Captulo 2: L ogica proposicional 73
Em outras palavras, H [= se, e somente se, todo modelo para H e modelo para
. Em particular, observe que H [= para todo H T e toda tautologia ; assim,
por exemplo, H [= para todo H T e [= para toda tautologia . Alem disso,
se n ao existir modelo para H, qualquer formula ser a conseq uencia logica de H.
Exemplo 42 As unicas interpreta coes i que satisfazem pq (ou seja, os unicos modelos
para p q) s ao aquelas em que i(p) = i(q) = V . E, neste caso, v
i
(p) = V , v
i
(q) = V ,
v
i
(p q) = V , v
i
(p q) = V , o que permite concluir, respectivamente que:
p q [= p;
p q [= q;
p q [= p q;
p q [= p q.
Analisando-se as tabelas da verdade, ve-se que sempre que v
i
(p) = V , segue-se que
v
i
(p q) = V , v
i
(q p) = V e v
i
(q p) = V . Logo:
p [= p q;
p [= q p;
p [= q p.
A seguir apresenta-se dois exemplos de padroes de inferencia classicos da logica
matem atica, mostrando-se, assim, que eles s ao semanticamente corretos.
Exemplo 43 Um modelo i para p q, p e tal que v
i
(p) = V e v
i
(p q) = V .
Disso, segue-se que v
i
(q) = V . Portanto, p q, p [= q. Assim, dado que p q e
p sejam verdadeiras, q e necessariamente verdadeira! Na verdade, raciocnio an alogo
mostra um resultado mais geral: , [= para quaisquer f ormulas e . Isto
corrobora uma das regras de inferencia mais utilizadas em demonstra coes de teoremas:
a regra modus ponens. Esta regra diz: se forem deduzidas as formulas e , entao
pode-se deduzir a formula .
De maneira similar, tem-se a regra modus tollens, que permite concluir a partir
de e . Esta regra e corroborada pelo fato de que , [= .
O conectivo logico tem uma estreita rela cao com conseq uencia logica, rela cao
esta expressa pelo teorema a seguir.
74 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
Teorema 5 H [= se, e somente se, H [= .
Prova
() Suponha que H [= . Seja um modelo m para H. Basta mostrar que
v
m
( ) = V . Dois casos:
Caso 1. v
m
() = V . Entao m e tambem modelo para H e, como H [= ,
v
m
() = V . Como se v
m
() = V , entao v
m
() = V , segue-se que v
m
( ) = V .
Caso 2. v
m
() = F. Neste caso, fb

(v
m
(), v
m
()) = V e, portanto, v
m
( ) = V .
() Suponha que H [= . Seja um modelo m para H . Basta mostrar
que v
m
() = V . Sendo m um modelo para H, m e modelo para H. Assim, como
H [= , v
m
( ) = V . Como v
m
() = V , segue-se destas duas ultimas que
v
m
() = V .
Observe, em particular, que se H = , entao [= se, e somente se, [= ,
ou seja [= se, e somente se, e uma tautologia.
Exemplo 44 Para mostrar que q [= p q, basta mostrar que q (p q) e uma
tautologia, o que pode ser feito assim:
q (p q) q (p q) [ ]
q (p q) [ ]
q (q p) [ ]
(q q) p [ ( ) ( ) ]
p [ ]
[ ]
Exemplo 45 Qualquer formula da forma ( )( ) ( ) e tautol ogica.
Segue-se, pelo teorema anterior, que ( ) ( ) [= . Disto, segue-se
tambem que , [= . Isto corrobora a chamada regra do silogismo
hipotetico: de e , pode-se deduzir .
Dadas duas formulas e , se [= , nem sempre [= . A rela cao entre
conseq uencia e equivalencia logicas e dada por:
se, e somente se, [= e [= .
Formulas da forma s ao tautologias. Logo, pelo Teorema 5, segue-se que H
[= , para qualquer formula . Notando-se que , para qualquer contradi cao
, ve-se que qualquer formula e conseq uencia logica de um conjunto de formulas que
contenha uma contradi cao!
Propriedades bastante intuitivas da conseq uencia logica, utilizadas no dia a dia
quando se demonstra teoremas s ao (H T e , T):
Newton Jose Vieira Captulo 2: L ogica proposicional 75
H [= para toda . Ou seja, qualquer formula e conseq uencia de um
conjunto de formulas que a contem.
Se H [= e H [= , ent ao H [= . Ou seja, se uma formula e conseq uencia
de um conjunto de formulas H acrescido de uma formula , sendo conseq uencia
do conjunto H, segue-se que e conseq uencia de H.
Se H [= , entao H [= . Ou seja, ao se acrescentar novas formulas a
um conjunto, toda armativa que era conseq uencia antes do acrescimo continua
sendo conseq uencia ap os o acrescimo. Uma logica para a qual esta propriedade
se verica e dita ser monot onica.
Exerccios
1. Mostre que:
a) [= ( ) para toda T.
b) p [= p q
c) p (q r) [= p r
d) p q, q) [= p
e) p q, p, q) [= r
2. Para os pares de formulas a seguir, descubra se s ao logicamente equivalentes, ou
se uma e conseq uencia logica da outra.
a) (p r) (q r) e (p q) r
b) (p r) (q s) e (p q) (r s)
c) (p r) (q s) e (p q) (r s)
d) p q e (p q) (p q)
3. Seguem alguns argumentos expressos em portugues. Expresse-os em logica proposi-
cional. Depois verique se os mesmos s ao corretos usando o conceito de con-
seq uencia logica.
a) Se eu ganhei na megasena, entao sou rico. Eu n ao ganhei na megasena.
Logo, n ao sou rico.
b) Se n ao chover, a ro ca n ao produz e o pasto seca. Se o pasto seca, o gado n ao
resiste. Portanto, se n ao chover, o gado n ao resiste.
c) Jo ao ser a absolvido ou condenado. Se for absolvido, ser a porque a teste-
munha mentiu. Mas a testemunha n ao mentiu. Portanto, Jo ao ser a conde-
nado.
76 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
d) Se Deus e todo-poderoso e innitamente bom, entao n ao existe o diabo.
Deus e todo-poderoso e existe o diabo. Portanto, Deus n ao e innitamente
bom.
e) Se voce come demais, acaba cando obeso. Se faz exerccio fsico todo dia,
ca bem condicionado. E se n ao e obeso e e bem condicionado, n ao adoece
com facilidade. Mas voce adoece com facilidade. Portanto, voce come demais
e n ao faz exerccio fsico todo dia.
4. Suponha que voce tem algoritmos para determinar, para uma formula qualquer,
se ela e:
a) tautologia;
b) contradi cao;
c) satisfatvel;
d) falseavel.
Explique como voce poderia utilizar cada um desses quatro algoritmos para de-
terminar, dados um conjunto nito de formulas H e uma formula , se H [= .
5. Uma abordagem para demonstra cao autom atica, alternativa ao metodo dedutivo
a ser apresentado na pr oxima se cao, e baseada em vericar se um conjunto de
formulas tem ou n ao um modelo. A abordagem e justicada pelo fato de que:
H [= se, e somente se H [=
ou melhor:
H [= se, e somente se H n ao tem um modelo.
Suponha que um algoritmo determine um modelo para H . Como tal
modelo pode ser usado para justicar que H ,[= ?
2.5 Deducao
Como dito na Se cao 2.1, um argumento envolve armar que uma certa proposi cao e ver-
dadeira caso todas as proposi coes de certo conjunto sejam (consideradas) verdadeiras.
Um argumento e modelado pela arma cao de que certa formula (a conclusao) e con-
seq uencia logica de um conjunto de formulas (as premissas). Assim, considere a seguir
um argumento como sendo a arma cao de que certa formula e conseq uencia logica de
um conjunto de formulas.
Um argumento que diz que e conseq uencia logica de
1
,
2
, . . . ,
n
e correto
se, e somente se,
1
,
2
, . . . ,
n
[= e, portanto, se (
1

2
. . .
n
) e uma
tautologia. Um argumento correto e dito tambem ser valido, legtimo. Um argumento
incorreto e dito tambem ser invalido, ilegtimo, um sosma.
Newton Jose Vieira Captulo 2: L ogica proposicional 77
Como ja foi dito, a no cao correspondente a conseq uencia logica no nvel formal e
a de dedu cao. Assim, um argumento formal e a arma cao de que certa formula (a
conclusao) pode ser diretamente deduzida a partir de um conjunto de formulas (as
premissas). Tal tipo de argumento e expresso mediante o que se denomina uma regra
de inferencia.
Assim, uma regra de inferencia e uma arma cao de que uma dada formula , a
conclus ao, segue diretamente de outras formulas
1
,
2
,. . . ,
n
, as premissas. Para
denot a-la utiliza-se a nota cao (a ordem das premissas e irrelevante):

2
.
.
.

Para se qualicar como uma regra de inferencia, o argumento correspondente deve ser
correto.
A seguir ser ao apresentados varios tipos de sistemas dedutivos, cada um mais ade-
quado em um determinado contexto. Antes, porem, ser ao apresentadas varios exemplos
de regras de inferencia passveis de serem utilizadas, inclusive, em sistemas computa-
cionais, assim como exemplos de dedu coes usando tais regras.
2.5.1 Exemplos de regras de inferencia e deducoes
Seguem varios exemplos de regras de inferencia, passveis de serem usadas, tanto em
sistemas computacionais quanto em demonstra coes informais:
1. Adic ao (AD): 2. Simplica c ao (SIMP):


3. Conjunc ao (CONJ): 4. Modus ponens (MP):



5. Modus tollens (MT): 6. Silogismo disjuntivo (SD):



7. Silogismo hipotetico (SH): 8. Dilema construtivo (DC):




78 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
Deni cao 17 Seja uma f ormula e H um conjunto de f ormulas. Ent ao, e dedutvel
a partir de H, H , se existe uma seq uencia de f ormulas
1
,
2
, . . . ,
n
tal que
n
e
e cada
i
e uma f ormula de H ou o resultado da aplica c ao de uma regra de inferencia
com premissas antes de
i
. A seq uencia
1
,
2
, . . . ,
n
e uma dedu cao de .
Sendo as regras de inferencia argumentos validos, tem-se que: se H , ent ao
H [= .
Exemplo 46 A dedu cao a seguir mostra que p q, (p r) s p s e, portanto,
pq, (pr) s [= ps. Cada formula da dedu cao recebe um n umero para posterior
referencia.
`
A direta de cada formula e anotado, entre parenteses, como ela foi obtida:
a regra de inferencia utilizada e os n umeros das premissas. As primeiras formulas, que
recebem a anota cao H, s ao as hip oteses.
1. p q (H)
2. (p r) s (H)
3. p (SIMP 1)
4. p r (AD 3)
5. s (MP 2,4)
6. p s (CONJ 3,5)
Segue mais um exemplo.
Exemplo 47 A dedu cao a seguir mostra que
q (r
1
r
2
), q s, s (r
2
p), s r
1
p
e, portanto, q (r
1
r
2
), q s, s (r
2
p), s [= r
1
p.
1. q (r
1
r
2
) (H)
2. q s (H)
3. s (r
2
p) (H)
4. s (H)
5. q (MT 2,4)
6. r
1
r
2
(SD 1,5)
7. r
2
p (MP 3,4)
8. r
1
p (SH 6,7)
Uma no cao importante relativamente a dedu coes e a de consistencia. Um conjunto
de formulas H T e dito inconsistente se, e somente se, H . Um resultado
importante, ja aludido na Se cao 2.4, e que qualquer formula pode ser deduzida de
uma contradi cao (direta ou indiretamente, dependendo do sistema dedutivo especco
utilizado). Ou seja, se H e inconsistente, entao H para toda T. Ou ainda,
o conjunto de todas as formulas dedutveis a partir de um conjunto inconsistente e o
conjunto T (considerando-se, evidentemente, um sistema dedutivo correto e completo).
Newton Jose Vieira Captulo 2: L ogica proposicional 79
Exerccios
1. Encontre dedu coes que demonstrem as conseq uencias a seguir. Para isto, use as
regras de inferencia vistas nesta se cao.
a) p q, p, q r [= r.
b) p q, (q r
1
) (r
2
s), p [= s.
c) p q, r p, r s, s [= q.
d) p (q r), p r, r [= q.
e) (p s
1
) (q s
2
), (p r
1
) (s
2
s
3
), p r
3
[= q s
3
.
f) p (q r), s (r p), p s, s [= q.
2.5.2 Sistema dedutivo do tipo Hilbert
Observe que se o sistema dedutivo s o contem regras de inferencia baseadas em argumen-
tos corretos, ele e correto (n ao deduz formulas que n ao sejam conseq uencias logicas).
Da, as conclusoes expostas nos exemplos anteriores. Agora o outro lado: existe um
conjunto de regras de inferencia tal que
se H [= , entao H ?
Ou seja, existe um sistema dedutivo completo? Uma primeira coisa a se observar, e
que toda tautologia deve ser dedutvel, ja que [= .
Como mencionado anteriormente, um sistema dedutivo e composto de dois tipos de
entidades, alem de uma linguagem:
regras de inferencia; e
axiomas l ogicos: formulas que podem fazer parte de uma dedu cao sem serem
deduzidas.
A primeira coisa a se notar e que um axioma logico, , deve ser uma tautologia, ja que se
, entao deve-se ter que [= . Uma segunda observa cao importante e que podem
existir (e, na verdade, existem) m ultiplos sistemas dedutivos completos. Alguns podem
se basear em mais regras de inferencia e menos axiomas e outros em menos regras e
mais axiomas. Uma terceira observa cao e que os axiomas sao normalmente especicados
mediante o que se denomina esquema de axioma; por exemplo, um esquema de axioma
presente em alguns sistemas dedutivos e o esquema:
( ).
Este esquema representa um conjunto innito de axiomas, um axioma para cada par
de formulas e . Uma ultima observa cao, e que um esquema de axioma pode ser
visto como uma regra de inferencia sem premissas. Por exemplo, o esquema anterior
pode ser visto como a regra:
80 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
( )
Apenas para dar um exemplo de sistema dedutivo correto e completo para a logica
proposicional, ser a apresentado o seguinte sistema com tres esquemas de axiomas e
uma regra de inferencia:
8
Se , e s ao formulas, entao s ao axiomas:
Ax1: ( )
Ax2: ( ( )) (( ) ( ))
Ax3: ( ) [( ) ]
Regra de inferencia: modus ponens.
Evidentemente este sistema dedutivo aproveita o fato de que o conjunto de conectivos
, e completo, dadas as seguintes equivalencias:

( )
( ) ( ) (( ) ( ))
Esse sistema dedutivo que acaba de ser apresentado e o que se denomina um sistema
do tipo Hilbert, sendo de interesse principalmente teorico, n ao sendo adequado para
servir de base para processamento em computadores. Na verdade, obter uma dedu cao
utilizando um sistema dedutivo do tipo Hilbert pode ser uma tarefa muito penosa,
mesmo para um ser humano, e a dedu cao resultante pode n ao ser nada legvel (embora
correta). Segue um exemplo.
Exemplo 48 A seguinte dedu cao mostra que p p:
1. (p ((p p) p)) ((p (p p)) (p p)) (Ax2)
2. p ((p p) p) (Ax1)
3. (p (p p)) (p p) (MP 1,2)
4. p (p p) (Ax1)
5. p p (MP 3,4)
A partir do sistema dedutivo anterior, e possvel derivar novas regras de inferencia
que podem facilitar (para um ser humano) enormemente o trabalho de obter uma
dedu cao. As regras mostradas ate agora, incluindo a de modus ponens, s o permitem
inferencias diretas, ou seja, a partir de certas formulas ja deduzidas. Um outro tipo
de regra de inferencia e aquela que permite deduzir formulas com base tambem em
formulas supostas temporariamente em trechos de (sub)dedu coes. Por exemplo:
8
Este sistema dedutivo foi tomado emprestado de Mendelson, E. Introduction to Mathematical Logic,
3rd edition, Wadsworth & Brooks/Cole, 1987, pagina 29.
Newton Jose Vieira Captulo 2: L ogica proposicional 81

.
.
.


Esta regra, cujo nome ser a I (por motivo a ser esclarecido mais adiante) diz que para
deduzir uma formula da forma , basta supor como uma hip otese adicional,
e provar . Note que ap os a dedu cao de , a suposi cao deixa de existir (e
descartada); isso pode ser ressaltado em uma dedu cao colocando-se as formulas, desde
a suposi cao ate a formula dentro de uma caixa, como sugerido na regra, caixa esta
que constitui o escopo em que a suposi cao pode ser usada como premissa.
O teorema a seguir, apresentado sem prova, justica essa regra. Ele e denominado
teorema da deduc ao.
Teorema 6 Sejam , T e H T. Tem-se: se H , ent ao H .
Este teorema segue do teorema 5 e do teorema da completeza da logica proposi-
cional (considerando-se qualquer um dos in umeros sistemas dedutivos para a mesma),
enunciado a seguir.
Teorema 7 (Teorema da Completeza) Sejam H T e T. H se, e somente
se H [= .
Exemplo 49 Segue uma dedu cao que mostra que p (q r), q p r sem usar
a regra de inferencia I :
1. p (q r) (H)
2. q (H)
3. (p (q r)) ((p q) (p r)) (Ax2)
4. (p q) (p r) (MP 1,3)
5. q (p q) (Ax1)
6. p q (MP 2,5)
8. p r (MP 4,6)
Agora, outra usando a nova regra:
1. p (q r) (H)
2. q (H)
3. p (suposi cao)
4. q r (MP 1,3)
5. r (MP 2,4)
6. p r (I 35)
A seguir ser a apresentado um sistema dedutivo que usa regras de inferencia mais
naturais do ponto de vista humano. Elas s ao as corespondentes formais do que se usa
normalmente em demosntra coes de teoremas.
82 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
2.5.3 Deducao natural
Em sistemas de deduc ao natural , o conjunto de axiomas e vazio e a cada conectivo
s ao associadas certas regras de inferencia que propiciam a introdu cao e a elimina cao
do conectivo. Ao contr ario dos sistemas tipo Hilbert, estes levam a dedu coes mais
inteligveis para o ser humano, embora n ao sejam adequados, novamente, para servir
como base para automa cao do processo dedutivo. Seguem as regras de um sistema de
dedu cao natural completo:
Conectivo :
Introdu cao (I):


Elimina cao (E
1
e E
2
):


Conectivo :
Introdu cao (I
1
e I
2
):


Elimina cao (E):

1

2

1
.
.
.

2
.
.
.

Conectivo :
Introdu cao (I):

.
.
.


Elimina cao (E):

Conectivo :
Newton Jose Vieira Captulo 2: L ogica proposicional 83
Introdu cao (I):

.
.
.

Elimina cao (E):


Conectivo :
Elimina cao (E):

Dupla nega cao:


Elimina cao (E):

Para lidar com , basta substituir pela equivalente ( ) ( ), e


para lidar com , basta substitu-la por . Por outro lado, note que varias regras
correspondem a regras anteriormente enunciadas com outros nomes:
E
1
e E
2
correspondem a SIMP;
I corresponde a CONJ;
I
1
e I
2
correspondem a AD;
E corresponde a MP.
Varias outras regras podem ser enunciadas que tambem podem ser uteis para a demon-
stra cao de teoremas, como as outras explicitadas no incio da se cao.
Exemplo 50 A seguite dedu cao mostra que p q p q:
1. p q (H)
2. p (suposi cao)
3. p (suposi cao)
4. (E 2,3)
5. q (E 4)
6. p q (I 35)
7. q (suposi cao)
8. p (suposi cao)
9. q (7)
10. p q (I 89)
11. p q (E 1,26,710)
84 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
A seguir ser ao enfatizados os papeis de algumas regras de inferencia utilizadas por
uma pessoa durante demonstra coes (informais) de teoremas.
Na verdade, durante o processo de obten c ao de uma demonstra cao de teorema, uma
regra de inferencia pode ser utilizada de duas formas diferentes:
Para propiciar a inferencia de uma armativa a partir de hip oteses e/ou ar-
mativas previamente deduzidas.
Para prover uma estrategia para a dedu cao de uma certa armativa: tentar de-
duzir as premissas de certa regra de inferencia que conclua a armativa que se
deseje provar.
Permeando o uso das regras de inferencia destas duas formas, pode-se tambem utilizar
equivalencias logicas. Por exemplo, para provar uma armativa da forma
9
basta
provar uma das seguintes armativas equivalentes: , ( ) etc.
Seguem exemplos de estrategias de prova importantes, juntamente com regras de
inferencia que as justicam.
Prova de uma conjuncao
Regra de inferencia: I.
Estrategia: para deduzir , dividir a prova em duas partes; em uma delas
provar , e na outra provar (em qualquer ordem).
Em geral, se for da forma
1

2

n
, n 2, a prova e dividida em n partes,
cada uma para provar um
i
.
Prova direta
Regra de inferencia: I.
Estrategia: para deduzir , supor e provar .
Exemplo: Suponha que se queira provar, para um certo n umero natural n, que
se n e par, entao n
2
e par. Esta armativa e da forma , em que e
uma formula atomica que represente n e par e e uma formula atomica que
represente n
2
e par. Usando a estrategia da prova direta, a demonstra cao
come ca assim: Suponha que n e par. Em seguida, basta provar que n
2
e par. No
nal, ap os provar que n
2
e par, pode-se concluir, entao: se n e par, ent ao n
2
e
par.
Prova indireta (ou prova pela contrapositiva)
9
Voce ja notou que a maioria das armativas a serem provadas tem, implcita ou explicitamente,
esta forma?
Newton Jose Vieira Captulo 2: L ogica proposicional 85
Regra de inferencia:

.
.
.


Estrategia: para deduzir , supor e provar .
Exemplo: Suponha que se queira provar, para um certo n umero natural n, que
se n
2
e par, entao n e par. Esta armativa e da forma , em que e
uma formula atomica que represente n
2
e par e e uma formula atomica que
represente n e par. Usando a estrategia da prova indireta, a demonstra cao
come ca assim: Suponha que n n ao e par (ou seja, n e mpar). Em seguida, basta
provar que n
2
n ao e par (ou seja, n
2
e mpar). No nal, ap os provar que n
2
n ao
e par, pode-se concluir, entao: se n
2
e par, ent ao n e par.
Observe que a estrategia de prova indireta para nada mais e do que a estrategia
de prova direta para , e que .
Prova por contradicao (ou prova por redu cao a absurdo)
Regra de inferencia:

.
.
.

Estrategia: para deduzir , supor e provar .


Pela regra que justica a prova direta, supondo-se e provando-se , pode-se concluir
. Mas . Logo, pode-se realmente concluir que . Observe
ainda que e uma contradi cao, portanto logicamente equivalente a qualquer outra
contradi cao. Assim, na verdade n ao h a a necessidade de deduzir especicamente ;
basta deduzir uma contradi cao qualquer! Uma maneira de usar esta estrategia e supor
e provar ; conseguindo-se, conclui-se que h a uma contradi cao ( ), o que
permite concluir . Note que isto e coerente com o fato de que se se supor e
se provar , entao, pela regra da estrategia direta (I), conclui-se ; mas,
! Utilizando-se a no cao de inconsistencia, anteriormente introduzida,
uma outra maneira de enunciar essa estrategia de prova e: para deduzir a partir de
H, basta vericar se H e inconsistente; se for, concluir .
Prova por casos
86 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
Regra de inferencia: E.
Estrategia: para deduzir , deduza, antes uma disjun cao
1

2
; em seguida,
divida o resto da demonstra cao em 2 casos, um para cada termo da disjun cao:
no caso 1, supor
1
e provar ; no caso 2, supor
2
e provar .
Algumas vezes pode-se usar como disjun cao uma tautologia. Por exemplo, para provar
que um certo n umero n tem uma propriedade P, basta considerar dois casos: (1) supor
que n e par e provar que, neste caso, n tem a propriedade P; e (2) supor que n n ao e
par (e mpar) e provar que, neste caso, n tem tambem a propriedade P. Este raciocnio
e correto, visto que p p e tautol ogica, sendo p usada para representar a proposi cao
n e par.
Das estrategias descritas anteriormente, duas delas podem ser consideradas para
aplica cao com qualquer tipo de formula: a prova por contradi cao e a prova por casos. As
outras s ao aplic aveis quando o conectivo principal da formula e um conectivo especco:
Conectivo : prova de uma conjun cao.
conectivo : prova direta ou indireta.
E se o conectivo principal for , ou , que estrategias podem ser usadas alem das
provas por contradi cao ou por casos? Nestes casos, as estrategias principais continuam
sendo as anteriores, s o que antes de aplic a-las, deve-se utilizar (nem que implicitamente)
alguma equivalencia logica. Isto pode ser feito, dadas as seguintes regra de inferencia
(ja que se, e somente se, e tautologia):


Com rela cao ao conectivo , se ele n ao e o unico conectivo da formula, uma pos-
sibilidade e mover o conectivo para dentro da formula antes de prova-la, usando as
equivalencias conhecidas e, depois, usar uma estrategia dependente do novo conectivo
principal. Por exemplo, para provar ( ), basta provar , ou seja, pela
estrategia da prova de uma conjun cao, basta dividir a prova em duas partes, provando
em uma e em outra.
Se o conectivo principal for , para provar , como , basta
provar usando a prova direta ou indireta. Em particular, se e da forma

1

2

n
, n 2, usando-se a prova direta basta supor
1

2

n
e provar .
Ainda se o conectivo principal for , existe uma estrategia similar `a prova por casos
para provar : dado que uma armativa
1

2
seja dedutvel, basta provar
1

e que
2
. Se a disjun cao envolver mais de dois termos, ou seja, se for da forma

2

n
, a estrategia seria: caso
1

2

k
seja dedutvel, para cada i,
1 i k, provar
i

j
para algum 1 j n.
Finalmente, se o conectivo for , para provar , basta provar ( ) (
), ja que ( ) ( ).
Newton Jose Vieira Captulo 2: L ogica proposicional 87
`
As vezes, deve-se provar que varias armativas s ao logicamentes equivalentes entre
si, ou seja, deve-se mostrar que H
1

2
. . .
n
, n 3. Como
1

2

. . .
n
(
1

2
) (
2

3
) (
n1

n
) (
n

1
), uma estrategia
econ omica e fazer a prova em n etapas: provar (1)
1

2
, (2)
2

3
, . . . , (n 1)

n1

n
, (n)
n

1
.
Exerccios
1. Encontre dedu coes, utilizando o sistema dedutivo de dedu cao natural, que demon-
strem:
a) p q p
b) p q p q
c) p (q p)
d) p q, q r p r
e) p (q r) p q r
2. Resolva o Exerccio 1 da Se c ao 2.5.1 usando o sistema de dedu cao natural.
3. Especique uma estrategia para provar armativas da forma , em que
deve ser interpretado como ou exclusivo.
4. Generalize a estrategia de prova por casos para que ela possa usar n casos em vez
de apenas dois, n 2. Como seria a regra de inferencia que a justica?
2.5.4 Tableau analtico
Um outro tipo de sistema dedutivo, este sim, `as vezes utilizado para implementa cao
em computadores, e o de tableau analtico. Pode-se dizer que esse tipo de sistema e
o correspondente formal do processamento em nvel conceitual que e feito pelo par de
procedimentos satisfaz/falseia das guras 2.15 e 2.16 ou pelo procedimento satisfaz da
Figura 2.21. O correspondente ao citado par e o tableau com formulas marcadas, e
o correspondente ao outro e o tableau com formulas n ao marcadas, como ser a visto a
seguir. Em ambas, a arvore e-ou de computa coes possveis e substituda por uma arvore
de dedu coes possveis, de forma que dedu coes de subf ormulas contradit orias evidenciem
a impossibilidade de satisfazer a formula pelo caminho indicado pela dedu cao.
Um tableau pode ser visto como uma forma de obter e estruturar uma formula
equivalente `a inicial na FND. Ele e uma arvore em que os vertices tem formulas como
r otulos, de forma que as subf ormulas imediatas de uma formula que rotula um vertice
v rotulam vertices descendentes de v (n ao necessariamente imediatos) de acordo com
uma regra para cada conectivo. Tais regras s ao tais que, sendo aplicadas ate n ao ser
mais possvel, os literais que comp oem cada ramo da arvore obtida constituem uma
clausula conjuntiva da FND. Com isto, a formula e insatisfatvel se, e somente se, cada
ramo contem literais complementares. Na terminologia usual, um ramo de um tableau
88 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
que contenha formulas complementares e dito ser um ramo fechado. E um tableau e
dito tableau fechado se todos os seus ramos forem fechados.
O sistema de tableaux para provar que uma formula e tautologia e um metodo de
refuta cao: uma formula e uma tautologia se, e somente se, existe uma tabelau fechado
para f : (tableau com formulas marcadas) ou para (tableau com formulas n ao
marcadas).
No tableau com formulas marcadas, cada formula e antecedida por s : ou por
f : para signicar que deve ser satisfeita ou falseada, respectivamente. As regras de
inferencia para o sistema de tableaux com formulas marcadas s ao:
1. Conectivo :
s:
f :
f :
s:
2. Conectivo :
s: ( )
s:
s:
f : ( )
f : f :
3. Conectivo :
s: ( )
s: s:
f : ( )
f :
f :
4. Conectivo :
s: ( )
f : s:
f : ( )
s:
f :
5. Conectivo :
s: ( )
s:
s:
f :
f :
f : ( )
s:
f :
f :
s:
Por exemplo, a primeira regra para o conectivo diz que para satisfazer uma formula
basta falsear a formula ; e a segunda diz que para falsear basta satisfazer .
A primeira regra para o conectivo diz que para satisfazer , basta satisfazer e
satisfazer : s: e s: devem ser colocadas no mesmo ramo, em vertices descendentes
daquele de ; e a segunda diz que para falsear , basta falsear ou falsear :
f : e f : devem ser colocadas em ramos diferentes, em vertices descendentes daquele
de .
Um ramo fechado de um tableau e um ramo que contem uma formula e seu
complemento . E um tableau fechado e um tableau cujos ramos s ao todos fechados.
Newton Jose Vieira Captulo 2: L ogica proposicional 89
Com isso, para determinar, por exemplo, se uma formula e uma tautologia, basta
vericar se h a um tableau fechado para , pois h a um tableau fechado para uma
formula se, e somente se, ela e instatisfazvel.
Exemplo 51 A formula (p (q r)) (p q) e uma tautologia. A arvore e-ou
da Figura 2.27, apresentada no Exemplo 30, resume todas as tentativas de satisfazer
a nega cao dessa formula. Um tableau fechado similar ser a agora obtido para f : (p
(q r)) (p q):
1. A segunda regra para o conectivo diz que para falsear esta formula, deve-se
satisfazer p (q r) e falsear p q, ou seja, o ramo deve ser estendido assim:
1. f : (p (q r)) (p q)
2. s: p (q r) [1]
3. f : p q [1]
2. Agora, aplicando-se a mesma regra para 3, obtem-se o tableau:
1. f : (p (q r)) (p q)
2. s: p (q r) [1]
3. f : p q [1]
4. s: p [3]
5. f : q [3]
3. Aplicando-se a primeira regra da nega cao para a formula 4:
1. f : (p (q r)) (p q)
2. s: p (q r) [1]
3. f : p q [1]
4. s: p [3]
5. f : q [3]
6. f : p [4]
4. Para a formula 2, aplica-se a primeira regra do conectivo , abrindo-se dois
ramos, visto que para satisfazer p (q r), basta satisfazer p e satisfazer q r
ou falsear p e falsear q r:
1. f : (p (q r)) (p q)
2. s: p (q r) [1]
3. f : p q [1]
4. s: p [3]
5. f : q [3]
6. f : p [4]
>
>
>
>
>
>

7. s: p [2] 9. f : p [2]
8. s: q r [2] 10. f : q r [2]
90 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
5. O ramo da esquerda pode ser fechado, visto que h a a ocorrencia de f : p e s : p
no mesmo. A formula 10 provoca a extensao do ramo da direita:
1. f : (p (q r)) (p q)
2. s: p (q r) [1]
3. f : p q [1]
4. s: p [3]
5. f : q [3]
6. f : p [4]
>
>
>
>
>
>

7. s: p [2]
8. s: q r [2]
X
9. f : p [2]
10. f : q r [2]
11. f : q [10]
12. f : r [10]
6. Aplicando-se uma regra da nega cao para a formula 11 estende-se o ramo da direita
e, em seguida, fecha-se o ramo, pois ele contem f : q e s: q:
1. f : (p (q r)) (p q)
2. s: p (q r) [1]
3. f : p q [1]
4. s: p [3]
5. f : q [3]
6. f : p [4]
>
>
>
>
>
>

7. s: p [2]
8. s: q r [2]
X
9. f : p [2]
10. f : q r [2]
11. f : q [10]
12. f : r [10]
13. s: q [11]
X
Aqui valem duas observa coes;
Ao se aplicar uma regra utilizando-se uma formula como premissa, nunca mais
e necessario utilizar tal formula como premissa, desde que todos os ramos sejam
estendidos com a conclusao da regra, ja que a aplica cao de uma regra resulta
sempre nas mesmas conclusoes.
Para se gerar um tableau mais conciso, e aconselhavel dar prioridade `as regras
que n ao causam bifurca cao aos ramos atuais.
O pr oximo exemplo ilustra o fato de que um tableau pode car maior se o conselho
da segunda observa cao n ao for seguido.
Newton Jose Vieira Captulo 2: L ogica proposicional 91
Exemplo 52 Segue um tableau fechado para f : (p (q r)) (p q), a mesma
formula do exemplo anterior, adotando-se outra ordem de aplica cao das regras:
1. f : (p (q r)) (p q)
2. s: p (q r) [1]
3. f : p q [1]
>
>
>
>
>
>

4. s: p [2]
5. s: q r [2]
6. s: p [3]
7. s: p [3]
12. f : p [2]
13. f : q r [2]
14. s: p [3]
15. f : q [3]
16. f : q [13]
17. f : r [13]
18. f : p [14]
19. s: q [16]
X

8. s: q [5]
9. f : q [8]
X
10. s: r [5]
11. f : p [6]
X
Assim como o algoritmo falseia da Figura 2.16 pode ser dispensado, fazendo-se
o tratamento explcito do conectivo da nega cao dentro do pr oprio algoritmo satisfaz,
conforme mostrado na Figura 2.21, pode-se obter um sistema de tableaux em que as
formulas prescindem dos prexos s e f, cando implcito que a tentativa e de satisfazer
cada formula. Basicamente, em cada regra, o prexo s e descartado e o prex f e
substitudo por (anal, para falsear , basta satisfazer ), com um pequeno ajuste
obvio para a nega cao, como se pode observar a seguir. Seguem as regras de inferencia
para o sistema de tableaux com formulas n ao marcadas:
1. Conectivo :

2. Conectivo :

( )

3. Conectivo :


( )

4. Conectivo :


( )

92 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao


5. Conectivo :

( )

Exemplo 53 Segue um tableau fechado com formulas n ao marcadas que demonstra


que a formula do Exemplo 51, [(p (q r)) (p q)], e insatisfatvel e que,
portanto, (p (q r)) (p q) e uma tautologia. Como naquele exemplo,
optou-se pelas regras sem bifurcac cao sempre que possvel. A numera cao das formulas
correspondentes do tableau do Exemplo 51 e mantida aqui para facilitar a compara cao
eventual por parte do leitor (note que aqui n ao h a formula correspondente `a 6).
1. [(p (q r)) (p q)]
2. p (q r) [1]
3. (p q) [1]
4. p [3]
5. q [3]
>
>
>
>
>
>

7. p [2]
8. q r [2]
X
9. p [2]
10. (q r) [2]
11. q [10]
12. r [10]
13. q [11]
X
Exerccios
1. Demonstre por meio de tableaux marcados e tambem n ao marcados:
a) p q p
b) p q p q
c) p (q p)
d) p q, q r p r
e) p (q r) p q r
2. Resolva o Exerccio 1 da Se cao 2.5.1 usando tableaux n ao marcados.
3. Desenhe um tableau com ((p r) (q r)) na raiz e recupere, a partir dele,
uma formula na FND logicamente equivalente a essa formula.
Newton Jose Vieira Captulo 2: L ogica proposicional 93
2.5.5 Resolucao
Um outro sistema dedutivo para logica proposicional e de resolu cao. Embora ele tenha
sido projetado para processamento de conhecimento expresso em logica de primeira
ordem, aqui ser a apresentada a vers ao para logica proposicional. A maioria dos sistemas
para processamento de conhecimento expresso em logica proposicional usa o DPLL que,
na verdade, pode ser visto como um renamento de resolu cao. Por outro lado, a maioria
dos sistemas para processamento de conhecimento expresso em logica de predicados de
primeira ordem e baseada em resolu cao, o que justica apresentar inicialmente a vers ao
mais simples para logica proposicional.
O sistema dedutivo de resolu cao n ao tem axiomas logicos e tem uma unica regra
de inferencia: a regra de resolu cao. A regra de resolu c ao, dadas duas clausulas C
1
e
C
2
como premissas, tais que h a um literal L tal que L C
1
e L C
2
, produz como
conclusao a clausula C
1
L C
2
L. Tal clausula e denominada resolvente.
Observe que C
1
, C
2
[= C
1
L C
2
L, visto que:
se v
i
(L) = V , para que v
i
(C
2
) seja V , deve-se ter v
i
(C
2
L) = V ; e
se v
i
(L) = F, para que v
i
(C
1
) seja V , deve-se ter v
i
(C
1
L) = V .
Assim, em qualquer caso, v
i
(C
1
L C
2
L) = V , caso v
i
(C
1
) = v
i
(C
2
) = V .
Portanto, todo resolvente obtido a partir de um conjunto de clausulas H, direta ou
indiretamente, e conseq uencia logica de H.
Um caso particular ocorre quando C
1
contem apenas L e C
2
apenas L. Neste
caso, o resolvente e a clausula vazia, (evidentemente, dados L e L, obtem-se uma
contradi cao!). Uma dedu cao de a partir de uma formula na FNC, aqui representada
mediante um conjunto de clausulas, B, e dita ser uma refutac ao de B. Evidentemente,
se h a uma refuta cao de B, entao B e insatisfatvel.
Segue um exemplo de refuta cao de um conjunto de clausulas.
Exemplo 54 Seja B = p q, p q, q. Segue uma dedu cao de a partir de B,
ou seja, uma refuta cao de B:
1. p q [B]
2. p q [B]
3. q [B]
4. q [1,2]
5. [3,4]
Logo, B e insatisfatvel. Note como considerar uma clausula como um conjunto produz
q como clausula 4, em vez de q q.
Anteriormente, ressaltou-se que se h a uma dedu cao de a partir de um conjunto
de clausulas B, entao B e insatisfatvel. A contrapositiva desta:
Se um conjunto de cl ausulas B e insatisfatvel, ent ao h a uma deduc ao de
a partir de B.
94 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
constitui o teorema da completude da resolu c ao.
Para se provar que H [= utilizando-se resolu cao, deve-se provar que H
e insatisfatvel, o que e feito obtendo-se uma refuta c ao de um conjunto de clausulas
equivalente a H . Veja o pr oximo exemplo.
Exemplo 55 Seja H o conjunto das formulas:
1. inoc culp (o mordomo e inocente ou culpado);
2. inoc tmen (se o mordomo e inocente, a testemunha mentiu);
3. cump tmen (se o mordomo tem um c umplice, a testemunha n ao mentiu); e
4. cump (o mordomo tem um c umplice).
Para mostrar que H [= culp, obtem-se primeiro o conjunto de clausulas B a partir de
H:
1. inoc culp (de 1)
2. inoc tmen (de 2)
3. cump tmen (de 3)
4. cump (de 4)
e tambem o conjunto de clausulas NC a partir da nega cao da consulta:
5. culp (da nega cao da consulta)
Segue uma dedu cao de a partir de B NC:
1. inoc culp [B]
2. inoc tmen [B]
3. cump tmen [B]
4. cump [B]
5. culp [NC]
6. tmen [4,3]
7. inoc [6,2]
8. culp [7,1]
9. [8,5]
Logo, B NC e insatisfatvel e, portanto, H [= culp.
O algoritmo mais simples para tentar encontrar uma refuta cao a partir de um con-
junto de clausulas B (ou determinar que n ao existe uma) e o de satura c ao, apresentado
na Figura 2.33. Esse algoritmo e extremamente ineciente em geral, como mostra o
pr oximo exemplo.
Newton Jose Vieira Captulo 2: L ogica proposicional 95
proc refuta-saturacao(conjunto de clausulas B) retorna booleano:
A := ; B0 := B; i 0;
enquanto Bi ,= e , Bi faca
A := A Bi;
R := |resolventes de C1 e C2 [ C1 A e C2 Bi;
i := i + 1;
Bi =:= R A;
menquanto;
retorne Bi
m refuta-saturacao
Figura 2.33: Resolu cao por satura cao.
Exemplo 56 Uma refuta cao de p q, p q, p q, p q e encontrada pelo
algoritmo de satura cao da seguinte maneira. Inicialmente, tem-se o conjunto B
0
:
B
0
: 1. p q [B]
2. p q [B]
3. p q [B]
4. p q [B]
O conjunto B
1
n ao contem clausula de B
0
, mas duas clausulas (7 e 8) s ao geradas de
duas formas:
B
1
: 5. p [1,2]
6. q [1,3]
7. q q [1,4][2,3]
8. p p [1,4][2,3]
9. q [2,4]
10. p [3,4]
Em seguida, o algoritmo gera 22 resolventes, s o que 20 deles identicos a clausulas de
B
0
B
1
; e a clausula vazia, , e gerada duas vezes, resolvendo as clausulas 5 e 10 e
resolvendo 6 e 9. Como B
2
= , o algoritmo retorna verdadeiro.
Um primeiro tipo de renamento que se pode fazer no algoritmo de satura cao (e
outros) e a elimina cao de clausulas de uma forma em que a completeza n ao seja afetada.
Exemplos s ao:
Elimina cao de tautologias.
Elimina cao de clausulas puras.
Elimina cao de clausulas subjugadas. A clausula C
1
subjuga C
2
se, e somente se,
C
1
C
2
.
96 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
O exemplo anterior e reconsiderado aplicando-se elimina cao de tautologias e subjuga cao:
um resolvente s o e aproveitado se n ao for tautologia nem subjugado por alguma clausula
ja obtida.
Exemplo 57 Uma refuta cao de pq, pq, pq, pq encontrada pelo algoritmo
de satura cao com elimina cao de tautologias e clausulas subjugadas:
B
0
: 1. p q [B]
2. p q [B]
3. p q [B]
4. p q [B]
B
1
: 5. p [1,2]
6. q [1,3]
7. q [2,4]
8. p [3,4]
B
2
: 9. [5,8]
O algoritmo gera algumas tautologias (como q q [1,3]) e clausulas subjugadas (como
p [1,7]), que s ao imediatamente descartadas.
Existem in umeras estrategias de busca associadas ao sistema de resolu cao. A seguir
ser ao brevemente descritas duas delas de especial importancia: conjunto de suporte e
linear.
Na estrategia conjunto de suporte, e exigido que uma das premissas seja escolhida
do conjunto de suporte. Inicialmente, ele e um subconjunto S do conjunto inicial B,
normalmente o conjunto de clausulas relativas `a nega cao da consulta. Essa estrategia e
completa se, e somente se, BS e satisfatvel. (A insatisfabilidade tem que ter rela c ao
com S.)
J a uma estategia linear e aquela que s o produz dedu coes lineares. Uma deduc ao
linear de uma clausula C
n
, a partir do conjunto de clausulas B, come cando na clausula
C
0
, e tal que:
C
0
B;
uma das premissas para obten cao do resolvente C
i
e C
i1
.
Observe que a segunda premissa para obten cao de C
i
e, ou alguma clausula de B
ou algum resolvente previo. Caso se requeira que a segunda premissa seja sempre
uma clausula de B, tem-se o que se denomina uma deduc ao linear de entrada. Uma
estrategia que produza apenas dedu coes lineares e completa, mas uma que explore
apenas dedu coes lineares de entrada n ao e completa. Segue um exemplo.
Exemplo 58 Uma dedu cao linear de , refuta cao de p q, p q, p q, p q,
seria (escolhendo a clausula 4 como inicial):
Newton Jose Vieira Captulo 2: L ogica proposicional 97
1. p q [B]
2. p q [B]
3. p q [B]
4. p q [B]
5. q [4,2]
6. p [5,1]
7. q [6,3]
8. [7,5]
Note que a partir de 5, a clausula anterior e sempre uma premissa.

E interessante notar que para o conjunto do exemplo anterior, n ao existe refuta cao
linear de entrada, visto que todas as clausulas de entrada tem dois literais; resolvendo-
se uma delas com uma outra de um ou mais literais, obtem-se um resolvente de um ou
mais literais; este, portanto, n ao pode ser a clausula vazia.
A principal virtude de uma estrategia linear, particularmente a linear de entrada,
e que admite uma implementa cao eciente, como bem ilustra a linguagem de pro-
grama cao em logica Prolog. O mecanismo de inferencia por tr as de Prolog pode ser
visto como usando uma estrategia linear de entrada. No caso, ela e completa porque
um programa em Prolog consta apenas de clausulas de Horn e a estrategia linear de en-
trada e completa se o conjunto de partida tem apenas clausulas de Horn. Uma cl ausula
de Horn e uma clausula que contem no m aximo um literal positivo.
Exerccios
1. Modique o algoritmo de resolu cao por satura cao para que ele fa ca elimina cao
de tautologias, de clausulas puras e de clausulas subjugadas: um resolvente s o e
retido se n ao for uma clausula de tais tipos.
2. Resolva o Exerccio 1 da Se cao 2.5.1 usando resolu cao. Encontre dedu coes lin-
eares.
2.5.6

Arvores de prova
Na verdade, existem sistemas dedutivos similares a resolucao, uma especie de tableaux
para clausulas, que trazem embutida uma estrategia (basicamente) linear de entrada.
A seguir, descreve-se de forma sucinta um desses sistemas, baseado em um denominado
sistema de elimina c ao de modelos, que ser a aqui referido como sistema de arvores de
prova. Ele tambem n ao contem axiomas logicos e contem tres regras de inferencia,
sendo que uma delas e utilizada apenas para come car uma dedu cao. O sistema lida
com dois tipos de express oes: clausulas (de entrada) e clausulas ordenadas (derivadas).
As clausulas ordenadas podem ser vistas como arvores de prova, que ser a a visao
adotada aqui.
As regras ja ser ao expressas como opera coes sobre arvores de prova, sendo estas
apresentadas na forma pict orica tradicional. O conceito de arvore de prova surgira,
informalmente, como conseq uencia das deni coes das tres regras de inferencia:
98 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
Regra de codica c ao:
Recebendo como premissa uma clausula de entrada L
1
L
n
, n 1, a
codica cao produz uma arvore de prova de raiz com r otulo e folhas com r otulos
L
1
, . . . , L
n
, todas lhas da raiz:

L
1

L
n
O literal e o literal raiz e os literais L
1
, . . . , L
n
s ao chamados literais candidatos.
Regra de expans ao:
Recebendo como premissa uma arvore de prova P com uma folha de r otulo literal
candidato L
0
e uma clausula de entrada C = L
0
L
1
L
n
, n 0, a expans ao
de P via C produz uma arvore de prova em que o vertice de r otulo L
0
em P recebe
como lhos folhas com r otulos L
1
, . . . , L
n
:
.
.
.
L
0
L
1

L
n
O literal L
0
, que era candidato, torna-se um literal expandido e os literais L
1
, . . . ,
L
n
s ao literais candidatos.
Regra de reduc ao:
Recebendo como premissa uma arvore de prova P com uma folha de r otulo literal
candidato L que tenha como ancestral um vertice com r otulo L, uma redu cao de
P torna o literal L reduzido:
.
.
.
L
L
.
.
.
Um conjunto de clausulas B e insatisfatvel se, e somente se, existe uma arvore de
prova construda a partir de B sem literais candidatos. Existe uma leitura bastante
natural de um trecho de arvore da forma
Newton Jose Vieira Captulo 2: L ogica proposicional 99
L
0
L
1
L
n
que e: L
1
L
n
L
0
, pois esta e equivalente `a clausula usada na expans ao para
obten cao desse trecho: L
0
L
1
L
n
. Com isto, a partir de arvores de prova
e possvel apresentar explica c oes bastante claras de respostas, em vez das dedu coes
ilegveis obtidas no sistema de resolu cao.
Exemplo 59 Para mostrar p q r, q r s, r, s [= p, primeiramente, como
em resolu cao, obtem-se o conjunto:
1. p q r [B]
2. q r s [B]
3. r [B]
4. s [B]
5. p [NC]
Uma boa poltica e, normalmente, escolher uma clausula da nega cao da consulta para
codicar. Aplicando-se a regra de codica cao `a clausula 5, obtem-se:

p
Fazendo a expans ao desta via a clausula 1, obtem-se:

p
q
r
Fazendo a expans ao desta via as clausulas 2, 3 (duas vezes) e 4, obtem-se:

p
q
r
r s
100 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
O sistema de arvores de prova apenas com as regras de codica cao e expans ao e
completo para clausulas de Horn, constituindo um sistema bastante aderente ao mecan-
ismo de inferencia da linguagem Prolog. No entanto, para alguns conjuntos e necessario
o uso da regra de redu cao. Veja o exemplo a seguir.
Exemplo 60 Seja B = p q, p q. Em clausulas:
1. p q [B]
2. q p [B]
3. p q [B]
Para provar que B [= p q, obtem-se, primeiro, a clausula correspondente `a nega cao
da consulta:
4. p q [B]
Aplicando-se a regra de codica cao `a clausula 4, e depois as regras de expans ao via 1
e 2, obtem-se:

p q
q p
Usando-se a clausula 3 para expandir a arvore em ambos os literais candidatos:

p q
q p
p q
Agora ambos os literais candidatos podem ser reduzidos, obtendo-se:
Newton Jose Vieira Captulo 2: L ogica proposicional 101

p q
q p
p q
A cada literal expandido de uma arvore de prova pode-se associar um lema. No
caso em que a regra de redu cao n ao e usada na constru cao da arvore, o lema e unit ario
e consta exatamente do literal expandido. No caso mais geral, o lema associado a um
literal expandido L e a clausula constituda dos literais;
L; e
todo literal M tal que:
L e ancestral de literal reduzido M, e
L e descendente do literal M usado na redu cao.
Exerccios
1. Resolva o Exerccio 1 da Se c ao 2.5.1 usando arvore de prova.
102 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
Captulo 3
Logica de Predicados de Primeira
Ordem
A atividade de modelagem que antecede a express ao de conhecimento em logica proposi-
cional e muito simples. Consta apenas em identicar quais s ao as proposi coes simples
relevantes e associar a cada uma delas uma vari avel proposicional. J a em logica de
predicados a atividade de modelagem pode ser bastante mais sosticada, sendo nor-
malmente baseada em um tipo de estrutura matem atica suciente para se expressar
conhecimento com uma estrutura tambem muito mais sosticada. Assim, antes de
abordar a linguagem da logica de predicados, ser a feita, na primeira se cao, uma pe-
quena revisao desse tipo estrutura. Depois, ap os a deni cao da linguagem propriamente
dita na Se cao 3.2, ser a apresentada a sem antica da linguagem. Completando os aspec-
tos sem anticos, ser a apresentada em seguida a no cao de conseq uencia para a logica de
predicados. Finalmente, ser a abordado o conceito de dedu cao.
3.1 Modelando a realidade por meio de estruturas
Considere o seguinte argumento, classico em livros de logica:
Todo homem e mortal. S ocrates e um homem. Portanto, S ocrates e mortal.
Em logica proposicional n ao e possvel modelar esse argumento, ou seja, n ao h a como
conceber formulas , e que representem, respectivamente, as proposi coes todo
homem e mortal , S ocrates e um homem e S ocrates e mortal , de tal forma que , [=
! Aqui, a capacidade de identicar objetos e propriedades povoando a realidade, de
tal forma que seja possvel dizer que um certo objeto (por exemplo, S ocrates) tem uma
certa propriedade (por exemplo, e mortal) e importante.
Um argumento menos trivial que, como o acima, tambem e valido, seria:
Todos amam que ama alguem. Existe alguem que n ao ama a si mesmo.
Portanto, alguem n ao me ama.
103
104 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
_

HOMENS
S ocrates
Plat ao
Arist oteles
.
.
.
MORTAIS
O c ao de Plat ao
O coelho de Zen ao
.
.
.
MUNDO GREGO
Zeus
Atena
Poseidon
.
.
.
Figura 3.1: Objetos e propriedades.
A cole cao dos objetos identicados na realidade em questao pode ser modelada,
em matem atica, por meio de um conjunto que, no contexto da aplica cao, nada mais
ca sendo do que o conjunto universo. J a as propriedades podem ser modeladas,
cada uma, por meio de um conjunto, aquele conjunto que contenha todos os elementos
que denotem objetos com a propriedade em questao. Assim, no exemplo acima, uma
estrutura matem atica adequada para modelar a realidade poderia ter um conjunto
universo constitudo de elementos para certos homens, animais, deuses etc., e teria pelo
menos dois conjuntos, um contendo os elementos correspondentes aos mortais e outro os
elementos correspondentes aos homens. A Figura 3.1 ilustra o exemplo, considerando o
conjunto universo como modelando o mundo grego antigo e explicitando dois conjuntos
para modelar as duas propriedades ser homem e ser mortal.
Chamando-se os conjuntos que modelam as propriedades ser homem e ser mor-
tal de h e m, e chamando-se S ocrates de S, o argumento poderia ser assim expresso:
Para todo objeto x do conjunto universo, se x h entao x m. S h.
Portanto, S m.
Alem da express ao condicional se. . . entao, ja modelada em logica proposicional, este
argumento envolve o uso de para todo objeto x do conjunto universo. Ser a necessario
um novo conectivo para expressar isso.
1
Em geral, uma aplica cao pode requerer, n ao apenas a identica cao de propriedades,
mas tambem de inter-relacionamentos entre objetos. Tais inter-relacionamentos s ao
modelados matematicamente atraves de rela c oes. Por exemplo, em uma aplica cao em
que seja importante identicar os la cos familiares das pessoas, existiriam rela coes do
tipo:
m ae = (Maria, Jo ao), (Maria, Ivo), (Eva, Ana), . . .,
1
O incrvel e que este sera suciente para se expressar tudo que e possvel expressar em logica de
predicados!
Newton Jose Vieira Captulo 3: L ogica de predicados 105
irm aos = (Jo ao, Ivo), (Ivo, Jo ao), (Maria, Eva), . . .,
primos = (Ana, Jo ao), (Jo ao, Ana), (Ana, Ivo), . . ..
Tais rela coes modelam uma realidade em que:
Maria e m ae de Jo ao e de Ivo. Eva e m ae de Ana. Jo ao e Ivo sao irm aos,
assim como Maria e Eva. Ana e Jo ao s ao primos. Ana e Ivo tambem s ao
primos.
Com isto, ser a possvel expressar, por exemplo, as proposi coes:
Uma pessoa e lha da pr opria m ae:
para todo x e todo y, se (x, y) m ae, entao (y, x) lho-de.
Se duas pessoas s ao irm as, seus lhos s ao primos:
para todo x, todo y, todo z e todo w, se (x, y) irm aos e (z, x) lho-de e
(w, y) lho-de, entao (z, w) primos.
Alem de conjuntos e rela coes, ser a possvel tambem usar o conceito de func oes para
estruturar o universo de discurso. Assim, por exemplo, m ae pode ser modelada como
uma fun cao em vez de rela cao. Com isto, carrega automaticamente toda a conota cao
de rela cao funcional . A proposi cao do par agrafo anterior que se refere a m ae pode ser
assim expressa:
Uma pessoa e lho da pr opria m ae:
para todo x, (x, m ae(x)) lho-de.
Na logica proposicional, uma formula atomica consta de uma vari avel proposicional
, que e interpretada como i() V, F. Na logica de predicados, uma formula
atomica ser a ou uma vari avel proposicional, interpretada como em logica proposicional,
ou uma express ao cujo signicado ser a uma arma cao do tipo k R, em que k e uma
n-upla de objetos do universo e R uma rela cao n-aria (lembrando que uma rela cao
un aria e um conjunto). E para referencia aos objetos ser a possvel o uso de fun coes
(como no ultimo exemplo visto).
Em prepara cao para a deni cao da sem antica da logica de predicados, dene-se o
conceito de estrutura como sendo uma tripla c = (U, F, R), em que:
U e um conjunto n ao vazio (universo de discurso);
F e um conjunto de fun coes; e
R e um conjunto de rela coes.
Exemplo 61 Uma estrutura (U, F, R) pode ser usada para modelar conhecimento
como o exemplicado anteriormente, sendo:
universo de discurso: U = Maria, Jo ao, Ivo, Eva, Ana, . . .;
106 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
fun coes: F = m ae, . . .; e
rela coes: R = irm aos, primos, lho-de, . . ..
Dependendo da estrutura assumida para modelar o conhecimento a ser expresso
em logica de predicados, a express ao do conhecimento pode ser mais facil, mais difcil
ou, ate mesmo, impossvel. Como escolher entre estruturas alternativas? Infelizmente,
n ao existe uma resposta precisa para essa pergunta. Mas sabe-se que a melhor escolha
ir a depender do uso que se fara do conhecimento representado. Assim, o processo de
modelagem via uma estrutura deve levar em conta o uso pretendido.
3.2 A linguagem da logica de predicados
O alfabeto da linguagem consta de tres tipos de smbolos:
Smbolos n ao l ogicos: um conjunto de constantes A, B, C, . . . , com ou sem
ndices (para denotar objetos do universo); um conjunto de smbolos funcionais
f, g, h, . . . , com ou sem ndices, cada um associado a um inteiro n > 0 (para
denotar fun coes de n argumentos); e um conjunto de smbolos predicativos p, q,
r, s, com ou sem ndices, cada um associado a um inteiro n 0 (para denotar
rela coes, se n > 0, e para denotar vari aveis proposicionais, se n = 0).
Smbolos l ogicos: h a os conectivos (verum), (falsum), (nega cao), (con-
jun cao), (disjun cao), (condicional), (bicondicional), (universal) e
(existencial), e as vari aveis x, y, z, w, com ou sem ndices.
Smbolos auxiliares: abre e fecha parenteses.
Antes de denir as formulas propriamente, dene-se os termos, T , que s ao usados
para referencia aos objetos do universo.
Deni cao 18 O conjunto dos termos, T , e denido assim:
a) cada constante e cada vari avel e um termo;
b) se f e um smbolo funcional associado a n argumentos e t
1
, t
2
, . . . , t
n
s ao termos,
f(t
1
, t
2
, . . . , t
n
) e um termo.
c) s o s ao termos as palavras que podem ser obtidas como mostrado em a e b.
Exemplo 62 S ao exemplos de termos:
A
x
Newton Jose Vieira Captulo 3: L ogica de predicados 107
f(x)
g(x, A)
g(g(A, y), f(B))
O terceiro termo faz referencia a um smbolo funcional f que deve denotar uma fun cao
com 1 argumento e o quarto a um smbolo funcional g que deve denotar uma fun cao
com com 2 argumentos. Ambos os smbolos s ao utilizados novamente no quinto termo
apresentado.
Segue a deni cao de formula para a logica de predicados de primeira ordem.
Deni cao 19 O conjunto das formulas, T, (ou f ormulas bem formadas) pode ser assim
denido, recursivamente:
a) se p e um smbolo predicativo associado a n argumentos e t
1
, . . . , t
n
s ao termos,
ent ao p(t
1
, t
2
, . . . , t
n
) e uma f ormula (denominada formula atomica); se n = 0,
os parenteses s ao omitidos;
b.1) e s ao f ormulas;
b.2) se e uma f ormula, ent ao () e uma f ormula;
b.3) se e s ao f ormulas, ent ao ( ), ( ), ( ) e ( ) s ao
f ormulas;
b.4) se e uma f ormula e x e uma vari avel, ent ao (x) e (x) s ao f ormulas;
c) s o s ao f ormulas as palavras que podem ser obtidas como indicado em (a) e (b.1)
a (b.4).
As deni coes anteriores s ao boas quando se pretende fazer um tratamento formal
da pr opria logica de predicados. Como nosso interesse e no uso da logica, ao inves de
usar a simbologia denida para constantes, smbolos funcionais e smbolos predicativos,
ser a usada uma simbologia que de uma ideia do que se est a representando, de maneira
similar ao que se faz (ou se devia fazer) com nomes de vari aveis em linguagens de
programa cao. Veja o exemplo a seguir, em que se apresenta o signicado pretendido
para alguns casos.
Exemplo 63 Alguns exemplos de formulas atomicas:
p
1
p(a, b)
acima(A, sobre(B)) (o objeto cujo nome e A est a acima do objeto que est a sobre
o objeto de nome B)
108 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
= (+(2, 2), 4) (2 + 2 = 4)
casados(Abel , m ae(Carlos)) (Abel e casado com a m ae de Carlos)
q(x)
r(f(x, y), f(f(a, y), g(x))))
Seguem exemplos de formulas n ao atomicas. Parenteses s ao eliminados de acordo
com as regras ja vistas no caso proposicional, considerando que e tem a mesma
precedencia que . Por exemplo, xp(x) q(x)r(x) abrevia a formula (x((p(x))
(q(x) r(x))))
acima(B, A) (o objeto cujo nome e B n ao est a acima do objeto de nome A)
pai (Ad ao, Abel ) pai (Ad ao, Caim) (Ad ao e pai de Abel e de Caim)
chove assiste-tv(Ana) (se chove, Ana assiste TV)
xtia(x, Ana) (Ana tem uma tia)
xy gosta(x, y) (Todo mundo gosta de alguem)
xy gosta(x, y) (Alguem gosta de todo mundo)
xy (irm aos(x, y) irm aos(y, x)) (se fulano e beltrano s ao irm aos, ent ao bel-
trano e fulano s ao irm aos)
xy (gosta(x, m ae(y)) gosta(y, x)) (Todos gostam de quem gosta de sua m ae)
O conceito de subf ormula, dado pela Deni cao 4 para logica proposicional, e adap-
tado a seguir para logica de primeira ordem.
Deni cao 20 O conjunto das subf ormulas de uma f ormula , subf (), pode ser assim
denido:
a) se e f ormula at omica, ou , ent ao subf () = ;
b) se = (), = (x) ou = (x), ent ao subf () = subf ();
se = ( ), em que , , , , subf () = subf () subf ().
A subf ormula ser a dita o escopo de x em x e de x em x. Uma ocorrencia
da vari avel x e dita ligada em uma formula se ela estiver em uma subf ormula da forma
x ou x; e e dita livre em , caso contr ario. Note que uma mesma vari avel pode
ter ocorrencias ligadas e livres na mesma formula, como y em xp(x, y) y q(y): a
primeira ocorrencia e livre e as outras duas s ao ligadas. Uma formula em que toda
ocorrencia de vari avel e ligada e dita ser uma sentenca.
Newton Jose Vieira Captulo 3: L ogica de predicados 109
Exemplo 64 Seja = xy(gosta(x, m ae(y)) gosta(y, x)). As subf ormulas de
s ao:
,
y(gosta(x, m ae(y)) gosta(y, x)),
gosta(x, m ae(y)) gosta(y, x),
gosta(x, m ae(y)) e
gosta(y, x).
Todas as ocorrencias de x e y s ao ligadas em . Logo, e uma senten ca. Por outro
lado, a subf ormula y(gosta(x, m ae(y)) gosta(y, x)) tem duas ocorrencias livres da
vari vel x e, portanto, ela n ao e uma senten ca.
Exerccios
1. Expresse em logica de predicados:
a) Quem faz exerccios fsicos tem melhor qualidade de vida.
b) Alunos n ao gostam de fazer provas.
c) Nem tudo que reluz e ouro.
d) Pedro sabe programar em qualquer linguagem funcional existente.
e) Quem conhece Godofredo o adora.
f) Marcos n ao tem amigos que gostem de utilizar o sistema operacional SOW.
g) Nenhum artista assiste a lmes que todas as pessoas que n ao sejam artistas
gostam de assistir.
h) Nao conhe co quem n ao odeie as brincadeiras de Jo aozinho.
i) Quem gosta de Pedrinho n ao o conhece.
j) A rela cao irm aos e reexiva, mas n ao e transitiva. (Use o smbolo pred-
icativo irm aos de dois argumentos.)
k) Juca adormece se e somente se a luz ca acesa.
l) Gatos e cachorros atacam se s ao amea cados.
m) Ninguem visita Hermengarda, a menos que ela esteja afonica.
n) Todos amam quem ama alguem.
110 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
3.3 Semantica da linguagem
Em logica proposicional, para ser possvel determinar se o valor logico de uma formula
e V ou F s ao necessarias interpreta coes para os smbolos n ao logicos: as vari aveis
proposicionais. Para a logica de predicados, para ser possvel determinar o valor logico
de uma formula, s ao necessarios um conjunto universo e interpreta coes para os smbolos
n ao logicos (constantes, smbolos funcionais e smbolos predicativos). O conjunto uni-
verso e necessario para avaliar as formulas governadas por quanticadores. Assim, uma
interpreta cao para a linguagem da logica de predicados resulta no que se denomina
uma estrutura, como denida na Se cao 3.1.
Uma estrutura i = (U, F, R) que seja uma interpreta cao para a linguagem consid-
erada deve tal que:
o conjunto universo, U, e n ao vazio;
para cada constante A, A
i
U (o elemento denotado por A);
para cada smbolo funcional f associado a n 1, F contem uma fun cao f
i
:
U
n
U (a fun cao denotada por f); e
para cada smbolo predicativo p associado a n 1, R contem uma rela cao p
i
U
n
(a rela cao denotada por p).
2
Observe que, mesmo dada uma estrutura i = (U, F, R), em que U contem os objetos
A
i
(dentre outros, possivelmente), F e o conjunto das fun coes f
i
e R o conjunto das
rela coes p
i
, e ainda impossvel interpretar um termo que contenha alguma vari avel que
n ao esteja no escopo de um quanticador. Na deni cao recursiva da fun cao de valora cao
v
i
, no entanto, ser a necessario fazer referencia `a interpreta cao de uma vari avel. Para
tornar possvel tal interpreta cao, ser a suposto existir uma especie de interpreta cao
padrao para cada vari avel, um elemento especco do universo de discurso, o qual ser a
denotado simplesmente por x
i
.
Com isso, dada uma estrutura i que d a uma interpreta cao para os smbolos n ao
logicos, pode-se denir a interpretac ao de um termo t,
i
(t) (o elemento correspondente
a t), recursivamente:
a)
i
(x) = x
i
para cada vari avel x;
b)
i
(A) = A
i
para cada constante A;
c)
i
(f(t
1
, t
2
, . . . , t
n
)) = f
i
(
i
(t
1
),
i
(t
2
), . . . ,
i
(t
n
)) para cada smbolo funcional f
associado a n.
Exemplo 65 Suponha um mundo em que os objetos sejam pessoas, dentre as quais
S onia, Carlos, Pedro, Ana, Maria e Jo ao, dentre outros, e que precisamos formalizar
algumas rela coes familiares. A estrutura a ser usada seria:
2
Para variaveis proposicionais, pode-se imaginar que i(p) = V corresponderia a se ter ) p
i
e
i(p) = F corresponderia a se ter ) , p
i
, ja que existem apenas duas relacoes de zero argumentos: | e
|).
Newton Jose Vieira Captulo 3: L ogica de predicados 111
Universo: S onia, Carlos, Pedro, Ana, Maria, Jo ao, . . . .
Fun coes:
m ae: m ae(Pedro) = S onia, m ae(Ana) = Maria,. . .
Rela coes:
casados = (Carlos, S onia), . . ..
masculino = Carlos, Pedro, Jo ao, . . ..
feminino = S onia, Ana, Maria, . . ..
lho = (Pedro, Carlos), (Pedro, S onia), . . ..
lha = (Ana, Carlos), (Ana, Maria), . . ..
Seguem smbolos n ao logicos com respectivas interpreta coes:
Constantes: S
i
= S onia, C
i
= Carlos, P
i
= Pedro, A
i
= Ana e M
i
= Maria.
Smbolos funcionais: m ae
i
= m ae.
Smbolos predicativos: cas
i
= casados, masc
i
= masculino, fem
i
= feminino,
lho
i
= lho, lha
i
= lha.
Supondo ainda que x
i
= y
i
= Godofredo, tem-se:

i
(x) = x
i
= Godofredo;

i
(M) = M
i
= Maria;

i
(m ae(P)) = m ae
i
(
i
(P)) = m ae(P
i
) = m ae(Pedro) = S onia;
Ressalta-se dois pontos importantes. Em primeiro lugar, a interpreta cao i inclui o
universo de discurso considerado, U. Isto e importante para o signicado dos quanti-
cadores, a ser visto abaixo. Em segundo lugar, tal universo de discurso e suposto n ao
vazio. Isto simplica o tratamento do assunto, sem constituir uma restri cao relevante.
Deni cao 21 Dada uma estrutura i para interpretac ao dos smbolos n ao l ogicos e
supondo-se que i atribui um valor x
i
para cada vari avel x, como dito anteriormente,
dene-se recursivamente a valora cao logica de um f ormula:
v
i
() = i() para cada 1;
se e uma f ormula at omica p(t
1
, . . . , t
n
), ent ao v
i
() = V se, e somente se,
(
i
(t
1
), . . . ,
i
(t
n
)) p
i
;
v
i
() = V e v
i
() = F;
112 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
se T, ent ao v
i
() = fb

(v
i
());
se , T, ent ao
v
i
( ) = fb

(v
i
(), v
i
()),
v
i
( ) = fb

(v
i
(), v
i
()),
v
i
( ) = fb

(v
i
(), v
i
()),
v
i
( ) = fb

(v
i
(), v
i
()).
se T, ent ao v
i
(x) = V se, e somente se, para todo e U v
i
() = V ,
supondo x
i
= e e y
i
inalterado para y ,= x.
se T, ent ao v
i
(x) = V se, e somente se, existe e U tal que v
i
() = V ,
supondo x
i
= e e y
i
inalterado para y ,= x.
Exemplo 66 Considere a linguagem denida no Exemplo 65, assim como as inter-
preta coes la assumidas. Seguem interpreta coes para algumas formulas:
v
i
(cas(S, C)) = V , pois cas
i
= casados,
i
(S) = S
i
= S onia,
i
(C) = C
i
= Carlos
e (S onia, Carlos) casados.
v
i
(masc(P) fem(P)) = V , visto que
v
i
(masc(P) fem(P)) = fb

(v
i
(masc(P)), v
i
(fem(P))) = fb

(V, F) = V
ja que:
v
i
(masc(P)) = V , pois
i
(P) = P
i
= Pedro, masc
i
= masculino e Pedro
masculino; e
v
i
(fem(P)) = F, pois
i
(P) = P
i
= Pedro, fem
i
= feminino e Pedro ,
feminino.
v
i
(ycas(S, y)) = V , pois:
v
i
(ycas(S, y)) = V
sse existe e tal que v
i
(cas(S, y)) = V se y
i
= e
sse existe e tal que (S
i
, e) cas
i
sse existe e tal que (S onia, e) casados.
Como (S onia, Carlos) casados, v
i
(ycas(S, y)) = V .
v
i
(xy(lha(x, y) fem(x))) = V , pois:
v
i
(xy(lha(x, y) fem(x))) = V
sse para todo a, b v
i
(lha(x, y) fem(x)) = V se x
i
= a e y
i
= b
sse para todo a, b fb

(v
i
(lha(x, y)), v
i
(fem(x))) = V se x
i
= a e y
i
= b.
Como sempre que (a, b) lha, a feminino, segue-se o resultado.
Newton Jose Vieira Captulo 3: L ogica de predicados 113
Observe que se e uma senten ca (n ao tem vari aveis livres) v
i
() n ao depende
dos valores x
i
atribudos `as vari aveis! Na verdade, v
i
() s o depende dos valores x
i
atribudos `as vari aveis livres de .
O conceito correspondente ao de tautologia e o de validade.
Deni cao 22 Uma f ormula e valida se, e somente se, v
i
() = V para qualquer
interpretac ao i.
Seguem exemplos de formulas validas, dentre as quais algumas que s ao tautol ogicas,
isto e, cuja validade n ao depende dos quanticadores eventualmente usados.
Exemplo 67 As seguintes formulas s ao validas, sendo que a primeira e a quarta s ao
tautol ogicas:
masc(A) masc(A) (tautol ogica)
x(masc(x) masc(x))
xy(cas(x, y) (fem(y) cas(x, y)))
xp(x) xp(x) (tautol ogica)
xp(x) xp(x)
Os conceitos de formula satisfatvel, falseavel, contingencia e modelo s ao similares
aos ja apresentados para logica proposicional, sendo reprisados aqui rapidamente. Uma
interpreta cao i e dita satisfazer uma formula se, e somente se, v
i
() = V . Se tal
estrutura i existe, ela e dita ser um modelo para , e e dita satisfatvel ; se n ao existe,
ou seja, se v
i
() = F para qualquer interpreta cao i, a formula e insatisfatvel . Uma
formula e uma contingencia se n ao e valida nem insatisfatvel.
Exemplo 68 As seguintes formulas s ao insatisfazveis, sendo que a primeira e a quarta
s ao contradit orias:
masc(A) masc(A) (contradit oria)
x(masc(x) masc(x))
xp(x) xp(x) (contradit oria)
xp(x) xp(x)
114 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
O conceito de equivalencia l ogica continua valendo aqui tambem: duas formulas
e s ao logicamente equivalentes, , se, e somente se, v
i
() = v
i
() para toda
i. Observe que todas as formulas validas s ao logicamente equivalentes entre si, assim
como todas as insatisfazveis.
Seguem exemplos de equivalencias logicas particularmente importantes envolvendo
quanticadores. Note que todas as equivalencias mostradas para logica proposicional,
continuam valendo aqui (basta considerar , etc. como formulas da logica de predi-
cados, em vez de logica proposicional).
Exemplo 69 Suponha que (x) e uma formula que tenha x como uma unica vari avel
livre. Analogamente, (x, y) tem duas vari aveis livres. Algumas equivalencias logicas
importantes envolvendo quanticadores:
x(x) x(x) (assim, consegue-se expressar o quanticador existencial
utilizando-se o universal)
x(x) x(x) (assim, consegue-se expressar o quanticador universal utilizando-
se o existencial)
x(x) x(x)
x(x) x(x)
x((x) (x)) x(x) x(x)
x((x) (x)) x(x) x(x)
xy(x, y) xy(x, y) xy(x, y)
A seguir, e apresentado um exemplo com detalhes da demonstra cao de uma das
equivalencias do exemplo anterior.
Exemplo 70 Para mostrar que x(x) x(x), basta provar que para toda
interpreta cao i, v
i
(x(x)) = v
i
(x(x)), ou seja, v
i
(x(x)) = V se, e somente
se, v
i
(x(x)) = V , o que e feito a seguir;
v
i
(x(x)) = V sse fb

(v
i
(x(x))) = V
sse v
i
(x(x)) = F
sse n ao existe a U tal que v
i
((x)) = V se x
i
= a
sse para todo a U v
i
((x)) = F se x
i
= a
sse para todo a U fb

(v
i
((x))) = F se x
i
= a
sse para todo a U v
i
((x)) = V se x
i
= a
sse v
i
(x(x)) = V .
Newton Jose Vieira Captulo 3: L ogica de predicados 115
Em logica de predicados, o problema de determinar se uma formula e satisfatvel
e indecidvel, assim como o de determinar se e valida, insatisfatvel etc. No nal da
pr oxima se cao ser a dito um pouco mais sobre isso.
Exerccios
1. Determine formulas que expressem as proposi coes a seguir utilizando as seguintes
propriedades:
arara(x): x e uma arara;
cv(x): x tem cores vivas;
pequeno(x): x e pequeno;
grande(x): x e grande;
nalto(x): x faz ninho em arvores altas.
a) Toda arara tem cores vivas.
b) Nenhum p assaro pequeno faz ninho em arvores altas.
c) P assaros que n ao fazem ninho em arvores altas n ao tem cores vivas.
d) Araras s ao grandes.
2. Demonstre as equivalencias:
a) x(x) x(x)
b) x((x) (x)) x(x) x(x)
3.4 Conseq uencia logica
Assim como em logica proposicional, uma formula e conseq uencia l ogica de um con-
junto de formulas H, H [= , se, e somente se, para toda interpreta cao i, v
i
() = V
sempre que v
i
() = V para toda H. Ou seja, H [= se, e somente, todo modelo
para H e um modelo para . A diferen ca com rela cao a logica proposicional, e que
aqui a interpreta cao e uma estrutura nos moldes denidos na se cao anterior.
Exemplo 71 As seguintes conseq uencias logicas podem ser mostradas:
x(homem(x) mortal (x)), homem(S ocrates) [= mortal (S ocrates)
mortal (S ocrates) [= xmortal (x)
xp(x) xq(x), p(A) [= xq(x)
116 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
Algumas conseq uencias logicas gerais interessantes sao apresentadas no exemplo a
seguir.
Exemplo 72 Suponha que (x) e uma formula que tenha x como uma unica vari avel
livre e Algumas conseq uencias logicas envolvendo quanticadores:
x(x) [= (A)
(A) [= x(x)
x(x) x(x) [= x((x) (x))
x((x) (x)) [= x(x) x(x)
xx(x, y)) [= yx(x, y)
Pode-se mostrar que , se, e somente se, [= e [= .
As propriedades da conseq uencia logica vistas na Se cao 2.4 valem tambem para a
logica de predicados. Em particular, o Teorema 5 vale, ou seja, H [= se, e
somente se, H [= .
Pode-se mostrar que H [= se e somente se H e insatisfatvel. Para mostrar
a indecidibilidade da logica de predicados (com rela cao a satisfabilidade, validade, con-
seq uencia logica etc.) basta mostrar que, dada uma m aquina de Turing M e uma
palavra w, e possvel construir (existe algoritmo para tal) H e tais que H [= se e
somente se M p ara se a entrada e w.
Exerccios
1. Repita o Exerccio 1 da se cao anterior e mostre que a ultima formula e con-
seq uencia logica das outras. Note que, para isto, e preciso explicitar a rela cao
que existe entre pequeno e grande.
3.5 Deducao
Assim como para a logica proposicional, existem sistemas dedutivos corretos e comple-
tos para a logica de predicados. Tais sistemas, basicamente, acrescentam axiomas e/ou
regras de inferencia para lidar com os quanticadores universal e existencial.
Nesta se cao ser ao revisitados os sistemas dedutivos vistos para logica proposicional
com os acrescimos pertinentes.
Newton Jose Vieira Captulo 3: L ogica de predicados 117
3.5.1 Exemplos de regras de inferencia e deducoes
A seguir, s ao apresentadas algumas regras de inferencia normalmente utilizadas para
lidar com os quanticadores. Evidentemente, as regras de inferencia apresentadas na
Se cao 2.5.1 continuam valendo para a logica de predicados.
Suponha que
t
x
e a formula obtida substituindo-se, na formula , toda vari avel
livre x pelo termo t (se n ao tem vari avel livre,
t
x
= ). Suponha que tal substituic ao
s o pode acontecer se x n ao aparece no escopo de algum quanticador com vari avel que
ocorra em t; por exemplo, em xp(x, y), y n ao pode ser substitudo por x, nem por
f(x) etc., pois o quanticador menciona x. Assim, dene-se: x e substituvel por t se,
e somente se, x n ao ocorre no escopo de algum quanticador com vari avel que ocorra
em t.
Exemplo 73 Seja a formula = yp(y, x) xq(x, z). Entao:
A ocorrencia de x em yp(y, x) e uma ocorrencia livre, mas as de x em xq(x, z)
n ao s ao. E como a vari avel z do termo g(A, z) n ao est a no escopo de quanticador
com z em yp(y, x), tem-se que:

g(A,z)
x
= yp(y, g(A, z)) xq(x, z).
Por outro lado, x n ao pode ser substuda por g(A, y) em , ja que a vari avel y do
termo g(A, y) est a no escopo de quanticador com y em yp(y, x).
A ocorrencia de z em pode ser substituda por qualquer termo t que n ao tenha
a ocorrencia da vari avel x, pois z est a no escopo de x na subf ormula xq(x, z).
A seguir, ser ao apresentados dois exemplos de regras de inferencia que envolvem os
quanticadores.
A primeira regra, que ser a denominada instanciac ao universal (IU), e:
x

t
x
em que t e um termo sem vari aveis. A seguir, um exemplo de uso de tal regra.
Exemplo 74 Segue uma dedu cao que mostra que:
x(homem(x) mortal (x)), homem(S ocrates) mortal (S ocrates):
1. x(homem(x) mortal (x)) (H)
2. homem(S ocrates) (H)
3. homem(S ocrates) mortal (S ocrates)) (IU 1)
4. mortal (S ocrates) (MP 3,2)
118 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
O segundo exemplo de regra de inferencia, generalizac ao existencial (GE), vem a
seguir:

t
x
x
Uma estrategia baseada nesta regra seria: para provar que , basta provar
t
x
para
algum termo t.
Exemplo 75 Uma dedu cao que mostra que :
x(homem(x) mortal (x)), homem(S ocrates) xmortal (x):
1. x(homem(x) mortal (x)) (H)
2. homem(S ocrates) (H)
3. homem(S ocrates) mortal (S ocrates)) (IU 1)
4. mortal (S ocrates) (MP 3,2)
5. xmortal (x) (GE 4)
Exerccios
1. Determine dedu coes que mostrem:
a) x(p(x) q(x)), q(A) [= xp(x)
b) x(p(x) q(x)), p(A) r(A) [= x(r(x) q(x))
c) xp(x) x(q(x) r(x)), p(A) q(A) [= r(A)
3.5.2 Sistema dedutivo do tipo Hilbert
A seguir, o sistema do tipo Hilbert apresentado para logica proposicional na Se cao 2.5.2
ser a complementado, tambem apenas para dar um exemplo de sistema dedutivo cor-
reto e completo para a logica de predicados de primeira ordem.
3
Repete-se, aqui, os
esquemas de axiomas Ax1, Ax2 e Ax3 e a regra modus ponens.
Se , e s ao formulas, entao s ao axiomas:
Ax1: ( )
Ax2: ( ( )) (( ) ( ))
Ax3: ( ) [( ) ]
3
Este sistema dedutivo foi tomado emprestado de Mendelson, E. Introduction to Mathematical Logic,
3rd edition, Wadsworth & Brooks/Cole, 1987, pagina 56.
Newton Jose Vieira Captulo 3: L ogica de predicados 119
Ax4: x
t
x
se x e substituvel por t em
Ax5: x( ) ( x) se n ao h a contem ocorrencia livre de x em
Regras de inferencia:
MP: modus ponens:

GN: generalizac ao:

x
Este sistema dedutivo aproveita o fato de que o conjunto de conectivos , , e
completo para logica de primeira ordem.
Deve-se ressaltar que nesse tipo de sistema dedutivo podem ser deduzidas formulas
com vari aveis livres. O objetivo e que elas possam ser usadas como intermediarias
em provas de senten cas. De qualquer maneira, elas podem ser interpretadas como
se estivessem quanticadas universalmente. Por exemplo, a formula p(x) (q(x)
p(x)) e uma inst ancia do esquema de axioma Ax1, devendo x ser imaginada como
universalmente quanticada.
Exemplo 76 Uma dedu cao usando o sistema dedutivo acima:
1. x(p(x) q(x)) (H)
2. xp(x) (H)
3. x(p(x) q(x)) (p(x) q(x)) (Ax4)
4. p(x) q(x) (MP 1,3)
5. p(x) p(x) (Ax4)
6. p(x) (MP 2,5)
7. q(x) (MP 4,6)
8. xq(x) (GN 7)
Tem-se, portanto, que x(p(x) q(x)), xp(x) [= xq(x).
Como todo sistema dedutivo do tipo Hilbert, esse tem interesse principalmente
teorico, n ao sendo adequado para servir de base para processamento em computadores
nem utiliza cao por seres humanos em demonstra coes.
Exerccios
1. Prove usando o sistema de Hilbert visto anteriormente:
a) x(p(x) q(x)), x(q(x) r(x)) [= x(p(x) r(x))
120 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
3.5.3 Deducao natural
Para utiliza cao por seres humanos em demonstra coes o tipo de sistema dedutivo base
mais adequado e o de dedu cao natural. Alem das regras ja mostradas no captulo an-
terior para os conectivos proposicionais, tem-se as seguintes regras relativas aos quan-
ticadores:
Conectivo :
Introdu cao (I):
x
0
.
.
.

x
0
x
x
Elimina cao (E):
x

t
x
Conectivo :
Introdu cao (E):

t
x
x
Elimina cao (I):
x
x
0

x
0
x
.
.
.

Exemplo 77 A seguinte dedu cao no sistema de dedu cao natural prova que x(p(x)
q(x)), xp(x) [= xq(x):
1. x(p(x) q(x)) (H)
2. xp(x) (H)
3. p(x
0
) q(x
0
) (sup x
0
;E 1)
4. p(x
0
) (E 2)
5. q(x
0
) (E 4)
6. xq(x) (I 35)
Exemplo 78 A seguinte dedu cao no sistema de dedu cao natural prova que x(p(x)
q(x)), xp(x) [= xq(x):
Newton Jose Vieira Captulo 3: L ogica de predicados 121
1. x(p(x) q(x)) (H)
2. xp(x) (H)
3. p(x
0
) (suposi cao/x
0
)
4. p(x
0
) q(x
0
) (E 1)
5. q(x
0
) (E 3,4)
6. xq(x) (I 5)
7. xq(x) (E 2,36)
Exemplos de estrategias de prova relacionadas com os quanticadores, normalmente
empregadas em demonstra coes informais, juntamente com regras de inferencia que as
justicam, est ao mostrados a seguir.
Prova de uma armativa universal
Regra de inferencia: I.
Estrategia: para deduzir , supor um elemento x
0
arbitrario e provar
x
0
x
.
Prova por construcao
Regra de inferencia: I.
Estrategia: para deduzir x, provar
t
x
, para um certo termo t.
Exerccios
1. Demonstre usando dedu cao natural:
a) x(p(x) q(x)), x(q(x) r(x)) [= x(p(x) r(x))
b) x(p(x) q(x)), x(r(x) p(x)) [= x(r(x) q(x))
3.5.4 Tableau analtico
Segue uma complementa cao dos sistemas de tableaux para tratamento dos quanti-
cadores. O termo t deve ser um termo sem vari aveis da linguagem, mas a constante a
tem que ser nova, isto e, uma ainda n ao utilizada. No tableau com formulas marcadas,
as regras de inferencia faltantes s ao:
1. Conectivo (t e um termo sem vari aveis e c uma constante nova):
s: x
s:
t
x
f : x
f :
a
x
122 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
2. Conectivo (c e uma constante nova e t um termo sem vari aveis):
s: x
s:
c
x
f : x
f :
t
x
Exemplo 79 Segue um tableau que prova que x(p(x) q(x)) (xp(x) xq(x))
e valida:
1. f : x(p(x) q(x)) (xp(x) xq(x))
2. s: x(p(x) q(x)) [1]
3. f : xp(x) xq(x) [1]
4. s: xp(x) [3]
5. f : xq(x) [3]
6. f : q(C) [5]
7. s: p(C) [4]
8. s: p(C) q(C) [2]
>
>
>
>
>
>

9. f : p(C) [8]
X
10. s: q(C) [8]
X
O exemplo seguinte cria tres constantes novas.
Exemplo 80 O pr oximo tableau prova que x(p(x) q(x)) (xp(x) xq(x)) e
valida:
1. f : x(p(x) q(x)) (xp(x) xq(x))
.
.
.
.
.
.
.
.
.
.
. .
-
-
-
-
-
-
-
-
-
-
--
2. s: x(p(x) q(x)) [1]
3. f : xp(x) xq(x) [1]

`
`
`
`
`
4. f : xp(x) [3]
5. f : p(C
1
) [4]
6. s: p(C
1
) q(C
1
) [2]
7. s: p(C
1
) [6]
8. s: q(C
1
) [6]
X
9. f : xq(x) [3]
10. f : q(C
2
) [9]
11. s: p(C
2
) q(C
2
) [2]
12. s: p(C
2
) [11]
13. s: q(C
2
) [11]
X
14. f : x(p(x) q(x)) [1]
15. s: xp(x) xq(x) [1]
16. s: xp(x) [15]
17. s: xq(x) [15]
18. f : p(C
3
) q(C
3
) [14]

`
`
`
`
`
19. f : p(C
3
) [14]
20. s: p(C
3
) [16]
X
21. f : q(C
3
) [14]
22. s: q(C
3
) [17]
X
Para tableaux com formulas n ao marcadas, as regras de inferencia para os quanti-
cadores s ao:
1. Conectivo (t e um termo sem vari aveis e c uma constante nova):
x

t
x
x

a
x
Newton Jose Vieira Captulo 3: L ogica de predicados 123
2. Conectivo (c e uma constante nova e t um termo sem vari aveis):
x

a
x
x

t
x
Exemplo 81 Segue um tableau com formulas n ao marcadas que prova que a mesma
formula do Exemplo 79, x(p(x) q(x)) (xp(x) xq(x)), e valida:
1. x(p(x) q(x)) (xp(x) xq(x))
2. x(p(x) q(x)) [1]
3. xp(x) xq(x) [1]
4. xp(x) [3]
5. xq(x) [3]
6. q(C) [5]
7. p(C) [4]
8. p(C) q(C) [2]
>
>
>
>
>
>

9. p(C) [8]
X
10. q(C) [8]
X
`
As vezes, a partir de um tableau n ao fechado para uma formula , pode-se recu-
perar um modelo que satisfaz , sendo assim, um modelo que falseia , mostrando
porque n ao e valida. Segue um exempplo.
Exemplo 82 Segue um tableau n ao fechado para [x(p(x) xq(x) x(p(x)
q(x))]:
1. [x(p(x) xq(x) x(p(x) q(x))]
2. xp(x) xq(x) [1]
3. x(p(x) q(x)) [1]
4. p(x) [2]
5. xq(x) [2]
6. p(C
1
) [4]
7. q(C
2
) [5]
8. (p(C
1
) q(C
1
)) [3]
9. (p(C
2
) q(C
2
)) [3]
>
>
>
>
>
>

10. p(C
1
) [8]
X
11. q(C
1
) [8]

12. p(C
2
) [9] 13. q(C
2
) [9]
X
As formulas 6, 7, 11 e 12, no ramo n ao fechado, correspondem a uma interpreta cao
que satisfaz [x(p(x) xq(x) x(p(x) q(x))], ou ainda, a uma que falseia
x(p(x) xq(x) x(p(x) q(x)). Ou seja, tal formula n ao e valida, sendo que uma
124 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
interpreta cao i tal que v
i
(x(p(x) xq(x) x(p(x) q(x))) = F e aquela em que
o universo consta de dois objetos, C
i
1
e C
i
2
, e:
C
i
1
p
i
(por 6);
C
i
1
, q
i
(por 11);
C
i
2
q
i
(por 7); e
C
i
2
, p
i
(por 12).
Em tableaux com formulas n ao marcadas, uma formula universalmente quanticada
pode ser usada varias vezes, instanciando-se a vari avel com termos ainda n ao usados.
Isto e o que pode fazer com que um tableau tenha ramos innitos e, portanto, fazer
com que um procedimento baseado em tableaux entre em loop. Como a constru cao
de um tableau visa encontrar, se existir, uma interpreta c ao que falseia a formula, se
tal interpreta co existir e contiver, por exemplo, uma rela cao innita, tal rela cao ser a
evidenciada justamente por meio de um ramo innito, como mostra o exemplo a seguir.
Exemplo 83 Ao procurar por um modelo que satisfaz xy p(x, y) xyz(p(x, y)
p(y, x) p(x, z)), tem-se o seguinte trecho:
1. xy p(x, y) xyz(p(x, y) p(y, x) p(x, z))
2. xy p(x, y) [1]
3. xyz(p(x, y) p(y, x) p(x, z)) [1]
4. y p(A, y) [2]
5. p(A, C
1
) [4]
6. y p(C
1
, y) [2]
7. p(C
1
, C
2
) [6]
8. y p(C
2
, y) [2]
9. p(C
2
, C
3
) [8]
.
.
.
Em vez de substituir vari aveis universalmente quanticadas por novos termos sem
controle, correndo o risco de proporcionar um loop, existe a alternativa de usar uma
vers ao com unica c ao. Essa vers ao permite tambem, em certas circusntancias, detectar
que n ao h a como fechar o tableau.
Como unica cao e importante, n ao apenas em conexao com o metodo de tableaux,
mas tambem com o de resolu cao e o de arvores de prova, ela ser a abordada em uma
se cao.
Exerccios
Newton Jose Vieira Captulo 3: L ogica de predicados 125
1. Demonstre usando tableaux:
a) x(p(x) q(x)), x(q(x) r(x)) [= x(p(x) r(x))
b) x(p(x) q(x)), x(r(x) p(x)) [= x(r(x) q(x))
c) [= x(p(x) q(x)) (xp(x) xq(x))
3.5.5 Unicacao
A no cao de unica c ao e uma no c ao central na area de automa cao de sistemas de in-
ferencia, respons avel por um consideravel acrescimo de eciencia nesse tipo de sistema.
Intuitivamente, o problema e encontrar termos, os mais gerais possveis, que, ao substi-
tuirem vari aveis de um conjunto de express oes, tornem tais express oes identicas. Uma
express ao pode ser um termo, uma formula, um tableau, uma arvore de prova etc.
Inicialmente, dene-se o conceito de substitui cao. Uma substituic ao e um conjunto
v
1
/t
1
, . . . , v
n
/t
n
(n 0), em que, para 1 i n:
(a) v
i
e vari avel;
(b) t
i
e um termo diferente de v
i
; e
(c) v
i
,= v
j
para i ,= j.
Cada v
i
/t
i
e denominado um componente da substitui cao. A substitui cao sem compo-
nentes, , e denominada substituic ao vazia.
Seja uma substitui cao = v
1
/t
1
, . . . , v
n
/t
n
e uma express ao E. A aplica cao
da substitui cao a E, denotada por E, e a express ao obtida de E substituindo-se
simultaneamente cada v
i
por t
i
. E e denominada uma inst ancia de E.
Exemplo 84 Seja a substitui cao = x/A, y/f(B), z/f(y) e a formula = p(x, y, B)
q(z). Entao, = p(A, f(B), B) q(f(y)).
Sejam duas substitui coes = v
1
/t
1
, . . . , v
n
/t
n
e = w
1
/u
1
, . . . , w
m
/u
m
. A
composi c ao de e , , e a substitui cao tal que, para qualquer express ao E, E() =
(E) (ou seja, primeiro aplica-se , e depois . Ela pode ser obtida de
v
1
/t
1
, . . . , v
n
/t
n
, w
1
/u
1
, . . . , w
m
/u
m

eliminando-se
todo componente v
i
/t
i
tal que v
i
= t
i
, e
todo componente w
j
/u
j
tal que w
j
v
1
, v
2
, . . . , v
n
.
Exemplo 85 Seja = x/f(y), y/z e = x/A, y/B, z/y. Segue-se que =
x/f(b), z/y.
Algumas propriedades da composi cao de substitui coes s ao:
126 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
associatividade: ( ) = ( ), e
= = .
Uma substitui cao e uma substituic ao unicadora, ou um unicador, para um
conjunto de express oes E
1
, . . . , E
n
se, e somente se, E
1
= E
2
= = E
n
; neste
caso, diz-se que o conjunto de express oes e unic avel .
Um unicador para E
1
, . . . , E
n
e dito ser um unicador mais geral (umg) se,
e somente se, para todo unicador do conjunto existe uma substitui cao tal que
= .
Exemplo 86 Algumas express oes e unicadores (quando existem):
p(f(x), y, x), p(z, f(z), A) tem um unico unicador que, portanto, e um uni-
cador mais geral: x/A, y/f(f(A)), z/f(A).
f(f(x, y), y), f(z, A) tem um n umero ilimitado de unicadores, como, por exem-
plo, estes: x/A, y/A, z/f(A, A), x/B, y/A, z/f(B, A),x/w, y/A, z/f(w, A),
y/A, z/f(x, A) etc. Apenas os dois ultimos s ao umgs.
n ao existe unicador para p(x, x), p(y, f(y)).
O algoritmo a ser apresentado a seguir, determina um umg para dois termos ou
formulas atomicas, que e o que ser a necessario para os metodos de inferencia a serem
apresentados. Para simplicar o algoritmo, assume-se que o smbolo predicativo ou
funcional e o 0-esimo argumento da formula atomica ou forma funcional em que partic-
ipa. Assim, no algoritmo de unica cao, apresentado na Figura 3.2, arg
i
(E
j
) e o i-esimo
argumento da express ao E
j
.
A eciencia do algoritmo de unica cao e extremamente importante, pois ele e apli-
cado em cada passo de inferencia, como ser a visto adiante. Um dos problemas do
algoritmo com rela cao a eciencia e o chamado teste de ocorrencia: o teste para deter-
minar se uma vari avel ocorre em um termo; tanto assim, que em muitas implementa coes
da linguagem PROLOG ele e simplesmente omitido. Entretanto, sua omissao compro-
mete a consistencia do provador (ele pode derivar conclus oes erradas). Um algoritmo
para o teste de ocorrencia est a mostrado na Figura 3.3.
Os algoritmos apresentados n ao enfocam aspectos de eciencia. Existe na literatura
uma ampla gama de algoritmos de unica cao que podem ser adequados em um contexto
ou outro; muitas vezes, a escolha depende de varios fatores, como, por exemplo, o
tipo de estruturas de dados utilizado para representar as dedu coes. O fato de um
algoritmo ser melhor que outro em termos de complexidade computacional, nem sempre
implica que ele vai ser mais eciente em determinado contexto, pois pode exigir um
tipo de representa cao n ao compatvel com o modelo de implementa cao utilizado para
as dedu coes.
Newton Jose Vieira Captulo 3: L ogica de predicados 127
proc MGU(expressoes E1, E2) retorna (booleano, unicador):
se E1 = E2 entao
retorne (verdadeiro,)
senaose E1 e variavel entao
se E1 ocorre em E2 entao
retorne (falso,)
senao
retorne (verdadeiro,|E1/E2)
m
senaose E2 e variavel entao
se E2 ocorre em E1 entao
retorne (falso,)
senao
retorne (verdadeiro,|E2/E1)
mse
senaose os n umeros de argumentos de E1 e E2 sao diferentes entao
retorne (falso,)
senao
:= ;
para i de 0 ate n umero de argumentos de E1 faca
(suc, ) := MGU(arg
i
(E1), arg
i
(E2));
se suc entao
E1 := E1;
E2 := E2;
:=
senao
retorne (falso, )
mse
mpara;
retorne (verdadeiro, )
mse
m MGU
Figura 3.2: Algoritmo de unica cao.
proc ocorre(variavel v, expressao E) retorna booleano:
se E e variavel entao
retorne V = E
senao
para i de 1 ate n umero de argumentos de E faca
se ocorre(v, arg
i
(E)) entao
retorne verdadeiro
mse
mpara;
retorne falso
mse
m ocorre
Figura 3.3: Algoritmo para o teste de ocorrencia.
128 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
Exerccios
1. Determine para:
(a) = x/f(y), z/f(w), = y/a, z/f(a)
(b) = x/a, y/f(z), = x/z, z/a
(c) = x/y, z/f(g(x, y)), = x/y, y/a, z/a
2. Fa ca um algoritmo para uma fun cao que retorne a composi cao de duas substi-
tui coes.
3. Determine umgs (caso existam) para as seguintes express oes:
(a) p(x, y) e p(a, z)
(b) p(x, y) e p(f(x), a)
(c) p(x, f(x)) e p(y, f(y))
(d) p(x, f(x)) e p(a, f(y))
(e) p(x, f(x)) e p(y, y)
(f) p(x, x) e p(y, f(z))
(g) p(x, x) e p(y, f(y))
(h) p(x, x, g(x)) e p(y, f(z), z)
(i) p(x, x, g(x)) e p(y, f(z), w)
4. Descreva modica coes para o algoritmo de unica cao da Figura 3.2 para que ele
seja capaz de unicar n pares de express oes (n 2).
3.5.6 Tableau com unicacao
A ideia aqui e, ao inves de possibilitar a substitui cao de uma vari avel x por qualquer
termo t usando as regras para os quanticadores universal e nega c ao do existencial,
simplesmente substituir x por uma vari avel livre nova e, depois, usar unica cao para
encontrar um termo para substituir x em alguma tentativa de fechar um ramo. As
regras de inferencia se tornam (apenas para tableaux n ao marcados):
1. Conectivo (f uma fun cao de Skolem nova):
x

f(x
1
,...,xn)
x
2. Conectivo (f e uma fun c ao de Skolem nova):
x

f(x
1
,...,xn)
x
x

Newton Jose Vieira Captulo 3: L ogica de predicados 129


Nestas regras, x
1
, . . . , x
n
s ao todas as vari aveis livres de , com exce cao de x.
Se e uma substitui cao de T um tableau, T e o resultado de substituir cada
formula do tableau por .
Alem das regras ja vistas, agora e preciso a seguinte regra, para fechar um ramo
via unica cao:
Se um tableau T tem um ramo com dois literais L
1
e L
2
, um positivo e
outro negativo, tais que e um umg de L
1
e L
2
, ent ao T tambem e uma
tableau.
Exemplo 87 Usando-se as regras para e , constroi-se na tentativa de se chegar a
uma prova da validade de wxp(x, w, f(x, w)) wxy p(x, w, y):
1. [wxp(x, w, f(x, w)) wxy p(x, w, y)]
2. wxp(x, w, f(x, w)) [1]
3. wxy p(x, w, y) [1]
4. xp(x, sk
1
, f(x, sk
1
)) [2]
5. xy p(x, v
1
, y) [3]
6. y p(sk
2
(v
1
), v
1
, y) [5]
7. p(v
2
, sk
1
, f(v
2
, sk
1
)) [4]
8. p(sk
2
(v
1
), v
1
, v
3
) [6]
Observe que os literais 7 e 8 tem umg = v
1
/sk
1
, v
2
/sk
2
(sk
1
), v
3
/f(sk
2
(sk
1
), sk
1
).
Aplicando-se esse umg ao tableau acima, obtem-se um tableau fechado.
3.5.7 Resolucao
Assim como para logica proposicional, o sistema de resolucao para logica de predicados
trabalha com um conjunto de clausulas. Um conjunto de clausulas c() correspondente
a uma senten ca e equivalente a esta com rela cao a satisfabilidade, ou seja, c() tem
um modelo se, e somente se tem um modelo. Isto implica, por exemplo, que e
valida se, e somente se, um conjunto de clausulas correspondente a e insatisfatvel.
E, portanto, implica tambem que H [= se, e somente se,

H
c() c() e in-
satisfatvel. Assim, resolu cao para logica de predicados tambem trabalha mostrando a
insatisfabilidade de um conjunto de clausulas.
Aqui, novamente, uma cl ausula e um conjunto de literais. Um literal e uma formula
atomica ou a nega cao de uma. Lembre-se que a clausula sem literais e denominada
cl ausula vazia, e e denotada aqui por . Um conjunto de clausulas correspondente a
uma senten ca pode ser obtido aplicando-se os seguintes passos, em sequencia:
1. Eliminar os conectivos e , utilizando as equivalencias:

( ) ( )
2. Encostar nos atomos, utilizando as equivalencias:

130 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
( )
( )
v v
v v
3. Renomear as vari aveis, de tal forma que n ao quem duas quantica coes com a
mesma vari avel.
4. Para cada sub-f ormula da forma = v, sejam w
1
, w
2
, . . . , w
n
todas as vari aveis
tais que
. est a no escopo de w
i
e
. w
i
ocorre livre em .
Eliminar v, e
a. se n = 0, substituir toda ocorrencia livre de v em por uma constante nova;
b. se n > 0, substituir toda ocorrencia livre de v em por uma forma funcional
f(w
1
, w
2
, . . . , w
n
), em que f e um smbolo funcional novo.
5. Eliminar todas as quantica coes universais.
6. Transformar para a forma normal conjuntiva, utilizando as equivalencias:
( ) ( ) ( )
( ) ( ) ( )
7. Cada disjun cao da forma normal conjuntiva obtida d a origem a uma clausula: o
conjunto dos literais da disjun cao.
As constantes introduzidas no passo 4.a s ao denominadas constantes de Skolem, e os
smbolos funcionais introduzidos em 4.b s ao ditos denotar func oes de Skolem.
Aplicando-se a transforma cao acima a uma senten ca , obtem-se, ap os o passo 3,
uma senten ca

tal que

, com as seguintes caractersticas:


(a) s o existem ocorrencias dos conectivos , , , e ;
(b) s o existem conectivos em literais; e
(c) n ao existem quantica coes com a mesma vari avel.
Imediatamente ap os o passo 4, tem-se uma senten ca

, sem quanticadores existenci-


ais, que n ao e logicamente equivalente a

(e, portanto, n ao e logicamente equivalente


a ), pois n ao se pode armar que v [=
t
v
, embora seja verdade que
t
v
[= v.
Mas,

tem um modelo se, e somente se,

(e, portanto, ) tem um modelo, como pode


ser facilmente vericado, pela sem antica de e . Tendo sido eliminados os quanti-
cadores existenciais, s o restam os universais; estes s ao eliminados no passo 5, obtendo-se
Newton Jose Vieira Captulo 3: L ogica de predicados 131
uma formula logicamente equivalente `a anterior, desde que se considere todas as suas
vari aveis implicitamente universalmente quanticadas (por causa da renomea cao feita
no passo 3). Isto feito, tem-se uma formula cujos unicos conectivos s ao , e ,
estes ultimos em literais. No passo 6 obtem uma formula equivalente na forma normal
conjuntiva, e cada disjun cao desta d a origem a uma clausula no passo 7.
Exemplo 88 Seja a senten ca
x(yp(x, y) yq(x, y)) xy(p(x, y) q(y, x)).
Segue a obten cao de um conjunto de clausulas correspondente, utilizando o algoritmo
acima, passo a passo:
1. Eliminando-se :
x(yp(x, y) yq(x, y)) xy(p(x, y) q(y, x))
2. Empurrando-se para dentro:
x(yp(x, y) yq(x, y)) xy(p(x, y) q(y, x))
3. Renomeando-se as vari aveis:
x(yp(x, y) zq(x, z)) wu(p(w, u) q(u, w))
4. Eliminando-se os quanticadores existenciais:
x(p(x, f
1
(x)) q(x, f
2
(x))) u(p(C, u) q(u, C))
5. Eliminando-se os quanticadores universais:
(p(x, f
1
(x)) q(x, f
2
(x))) (p(C, u) q(u, C))
6. Colocando-se na forma normal conjuntiva:
(p(x, f
1
(x)) q(x, f
2
(x)) p(C, u))
(p(x, f
1
(x)) q(x, f
2
(x)) q(u, C))
7. Obtendo as clausulas:
p(x, f
1
(x)), q(x, f
2
(x)), p(C, u)
p(x, f
1
(x)), q(x, f
2
(x)), q(u, C)
Aqui tambem, em vez de utilizar a nota cao de conjunto para clausulas, ser a utilizada
a nota cao, mais comum, de disjun cao. Assim, para o exemplo anterior, as clausulas
seriam representadas por:
p(x, f
1
(x)) q(x, f
2
(x)) p(C, u) e
p(x, f
1
(x)) q(x, f
2
(x)) q(u, C)
132 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
Apesar disto, ser ao utilizadas opera coes de conjuntos sobre clausulas, sempre que con-
veniente.

E facil mostrar que quantica coes universais se distribuem sobre conjun coes, ou
seja, x( ) (x x). Assim sendo, cada clausula pode ser considerada um
contexto diferente para vari aveis; ou ainda, vari aveis com o mesmo nome ocorrendo
em clausulas diferentes podem ser consideradas vari aveis diferentes.
Seja C uma clausula e uma substitui cao. C e denominada uma inst ancia de C.
Caso C n ao tenha vari aveis, a inst ancia e dita ser uma inst ancia b asica.
O metodo da resolu cao para logica de predicados e baseado no Teorema de Herbrand,
que diz:
Um conjunto de cl ausulas B e insatisfatvel se, e somente se, existe um
conjunto nito, insatisfatvel, de inst ancias b asicas de cl ausulas de B.
Exemplo 89 Por exemplo, o conjunto das clausulas
1. p(x) q(x, f(y))
2. q(B, x) q(C, x)
3. p(A)
4. q(A, x)
e insatisfatvel, pois o conjunto das inst ancias b asicas
1. p(A) q(A, f(B))
3. p(A)
4. q(A, f(B))
e insatisfatvel (para vericar isto, basta, por exemplo, utilizar a tabela da verdade).
Em vez de tentar produzir um conjunto de inst ancias b asicas insatisfatvel, resolu cao
tenta produzir (implicitamente) um conjunto de inst ancias insatisfatvel, inst ancias es-
tas as mais gerais possveis (via unica cao). Por exemplo, para o conjunto de clausulas
do exemplo anterior, e suciente encontrar o seguinte conjunto de inst ancias para
demonstrar que o conjunto e insatisfatvel:
1. p(A) q(A, f(y))
3. p(A)
4. q(A, f(y))
Newton Jose Vieira Captulo 3: L ogica de predicados 133
O sistema dedutivo subjacente aos provadores de teoremas baseados em resolu cao
tem uma unica regra de inferencia, a regra de resolu cao, a qual e usualmente denida
a partir de duas outras regras: a regra de fatora cao e a regra de resolu cao bin aria.
A regra de fatora c ao e aplic avel a uma clausula que contenha dois literais unicaveis.
Seja entao uma clausula C com dois literais unicaveis L
1
e L
2
. O resultado da aplica cao
da regra de fatora cao e uma clausula C, em que e um umg de L
1
e L
2
. C e
denominada um fator de C. Por exemplo, um fator de
p(x) q(x) p(f(y))
seria p(f(y)) q(f(y)) (o umg utilizado foi x/f(y)).
Diz-se que dois literais tem sinais trocados se, e somente se, um e um atomo e o
outro e a nega cao de um atomo. Ser a utilizada a nota cao [L[ para denotar o atomo
do literal L. Dois literais L
1
e L
2
s ao ditos complementares, se tem sinais trocados e
[L
1
[ = [L
2
[.
A regra de resolu c ao bin aria e aplic avel a duas clausulas, uma contendo um literal
L
1
e outra contendo um literal L
2
, de sinais trocados, e tais [L
1
[ e [L
2
[ sejam unicaveis.
Sejam entao duas clausulas C
1
e C
2
, contendo, respectivamente, literais L
1
e L
2
, de
sinais trocados, e tais que [L
1
[ e [L
2
[ sejam unicaveis. O resultado da aplica cao da
regra de resolu cao bin aria e uma clausula (C
1
L
1
) (C
2
L
2
), em que e um umg
de [L
1
[ e [L
2
[. Tal clausula e denominada um resolvente bin ario de C
1
e C
2
.
Exemplo 90 Alguns exemplos de resolventes bin arios:
Um resolvente de p(x)q(x) e p(A)r(x) e q(A)r(x) (lembre-se de que vari aveis
de clausulas diferentes s ao diferentes, mesmo se tiverem o mesmo nome).
Um resolvente de p(y)q(x) e p(A)r(x) e q(z)r(x) (vale o lembrete anterior).
O unico resolvente para p(x) e p(A) e .
Um resolvente de p
1
(A, y)p
2
(y) e p
1
(x, B)p
2
(B) e p
2
(B) (lembre-se que uma
clausula e um conjunto).
Um resolvente de gosta(x, pai(y))gosta(y, x) e gosta(pai(z), z)gosta(z, pai(z))
e gosta(x, pai(pai(x)))gosta(x, pai(x)) (umg: y/pai(z)z/x = y/pai(x), z/x).
Um outro resolvente e: gosta(pai(x), x) gosta(x, x) (umg: z/x y/x =
z/x, y/x).
A regra de resolu c ao combina as de resolu cao bin aria e de fatora cao em uma unica
regra de inferencia. Um resolvente, resultado da aplica cao da regra de resolu cao a duas
clausulas C
1
e C
2
, e
(a) um resolvente bin ario de C
1
e C
2
; ou
(b) um resolvente bin ario de C
1
e um fator de C
2
; ou
134 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
(c) um resolvente bin ario de um fator de C
1
e C
2
; ou
(d) um resolvente bin ario de um fator de C
1
e um fator de C
2
.
Pode-se demonstrar que o sistema dedutivo de resolu cao e refutacionalmente con-
sistente e completo, ou seja,
H [= se, e somente se, c(H) c()
R
.
Exemplo 91 Seja H o conjunto das duas senten cas:
1. x(paciente(x) y(medico(y) gosta(x, y)))
(alguns pacientes gostam de todos os medicos)
2. x(paciente(x) y(quacre(y) gosta(x, y)))
(nenhum paciente gosta de qualquer quacre)
Seja a senten ca:
3. x(medico(x) quacre(x))
(nenhum medico e quacre)
Transformando H e em clausulas, obtem-se (i.j e a j-esima clausula obtida para a
senten ca i):
1.1 paciente(A)
1.2 medico(y) gosta(A, y)
2.1 paciente(x) quacre(y) gosta(x, y)
3.1 medico(B)
3.2 quacre(B)
Uma dedu cao da clausula vazia seria (s o s ao explicitados os resolventes):
4. gosta(A, B) [1.2, 3.1]
5. quacre(y) gosta(A, y) [1.1, 2.1]
6. quacre(B) [4, 5]
7. (3.2, 6)
Portanto, pode-se concluir que H [= .
O procedimento de prova mais simples (e ineciente) para tentar encontrar a clausula
vazia a partir de um conjunto de clausulas (, e o denominado metodo de resolu c ao por
satura c ao, ja apresentado para logica proposicional, na Figura 2.33.
Um primeiro passo para aumentar a eciencia, n ao apenas deste procedimento, mas
tambem de muitos outros, e a elimina cao de clausulas que, em algum sentido, sejam
redundantes. Exemplo ja citados para logica proposicional:
Newton Jose Vieira Captulo 3: L ogica de predicados 135
proc subjuga(clausula C1, C2) retorna booleano:
sejam L1, . . . , Lm os literais de C2.
sejam x1, . . . , xn as variaveis de C2.
sejam a1, . . . , an constantes que nao ocorrem em C1 nem em C2.
seja = |x1/a1, . . . , xn/an.
:= |L1, . . . , Lm;
k := 0; 0 := |C1;
enquanto ,
k
faca

k+1
:= |resolvente de C e D[ C
k
e D ;
se
k+1
= entao
retorne falso
mse;
k := k + 1
menquanto;
retorne verdadeiro
m subjuga.
Figura 3.4: Algoritmo de subjuga cao.
(a) Cl ausulas puras: s ao aquelas clausulas de entrada que contem algum literal L tal
que nenhuma outra clausula contem um literal com o mesmo smbolo predicativo
de L e sinal contr ario. Evidentemente, tais clausulas n ao devem ser usadas como
premissas.
(b) Cl ausulas tautol ogicas: aquelas que tem dois literais complementares. Evidente-
mente, se uma tautologia for eliminada de um conjunto insatisfatvel, ele continua
insatisfatvel.
(c) Cl ausulas subjugadas: diz-se que uma clausula C
1
subjuga uma clausula C
2
se, e
somente se, existe uma substitui cao tal que C
1
C
2
(C
2
, no caso, e a clausula
subjugada). Na presen ca de C
1
, C
2
e redundante, e pode ser desconsiderada.
Um algoritmo de subjugac ao, ou seja, um algoritmo que determina se uma clausula
subjuga outra, est a mostrado na Figura 3.4.
Exemplo 92 O seguinte exemplo mostra, passo a passo, como o algoritmo determina
que a clausula p(x) q(f(x), A) subjuga a clausula p(h(y)) q(f(h(y)), A) p(z):
= p(h(B)), q(f(h(B)), A), p(C) = y/B, z/C

0
= p(x) q(f(x), A)

1
= q(f(h(B)), A), p(h(B)), q(f(C), A)

2
=
136 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao

E, em geral, muito caro vericar se uma clausula subjuga outra a cada passo de
inferencia. Assim, pode ser interessante implementar uma forma simplicada de sub-
juga cao; por exemplo, vericar apenas se uma clausula e subconjunto de outra.
Um conjunto de clausulas de entrada determina um espa co de pesquisa: o con-
junto de todos os resolventes que podem ser gerados a partir do mesmo. O que um
procedimento de prova faz e, em certo sentido, navegar nesse espa co em busca da
clausula vazia. Tal espa co pode ser (e usualmente e) extremamente redundante, no
sentido de que existem muitos caminhos diferentes para se obter a mesma clausula, e
tambem no sentido de que, para efeitos de procura pela clausula vazia, a gera cao de
certos resolventes e in ocua. Os metodos de elimina cao apresentados acima procuram
minorar tal problema, mas cam longe de prover uma solu cao satisfatoria. A seguir,
s ao apresentados alguns metodos mais extremados de reducao do espa co de pesquisa
que, sob certas condi coes, n ao comprometem a completude. Tais metodos tem como
caracterstica comum o fato de que imp oem restri coes quanto `as deduc oes permissveis;
permitindo apenas um certo subconjunto das provas possveis de serem obtidas, e que
eles reduzem o espa co de pesquisa.
O metodo de redu cao do espa co de pesquisa mais importante e, talvez, o do conjunto
de suporte, ja mencionado na Se cao 2.5.5. Alem de reduz-lo drasticamente, ele e
compatvel com outros metodos. Seja B um conjunto de clausulas de entrada. Um
conjunto S tal que S B e denominado um conjunto de suporte de B se, e somente
se, BS e satisfatvel. Uma dedu cao por conjunto de suporte e uma dedu cao na qual,
para toda aplica cao da regra de resolu cao, as premissas n ao est ao ambas em ( B.
Pode-se demonstrar que um conjunto e insatisfatvel se, e somente se, existe uma
dedu cao por conjunto de suporte da clausula vazia. Ou seja, um procedimento de
prova continua refutacionalmente completo, caso s o admita dedu coes por conjunto de
suporte.
Como escolher um conjunto de suporte S, a partir de um conjunto de clausulas de
entrada B? Duas escolhas obvias s ao:
todas as clausulas de B que tem apenas literais negativos; ou
todas as clausulas de B que n ao tem literais negativos.
Seja o problema de determinar se H [= . Seja c(H) um conjunto de clausulas corre-
pondente a todas as senten cas de H, e c() um conjunto de clausulas correspondente
a . Caso c(H) seja consistente, uma escolha natural e c(). Tal escolha tem a
vantagem de que todo resolvente produzido tem a ver, direta ou indiretamente, com
a senten ca a ser provada. Ela e especialmente util quando existem muitas conclusoes
derivaveis a partir de H (e normalmente, este e o caso). Veja o exemplo a seguir.
Exemplo 93 Seja a seguinte base de conhecimento, ja expressa em clausulas:
1. ac(x, y) adj(y, z) ac(x, z)
(se y e acessvel a partir de x e y e adjacente a z, z e acessvel a partir de x)
2. ac(x, x)
(todo objeto e acessvel a partir dele mesmo)
Newton Jose Vieira Captulo 3: L ogica de predicados 137
3. adj(A, B)
4. adj(B, E)
5. adj(C, D)
6. adj(A, C)
Suponha que se queira provar que ac(A, D):
7. ac(A, D)
Uma refuta cao utilizando 7 como conjunto de suporte seria:
8. ac(A, y) adj(y, D) [7,1]
9. ac(A, C) [8,5]
10. ac(A, y) adj(y, C) [9,1]
11. ac(A, A) [10,6]
12. [11,2]
Observe que a clausula 1 e recursiva; por causa disto, o conjunto das clausulas 1 a
6 tem uma innidade de consequencias. Permitindo resolu coes entre tais clausulas, o
procedimento poderia gerar resolventes que nada tem a ver com o que se quer provar,
como, por exemplo, ac(x, B) ac(x, E) [1,4].

E evidente que poder a haver uma innidade de resolventes, e que o provador poder a
se perder, mesmo utilizando a nega cao do teorema a ser provado como conjunto de
suporte pois, anal, o problema da insatisfabilidade e indecidvel em geral. Pode-se
constatar isto facilmente analisando-se o Exemplo 93. Embora os resolventes 8 e 10,
como todos os outros, tenham a ver com a senten ca a ser provada (eles mencionam
constantes que aparecem na senten ca), eles podem ser resolvidos com a clausula 1; os
resolventes produzidos tambem podem, e assim por diante. A coisa e pior ainda quando
a senten ca a ser provada n ao segue da base de conhecimento; por exemplo, ac(B, C).
Assim, pode ser conveniente utilizar outros metodos de redu cao do espa co de pesquisa
combinados com este.
Como foi dito acima, este metodo s o preserva completude quando o conjunto de
clausulas de entrada, excludas as clausulas do conjunto de suporte, e satisfatvel. As-
sim, se o conjunto das clausulas correspondentes `a nega cao da senten ca a ser provada
for assumido como conjunto de suporte, e se o conjunto das cl ausulas correspondentes
`a base de conhecimento (hip oteses) for insatisfatvel, n ao h a garantia de encontrar uma
refuta cao, porque a cl ausula vazia pode ser obtenvel a partir apenas da base de conhe-
cimento. Isto se deve ao fato de que se H e inconsistente, entao H [= para qualquer
sentenca . No entanto, esta falta de completude pode ser considerada uma virtude e
n ao um defeito, caso n ao se deseje que a introdu cao de informa coes inconsistentes na
base de conhecimento permita a dedu cao de qualquer senten ca. Tem-se, no fundo, um
comportamento paraconsistente. Por exemplo, a partir da base de conhecimento:
138 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
1. p(A)
2. p(A)
3. p(B)
pode-se deduzir qualquer senten ca (pois e resolvente de 1 e 2). No entanto, se a
nega cao da senten ca for utilizada como conjunto de suporte, isto n ao e verdade; por
exemplo, n ao seria possvel provar, dentre outras, p(B), p(C) e p(C); seria possvel
provar, dentre outras, as senten cas: p(A), p(A) e p(B) (mas em nenhuma das dedu coes
ocorre a resolu cao de 1 e 2).
A seguir descreve-se a estrategia linear para logica de predicados.
Seja um conjunto de clausulas B. Recordando da Se cao 2.5.5, uma deduc ao linear
de uma clausula C
n
a partir de B com clausula de partida C
0
e uma sequencia de
clausulas C
0
, . . . , C
n
, tal que C
0
B e para todo 1 i n C
i
foi obtida resolvendo
C
i1
com alguma clausula de B ou com alguma clausula C
j
, para 0 j i 1.
Gracamente:
C
0
B
0

C
1
B
1

C
2

.
.
.
B
i
B
ou B
i
e C
j
para algum j < i.
C
n1
B
n1

C
n

Uma refutac ao linear e uma dedu cao linear da clausula vazia. Um exemplo de
refuta cao linear e aquela mostrada no Exemplo 93. Um outro, e a do Exemplo 58.
Pode-se demonstrar que resolu cao linear preserva completude. Alem disto, e com-
patvel com conjunto de suporte, ou seja, se um conjunto de clausulas B e satisfatvel
e B C e insatisfatvel (onde C e uma clausula), entao existe uma refuta cao linear
a partir de C.
O uso de subjuga cao em conexao com resolu cao e um importante fator para pre-
ven cao contra loops (nem que seja uma forma simplicada de subjuga cao). Considere
o exemplo seguinte.
Exemplo 94 Considere o seguinte exemplo:
1. irm ao(x, y) irm ao(y, x)
2. irm ao(Abel, Caim)
Supondo que se deseje provar irm ao(Juca, Caim), o procedimento de prova primeira-
mente produziria:
Newton Jose Vieira Captulo 3: L ogica de predicados 139
3. irm ao(Juca, Caim)
A unica possibilidade e resolver com 1, o que leva `a produ cao de:
4. irm ao(Caim, Juca) (3,1)
Novamente, a unica possibilidade e resolver com 1:
5. irm ao(Juca, Caim) (4,1)
A clausula 5 e subjugada pela cl ausula 3, e n ao existem outras possibilidades para
resolu cao das clausulas 4 e 3. Logo, conclui-se que n ao existe refuta cao. Caso n ao seja
aplicada a subjuga cao, o procedimento entra em loop (re)produzindo as clausulas 4 e
5.
Seja C
0
, . . . , C
n
uma dedu cao linear a partir de B. Como ja visto, C
n+1
deve obtida
resolvendo C
n
com:
(a) alguma clausula de B; ou
(b) alguma clausula C
i
, para 0 i n.
A possibilidade (b) e essencial para manter a completude, como pode ser vericado
atraves do Exemplo 58. Se esta possibilidade for eliminada, tem-se as denominadas
dedu coes lineares de entrada, tambem denominadas dedu coes lineares puras. O metodo
e denominado resolu c ao de entrada. Neste caso, apesar de se perder a completude,
pode-se ainda resolver uma ampla gama de problemas, e a implementa cao e bem mais
simples e eciente. O procedimento de prova da linguagem Prolog pode ser visto como
um gerador de dedu coes lineares de entrada. O sistema dedutivo associado e completo
porque a linguagem s o admite certos tipos de clausulas denominadas cl ausulas de Horn.
(Uma clausula de Horn e uma clausula com no m aximo um literal positivo.)
Um outro metodo de redu cao do espa co de pesquisa e o denominado resolu c ao
unit aria. Neste metodo, a unica restri cao e que uma das premissas para aplica cao de
resolu cao seja uma clausula unit aria; as refuta coes, no caso, s ao denominadas refutac oes
unit arias. Foi demonstrado que este e equivalente ao de resolu cao linear de entrada,
no sentido de que existe uma refutac ao unit aria a partir de B se, e somente se, existe
uma refuta c ao de entrada a partir de B.
Apos impor restri coes quanto `as clausulas e dedu coes permissveis, tem-se um espa co
de pesquisa a ser percorrido pelo procedimento de prova `a procura da clausula vazia,
menor do que o especicado pelo sistema dedutivo. Agora o problema e determinar
uma estrategia para navega cao em tal espa co. Tal estrategia ir a depender de fatores
como: necessidade de encontrar uma refuta cao o mais r apido possvel; necessidade que
a refuta cao seja a menor possvel; etc.
Uma estrategia bastante comum e escolher como premissas, em cada passo, as
menores clausulas, ja que o objetivo e obter a menor clausula de todas: a clausula vazia.
O metodo de resolu cao unit aria est a dentro deste esprito: cada passo de inferencia
produz sempre uma clausula menor do que a maior das premissas.
140 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
Em geral, a estrategia de pesquisa depende do metodo de redu cao do espa co de
pesquisa utilizado. Para efeitos da discussao abaixo, supoe-se que as dedu coes s ao
lineares. Entretanto, as observa coes (talvez com algumas adapta coes) podem valer
para outros tipos de dedu coes.
Se as dedu coes s ao lineares, o espa co de pesquisa pode ser visto como estruturado
em forma de uma arvore (de pesquisa), cuja raiz e a clausula de partida, e em que cada
n o (clausula) C tem como lhos todos os resolventes que podem ser obtidos usando C
como premissa.
Seja uma dedu cao linear C
0
, . . . , C
n
. Uma das premissas para o pr oximo passo de
inferencia e a clausula C
n
. Um dos problemas da estrategia e escolher o literal de C
n
a participar da unica cao; escolhido tal literal, o procedimento poder a se xar apenas
nele (n ao se perde completude por causa disto). Assim, a estrategia de escolha de
tal literal determina uma arvore de pesquisa extremamente (em geral) menor que a
original. Mas, o mais importante n ao e que basta considerar um dos literais de C
n
. O
importante e fazer uma escolha bem feita. Seja o seguinte conjunto de clausulas, a ser
refutado:
1. p(A
1
, B
1
)
.
.
.
i. p(A
i
, B
i
)
.
.
.
n. p(A
n
, B
n
)
n + 1. q(B
1
, C
1
)
.
.
.
n +i. q(B
i
, C
i
)
.
.
.
n +k. q(B
k
, C
k
)
n +k + 1. p(x, y) q(y, z) r(x, z)
n +k + 2. r(A
i
, z)
A ultima clausula corresponderia a uma consulta do tipo z r(A
i
, z)?. Tomando-
a como clausula de partida (e conjunto de suporte, ao mesmo tempo), o incio do
processamento geraria a clausula:
n +k + 3. p(A
i
, y) q(y, z) (n +k + 2, n +k + 1)
Agora, se for escolhido o literal q(y, z) para participar da unica cao, existirao k re-
solventes possveis de serem obtidos, um para cada uma das clausulas de n+1 a n+k,
das formas p(A
j
, B
j
) (1 j k); apenas um deles pode resolver com a clausula i
para obter a clausula vazia. A escolha do literal p(A
i
, y) e bem melhor; neste caso,
Newton Jose Vieira Captulo 3: L ogica de predicados 141
seria gerada a clausula:
n +k + 4. q(B
i
, z) (n +k + 3, i)
e esta s o pode ser resolvida com a clausula n + i, gerando a clausula vazia. Uma es-
trategia que cobre este caso e: escolher um literal com o menor n umero de vari aveis. O
raciocnio por tr as dessa heurstica e: literais com menos vari aveis, usualmente unicam
com menos literais de outras clausulas.
Um segundo tipo de heurstica para escolha do literal, alternativo `a heurstica acima
(ou entao para desempate) seria baseada no calculo efetivo do n umero de resolu coes
possveis envolvendo o literal. Por exemplo, se tal n umero for zero para um determinado
literal, este deve ser obviamente escolhido. Caso contr ario, se existir um literal para o
qual este n umero e 1 e a clausula a ser usada e unit aria, tal literal e um bom candidato
a escolher (e a unica op cao de resolu cao e o resolvente produzido tem um literal a
menos).
Supondo que esteja denida uma heurstica para escolha do literal de C
n
para para
participar da pr oxima aplica cao de resolu cao, tem-se entao uma nova arvore de pesquisa
sem os resolventes (todos redundantes ou in ocuos) que podem ser gerados utilizando
os outros literais. O problema que vem a seguir e ordenar esta arvore de pesquisa e
denir como ela deve ser percorrida. Ordenar a arvore e denir, para as clausulas que
podem resolver com o literal escolhido, em que ordem elas devem ser utilizadas. Uma
possibilidade e utiliz a-las por ordem crescente de comprimento. A arvore ordenada
pode ser percorrida de 3 maneiras b asicas:
(a) em amplitude;
(b) em profundidade;
(c) em diagonal.
No caminhamento em amplitude, s ao gerados todos os resolventes do nvel n da
arvore de pesquisa, antes daqueles do nvel n + 1. Assim, e garantido que, se houver
alguma refuta cao, tempo e mem oria sucientes, ser a encontrada a refuta cao mais curta.
Entretanto, o custo associado em termos de tempo e mem oria gastos e usualmente
proibitivo para este tipo de caminhamento.
No caminhamento em profundidade, gerado um resolvente, nenhum outro do mesmo
nvel que ele (dentre aqueles ainda n ao gerados) e gerado ate que a sub-arvore que o
tem como raiz seja toda explorada. O seu desempenho e altamente dependente da
estrategia de ordena cao.
No caminhamento em diagonal, que e um caminhamento misto, o conjunto de todos
os resolventes ja gerados, e ainda n ao descartados, e considerado como candidato a
premissa para o pr oximo passo de inferencia. A escolha daquele a ser utilizado se
baseia em dois tipos de avalia cao: o merito real da dedu cao gerada e o merito estimado
de se chegar `a clausula vazia a partir da dedu cao. Um exemplo de merito real de uma
dedu cao d = C
0
, . . . , C
n
seria o n umero de clausulas que ela tem (n + 1); o merito
estimado seria uma previs ao do n umero de clausulas que resta gerar para chegar `a
142 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
clausula vazia. Denotando por g(d) o merito real de uma dedu cao e por h(d) o seu
merito estimado, entao uma dedu cao d
1
tem melhor merito do que uma dedu cao d
2
se,
e somente se:
g(d
1
) +h(d
1
) < g(d
2
) +h(d
2
), ou
g(d
1
) +h(d
1
) = g(d
2
) +h(d
2
) e h(d
1
) < h(d
2
).
A fun cao h pode depender de fatores os mais diversos, como n umero de literais, com-
posi cao dos literais, etc. A fun cao h poderia ser uma fun cao da forma:
h(d) = k
0
+k
1
f
1
(C
n
, C) + +k
i
f
i
(C
n
, C).
onde C
n
e a pen ultima clausula de d e C e a clausula a resolver com C
n
para obter
a ultima clausula de d. Cada k
j
e uma constante que e o peso da caracterstica j, e
f
j
(C
n
, C) e a quantidade de elementos da caracterstica j presentes considerando as
clausulas C
n
e C.

E interessante observar que valores apropriados para k
j
podem ser
determinados atraves de experimenta c ao, caso a base de conhecimento seja mais ou
menos est avel e se conhe ca as consultas tpicas (desde que se escolha caractersticas
apropriadas).
Se o criterio de ordena cao for sucientemente bom, a pesquisa em profundidade tem
um melhor desempenho do que a pesquisa em diagonal, principalmente porque gasta
menos overhead de tempo e mem oria.
Um metodo de pesquisa muito utilizado atualmente e de pesquisa em profundidade
iterativa, que, come cando com n = 0, faz pesquisa em profundidade por completo para
a arvore de profundidade n e, se n ao encontrar uma solu cao (no caso, clausula vazia),
incrementa n e repete a pesquisa. Isso pode parecer contraprodutivo `a primeira vista,
ja que, para o nvel n, toda a arvore de profundidade n 1 e revisitada, mas e preciso
lembrar que o ultimo nvel de uma arvore costuma ter mais vertices que a arvore de
profundidade n1. Como isto, o metodo combina o melhor da pesquisa em amplitude
(completeza, solu cao mais curta) com o melhor da pesquisa em profundidade (economia
de mem oria).
Ate agora s o foram consideradas consultas do tipo H [= ?. As respostas a esse
tipo de consulta e sim, caso H [= ; e n ao, caso H [= ; e e n ao sei , caso H ,[= e
,[= . Um outro tipo de consulta envolve a determina cao de termos para os quais
vale determinada armativa. Em outras palavras, pode-se querer obter, n ao apenas
demonstra coes de teoremas, mas tambem o que se denomina uma (ou mais de uma)
realizac ao dos quanticadores existenciais dos teoremas. Por exemplo, seja o conjunto
de clasulas:
1. lho(x, y) lho(y, z) neto(x, z)
2. lho(Carlos, Pedro)
3. lho(Pedro, Marcos)
Seja a consulta xneto(Carlos, x)?. Negando e colocando em forma de clausula:
Newton Jose Vieira Captulo 3: L ogica de predicados 143
4. neto(Carlos, x)
Segue uma refuta cao:
5. lho(Carlos, y) lho(y, z) (4,1)
6. lho(Pedro, z) (5,2)
7. (6,3)
Observe que, ao resolver 6 com 3, a vari avel z foi substituda por Marcos. Se a consulta
for determine x tal que neto(Carlos, x), a dedu cao acima poderia ser usada para
justicar a resposta Marcos. Em geral, para uma consulta do tipo
determine x
1
, . . . , x
n
tais que
em que x
1
, . . . , x
n
s ao as vari aveis livres de , basta considerar tais vari aveis como exis-
tencialmente quanticadas; o processo de resolu cao, ao mesmo tempo que encontra uma
refuta cao para x
1
x
n
, encontra valores (termos) para x
1
, . . . , x
n
. Para extrair
tais valores, uma possibilidade e anexar um literal especial da forma resp(x
1
, . . . , x
n
) `as
clausulas correspondentes a x
1
x
n
. Ao inves de pesquisar pela clausula vazia,
pesquisa-se agora por uma clausula que s o tenha literais com o smbolo predicativo
resp. O exemplo acima caria assim:
4. neto(Carlos, z) resp(z)
5. lho(Carlos, y) lho(y, z) resp(z) (4,1)
6. lho(Pedro, z) resp(z) (5,2)
7. resp(Marcos) (6,3)
Algumas vezes e possvel determinar que x sem determinar com precisao um
valor para x tal que . Neste caso, a clausula nal da refuta cao contem mais de um
literal; a resposta, no caso, e disjuntiva, contendo uma alternativa para cada literal
resposta. Seja, por exemplo, o conjunto de clausulas:
1. adulto(x) tomar(x, R
1
)
2. adulto(x) tomar(x, R
2
)
Seja o problema de determinar z tal que tomar(Manoel, z). Transformando a senten ca
ztomar(Manoel, z) em clausulas e anexando o literal resposta, tem-se:
3. tomar(Manoel, z) resp(z)
Segue uma refuta cao:
4. adulto(Manoel) resp(R
1
) (3,1)
5. tomar(Manoel, R
2
) resp(R
1
) (4,2)
6. resp(R
1
) resp(R
2
) (5,3)
Logo, a resposta e R
1
ou R
2
, ou seja, tomar(Manoel, R
1
) ou tomar(Manoel, R
2
).
(

E interessante observar que respostas disjuntivas aparecem quando h a resolu cao entre
resolventes.)
Exerccios
144 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
1. Encontre um conjunto de clausulas para cada uma das senten cas:
(a) (xp(x) y p(y))
(b) (xp(x) yxq(y, x))
(c) xx = 0 [y y = f(x) z(z = f(x) y = z)]
2. Encontre todos os resolventes dos seguintes pares de clausulas:
(a) p(x) q(x, B) e p(A) q(A, B)
(b) p(x) q(x, x) e q(A, f(A))
(c) p(x, y, u) p(y, z, v) p(x, v, u) p(u, z, w) e p(g(x, y), x, y)
(d) p(v, z, v) p(w, z, w) e p(w, h(x, x), w)
3. Prove, utilizando resolu cao, que:
xy(p(x, y) p(f(y), f(x))) [= xy(p(x, y) p(y, x))
4. Prove que o seguinte conjunto de clausulas e insatisfatvel utilizando resolu cao:
(1) p q r
(2) p q r
(3) p q r
(4) p q r
(5) p q r
(6) p q r
(7) p q r
(8) p q r
5. (a) Verique se p(x, y) q(z) subjuga q(A) p(B, B) r(u).
(b) Prove que p(x, y) r(y, x) n ao subjuga p(A, y) r(z, B).
(c) Seja C
1
= p(x) p(f(x)) e C
2
= p(x) p(f(f(x))). Mostre que C
1
[= C
2
,
mas C
1
n ao subjuga C
2
.
6. Prove que o seguinte conjunto de clausulas e insatisfatvel utilizando resolu cao
linear:
(1) d(x, x)
(2) d(x, y) d(y, z) d(x, z)
(3) p(x) d(g(x), x)
(4) p(x) m(E, g(x))
(5) p(x) m(g(x), x)
(6) m(E, A)
Newton Jose Vieira Captulo 3: L ogica de predicados 145
(7) p(x) d(x, A)
(8) m(E, x) m(x, A) p(f(x))
(9) m(E, x) m(x, A) d(f(x), x)
7. Sejam os seguintes fatos:
(a) xy[(pai(x, y) pai(y, z)) avo(x, z)]
(b) xy pai(y, x)
Utilizando resolu cao com extra cao de respostas, determine x e y tal que avo(x, y).
8. Sejam os seguintes fatos:
(a) Todos que entraram no pas e n ao eram VIPs foram revistados por um agente
da polcia federal.
(b) Paulo C. era contrabandista.
(c) Paulo C. entrou no pas.
(d) Paulo C. s o foi revistado por contrabandistas.
(e) Nenhum contrabandista era VIP.
Utilizando resolu cao com extra cao de respostas, encontre uma pessoa que era,
ambos, contrabandista e agente da polcia federal.
9. Sejam as seguintes clausulas:
(a) p(x) q(x) r(f(x))
(b) q(x) s(x)
(c) q(x) t(x)
(d) r(x) s(x)
(e) r(x) u(x)
(f) p(g(x)) q(h(x))
Utilizando resolu cao com extra cao de respostas, determine x e y tal que
(s(x) t(x)) (u(y) s(y)).
3.5.8

Arvores de prova
Nesta se cao ser a apresentado um sistema dedutivo que pode ser visto como derivado de
resolu cao, por um lado, e como uma generaliza cao de um sistema dedutivo denominado
elimina cao de modelos, por outro. A abordagem a ser utilizada na apresenta cao ser a
justamente a de tentar deriva-lo a partir de resolu cao, para que se tenha uma ideia
ntida do relacionamento entre os dois. Por raz oes did aticas, a apresenta cao ser a feita
a partir de exemplos.
146 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
Seja a seguinte refuta cao linear por resolu cao, em que as 5 primeiras clausulas
comp oem uma base de conhecimento, e a clausula 6 corresponde `a nega cao da consulta:
1. p(x, y) p(x, f(y)) q(x)
2. p(x, y) r(x) q(y)
3. r(g(A))
4. q(g(x))
5. q(f(x))
6. p(x, B)
7. p(x, f(B)) q(x) [6,1]
8. p(g(x), f(B)) [7,4]
9. r(g(x)) q(f(B)) [8,2]
10. r(g(x)) [9,5]
11. [10,3]
Como ja foi dito, resolu cao baseia-se no teorema de Herbrand, no sentido de que deter-
mina (implicitamente) um conjunto de inst ancias insatisfatvel. Abaixo, ser a mostrado
como tal conjunto e determinado para o exemplo acima, passo a passo. Inicialmente,
resolvendo as clausulas 6 e 1, confronta-se duas inst ancias de tais clausulas:
p(x, B)
p(x, B)

p(x, f(B))

q(x)
inst. de 6
inst. de 1
Este tipo de arvore, que ser a denominado arvore de insatisfabilidade, mostra nas folhas
os literais do resolvente atual, mas mostra tambem as instancias computadas ate o
momento. Os n os internos s ao pares de literais: os literais que participam de unica coes
nas aplica coes da regra de resolu cao. No pr oximo passo, resolve-se as clausulas 7 e 4;
a arvore de insatisfabilidade ca assim:
p(g(x), B)
p(g(x), B)

p(g(x), f(B))

q(g(x))
q(g(x))
inst. de 6
inst. de 1
inst. de 4
Observe que basta que o literal folha p(g(x), f(B)) seja insatisfatvel no contexto
da base de conhecimento para que a mesma seja determinada como insatisfatvel. A
resolu cao de 8 com 2 determina a arvore:
Newton Jose Vieira Captulo 3: L ogica de predicados 147
p(g(x), B)
p(g(x), B)

p(g(x), f(B))

q(g(x))
q(g(x)) p(g(x), f(B))

r(g(x))

q(f(B))
inst. de 6
inst. de 1
inst. de 4
inst. de 2
Em seguida, e resolvida 9 com 5, levando `as seguintes inst ancias:
p(g(x), B)
p(g(x), B)

p(g(x), f(B))

q(g(x))
q(g(x)) p(g(x), f(B))

r(g(x))

q(f(B))
q(f(B))
inst. de 6
inst. de 1
inst. de 4
inst. de 2
inst. de 5
Finalmente, ap os a resolu cao de 10 com 3, tem-se um conjunto de inst ancias insatis-
fatvel:
p(g(A), B)
p(g(A), B)

p(g(A), f(B))

q(g(A))
q(g(A)) p(g(A), f(B))

r(g(A))

q(f(B))
q(f(B)) r(g(A))
inst. de 6
inst. de 1
inst. de 4
inst. de 2
inst. de 5 inst. de 3
148 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
Observe como cada literal inferior de cada par de literais da arvore e consequencia
logica do conjunto de clausulas de entrada. Assim, sendo p(g(A), B) consequencia das
clausulas de entrada e p(g(A), B) uma inst ancia de clausula de entrada, o conjunto e
insatisfatvel.
O seguinte exemplo mostra que um conjunto de inst ancias pode ser determinado
como insatisfatvel sem necessariamente encontrar um par complementar para cada
folha da arvore de insatisfabilidade. Seja a refuta cao por resolu cao:
1. p(x) q(x) r(x)
2. p(x) s(x)
3. s(x) p(A)
4. q(A)
5. r(y)
6. p(y) q(y) (5,1)
7. p(A) (6,4)
8. s(A) (7,2)
9. p(A) (8,3)
10. (9,7)
A arvore de insatisfabilidade correspondente seria:
r(A)
inst. de 5
r(A)

`
`
`
p(A) q(A)
inst. de 1
p(A)
s(A)
inst. de 2
q(A)
inst. de 4
s(A)
p(A)
inst. de 3
Observe como as clausulas 2 e 3 contradizem p(A). Em resolu cao linear, isto e tratado
por resolu cao entre resolventes.
Uma arvore de prova e uma representa cao alternativa de uma arvore de insatisfa-
bilidade. Por exemplo, seja a seguinte arvore de insatisfabilidade:
Newton Jose Vieira Captulo 3: L ogica de predicados 149
p(x)
p(x)

q(A, x)
q(A, x)

r(A) p(A)
p(A)
s(x, B)
s(x, B)

r(B) p(x)
A arvore de prova correspondente seria:
p(x)

q(A, x)

r(A) p(A)
s(x, B)

r(B)
_
`

p(x)
Os literais dentro de ret angulos, que s ao denominados literais expandidos, s ao os com-
ponentes inferiores dos pares de literais que guram na arvore de insatisfabilidade. Os
literais dentro de ovais s ao denominados literais reduzidos. Os literais restantes s ao
denominados literais candidatos.
O sistema dedutivo que d a suporte para um procedimento de prova baseado em
arvores de prova tem dois tipos de linguagens: a linguagem de clausulas, para expressar
axiomas extra-logicos, e a linguagem de cl ausulas estruturadas, para expressar formulas
deduzidas. Esta ultima nada mais e do que o conjunto das arvores de prova linearizadas.
Uma cl ausula estruturada e uma express ao da forma L, em que L e um literal
e e um conjunto de literais e/ou clausulas estruturadas (que pode ser vazio). Os
literais M de todas as subclausulas estruturadas M que ocorrem em uma clausula
estruturada L s ao denominados literais expandidos; os literais restantes de L s ao
divididos em duas classes: os denominados literais candidatos, e os literais reduzidos.
A clausula estruturada correspondente `a arvore de prova exemplicada acima seria
(literais reduzidos s ao colocados entre parentesis angulares):
p(x)q(A, x)r(A), p(A), s(x, B)r(B), p(x))
Daqui para frente, dentre as nota coes de arvore de prova e de clausula estruturada,
ser a usada em cada caso a que for julgada mais conveniente.
150 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
Seja L um literal expandido de uma arvore de prova e M
1
, . . . , M
n
os seus lhos.
Entao, como pode ser facilmente vericado, L M
1
M
n
e uma inst ancia de
uma clausula da base de conhecimento. Tal clausula e logicamente equivalente a (M
1

M
n
) L (onde todas as vari aveis desta ultima s ao universalmente quanticadas).
Logo uma arvore de prova induz uma leitura das inst ancias (e tambem das clausulas)
em forma de implica coes. Para o exemplo acima, as inst ancias em forma de implica coes
s ao (observe que existe uma para cada literal expandido):
. q(A, x) s(x, B) p(x)
. r(A) p(A) q(A, x)
. r(B) p(x) s(x, B)
. p(A)
Assim, e facil entender porque, ao inves de tentar unicar atomos de literais com sinais
contr arios, ser a tentada a unica cao de atomos de literais de mesmo sinal na regra de
expans ao a ser apresentada abaixo.
O sistema dedutivo tem 3 regras de inferencia: as regras de codica cao, expans ao e
redu cao. A regra codica c ao, aplicada a uma clausula L
1
L
n
d a como resultado
uma clausula estruturada L
1
, . . . , L
n
. Isso e justic avel pelo fato de que a clausula
e logicamente equivalente a (L
1
L
n
) . Com isto, toda arvore de prova ter a,
efetivamente, uma raiz: .
A regra de expans ao e aplicada a uma clausula e a uma clausula estruturada para
produzir uma clausula estruturada: uma expans ao de uma clausula estruturada
L
1
via uma clausula M
0
M
1
M
n
, onde L
1
e um literal candidato tal
que L
1
e M
0
tem um umg , e a clausula estruturada L
1
M
1
, . . . , M
n
.
Seja, por exemplo a arvore de prova:
.
.
.
p(x, y)

q(x) r(y)
p(y, z)
Uma expans ao via a clausula q(x) q(f(x)) p(w, f(x)) resultaria em:
Newton Jose Vieira Captulo 3: L ogica de predicados 151
.
.
.
p(f(x), y)

q(f(x))

q(x) p(w, f(x))


r(y)
p(y, z)
A regra de reduc ao e aplicada a uma clausula estruturada para produzir uma
clausula estruturada: uma redu cao de uma clausula estruturada L
1
L
2

onde L
1
e um literal expandido ancestral de um literal candidato de sinal contr ario L
2
,
tal que [L
1
[ e [L
2
[ tem um umg , e a clausula estruturada L
1
L
2
) .
Uma redu cao aplicada `a ultima arvore de prova acima resultaria em:
.
.
.
p(f(x), f(x))

q(f(x))

q(x)
_
`

p(f(x), f(x))
r(f(x))
p(f(x), z)
152 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
O literal raiz, , pode funcionar como coletor de resposta, desde que:
(a) a clausula codicada seja da nega cao da consulta; e
(b) n ao haja expans oes com clausulas da nega cao da consulta (neste caso, a resposta
e disjuntiva).
Por exemplo, sejam as seguintes clausulas:
1. p(A) s(x)
2. q(A, B)
3. s(B)
Seja o problema de determinar x e y tais que p(x)q(x, y). Uma clausula correspondente
a xy(p(x) q(x, y)) e
4. p(x) q(x, y)
Codicando a clausula 4, e introduzindo as vari aveis x e y no literal raiz, obtem-se:
(x, y)

p(x) q(x, y)
Expandindo com a clausula 1:
(A, y)

p(A)
s(x)
q(A, y)
Expandindo com a clausula 2:
(A, B)

p(A)
s(x)
q(A, B)
Newton Jose Vieira Captulo 3: L ogica de predicados 153
Finalmente, expandindo com a clausula 3:
(A, B)

p(A)
s(B)
q(A, B)
Na verdade, n ao e preciso coletar a resposta na raiz, visto que a inst ancia da clausula
presente na arvore ja d a a resposta. Mesmo assim, esta visao e util quando se considera
a implementa cao de arvores de prova, como ser a visto.
Em resolu cao, respostas disjuntivas s ao causadas por resolu cao entre resolventes
ou por resolu cao com clausula da nega cao da consulta. Utilizando arvores de prova,
elas s ao causadas unicamente por expans ao com clausula da nega cao da consulta. A
redu cao, que em certo sentido substitui a resolu cao entre resolventes, n ao propicia
resposta disjuntiva (ou, por outro lado, propicia, mas as disjun coes s ao identicas).
Sejam as seguintes clausulas:
1. p(x) q(x)
2. p(A) q(B)
Seja o problema de determinar y tal que q(y):
3. q(y)
Mostra-se abaixo uma arvore de prova, com uma indica cao das inst ancias determinadas,
obtida a partir da clausula 3:
(B)
inst. de 3: q(B)
q(B)
inst. de 2: p(A) q(B)
p(A)
inst. de 1: p(A) q(A)
q(A) inst. de 3: q(A)
A resposta e obtida das inst ancias de 3: q(A) q(B).
154 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
Observe que cada inst ancia de clausula da nega cao da consulta, que gure na arvore
de prova, contribui com um elemento da disjun cao que constitui a resposta. Sejam as
clausulas:
1. p(x) q(x)
2. p(A) q(B) r(A)
Seja o problema de determinar y tal que p(y) r(y):
3. p(y)
4. r(y)
Mostra-se abaixo uma arvore de prova, com uma indica cao das inst ancias determinadas,
obtida a partir da clausula 3:
(B)
inst. de 3: p(B)
p(B)
inst. de 1: p(B) q(B)
q(B)

inst. de 2: p(A) q(B) r(A)


p(A) inst. de 3: p(A) r(A) inst. de 4: r(A)
A resposta e obtida das inst ancias de 3 e 4: p(A) p(B) r(A).
Alguns metodos de elimina cao de clausulas estruturadas s ao:
(a) nenhum literal candidato pode ter um literal expandido identico como ancestral;
(b) nenhum literal expandido pode ter um literal expandido identico ou complementar
como ancestral;
(c) n ao pode haver dois literais candidatos complementares irm aos.
A cada literal expandido, L, corresponde um lema constitudo dos literais:
(a) L; e
(b) todo literal expandido M, tal que L seja descendente de M e ancestral de um
literal reduzido M.
Abaixo, mostra-se um exemplo de arvore de prova com os lemas correspondentes aos
literais expandidos (ao lado dos mesmos, entre colchetes).
Newton Jose Vieira Captulo 3: L ogica de predicados 155

(5)
p
[p]

(1)
q
[q p] r [r] (4)

(2)
s [s q]
_
`

p
(3)
_
`

q
Os n umeros entre parentesis indicam as clausulas que foram utilizadas.
Pode-se mostrar que todo lema, como acima denido, e consequencia logica da
base de conhecimento. O uso de lemas durante um processo de dedu cao pode ser
considerado por uma estrategia de pesquisa (embora n ao esteja claro como tal uso
possa ser controlado). Os lemas podem tambem ser utilizados em um processo de
explica cao de resposta. Seja o seguinte trecho de uma arvore de prova:
L
0

L
1
L
n
_
`

M
1

_
`

M
k
n, k 0
Uma forma de explicar uma resposta e exibir para cada literal expandido L
0
um trecho
da seguinte forma:
Para concluir
lema(L
0
)
utilizei a clausula c [, segundo a qual:
L
1
L
n
L
0
M
1
M
k
.
Determinei:
. lema(L
1
)
.
.
.
. lema(L
n
)].
onde lema(L
i
) e o lema correspondente ao literal expandido L
i
, e a parte entre colchetes
s o e exibida se n > 0. Por exemplo, uma explica cao para a resposta correspondente `a
arvore de prova do ultimo exemplo seria:
156 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
Para concluir
p
utilizei a clausula 1, segundo a qual:
q r p.
Determinei:
. q p
. r.
Para concluir
q p
utilizei a clausula 2, segundo a qual:
s q p.
Determinei:
. s q.
Para concluir
s q
utilizei a clausula 3.
Para concluir
r
utilizei a clausula 4.
Observe que as unicas regras de inferencia utilizadas neste tipo de explica cao s ao:
(a) De uma clausula C, pode-se inferir uma inst ancia da mesma;
(b) De
L
1
L
n
M
1
M
k
,
L
1

1
,
.
.
.
L
n

n
,
pode-se inferir:
M
1
M
k

1

n
.
Evidentemente, tal tipo de explica cao s o se aplica se a clausula codicada for da
nega cao da consulta e se nenhuma clausula da nega cao da consulta for utilizada para
expans oes (caso em que a resposta e disjuntiva). Entretanto, e possvel transformar
Newton Jose Vieira Captulo 3: L ogica de predicados 157
uma arvore de prova em outra onde a clausula codicada e qualquer uma das clausulas
utilizadas em expans oes. O fato b asico que corrobora tal transforma cao e que uma
formula da forma
L
1
L
2
L
n
M
e logicamente equivalente a qualquer outra em que o literal M seja transferido com-
plementado para a condi cao da implica cao e/ou algum literal L
i
seja transferido com-
plementado para a conclusao (caso a condi cao que vazia, omite-se o conectivo de
implica cao, e caso a conclusao que vazia, introduz-se o literal ). A condi cao e sem-
pre uma conjun cao, e a conclusao e sempre uma disjun cao de literais. Por exemplo, a
formula acima e equivalente `as seguintes formulas, dentre outras:
M L
1
L
i1
L
i+1
L
n
L
i
M L
1
L
n
M L
1
L
n
.
Utilizando esta equivalencia, a arvore do ultimo exemplo poderia ser transformada para
que a clausula 3 gurasse como a clausula codicada:

(3)
q
s

(2)
q p
(5)

(1)
p r (4)
`
As setas indicam sub-arvores ja fechadas para certos literais, para que n ao haja
necessidade de repetir tais sub-arvores para os mesmos (literais q e p, no exemplo).
Uma maneira de explicar uma resposta disjuntiva da forma
1

2

n
, e
explicar sob quais condi coes cada
i
se verica. Para dar uma ideia de como isto pode
158 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
ser feito, sejam as seguintes clausulas:
1. adulto(x) tomar(x, R1)
2. adulto(x) tomar(x, R2)
Seja o problema de determinar y tal que tomar(Manoel, y):
3. tomar(Manoel, y)
Segue uma arvore de prova, a partir da qual se extrai a resposta tomar(Manoel, R1)
tomar(Manoel, R2):

(3)
tomar(Manoel, R1)
(1)
adulto(Manoel)
(2)
tomar(Manoel, R2) (3)
Tal arvore pode ser transformada em duas, interligadas por literais de uma clausula
(no caso uma tautologia):

(3)
tomar(Manoel, R1)
(1)
adulto(Manoel)

(3)
tomar(Manoel, R2)
(2)
adulto(Manoel)
Uma explica cao baseada nestas arvores seria:
Para concluir
tomar(Manoel, R1) tomar(Manoel, R2)
utilizei o fato de que:
adulto(Manoel) adulto(Manoel).
Determinei:
. adulto(Manoel) tomar(Manoel, R1)
. adulto(Manoel) tomar(Manoel, R2).
Newton Jose Vieira Captulo 3: L ogica de predicados 159
O seguinte conjunto de clausulas forma a base de outro exemplo:
1. doutor(x) leciona(x, Ps)
2. mestre(x) leciona(x, Gr)
3. graduado(x) leciona(x, Gr)
4. graduado(x) mestre(x) doutor(x)
Seja o problema de determinar y tal que leciona(Manoel, y):
5. leciona(Manoel, y)
Segue uma arvore de prova, a partir da qual se extrai a resposta leciona(Manoel, Ps)
leciona(Manoel, Gr):

(5)
leciona(Manoel, Ps)
(1)
doutor(Manoel)
(4)
>
>
>
>
>

mestre(Manoel)
(2)
leciona(Manoel, Gr) (5)
graduado(Manoel)
(3)
leciona(Manoel, Gr) (5)
Tal arvore pode ser transformada em tres, interligadas por literais de uma clausula de
entrada (clausula 4):

(5)
leciona(Manoel, Ps)
(1)
doutor(Manoel)

(5)
leciona(Manoel, Gr)
(2)
mestre(Manoel)

(5)
leciona(Manoel, Gr)
(3)
graduado(Manoel)
Uma explica cao baseada nestas arvores seria:
160 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
Para concluir
leciona(Manoel, Ps) leciona(Manoel, Gr)
utilizei a clausula 4, segundo a qual:
graduado(Manoel) mestre(Manoel) doutor(Manoel).
Determinei:
. graduado(Manoel) leciona(Manoel, Gr)
. mestre(Manoel) leciona(Manoel, Gr)
. doutor(Manoel) leciona(Manoel, Ps).

Arvores de prova podem ser implementadas utilizando os conceitos de compartil-


hamento de estruturas e de registro de ativa c ao. A ideia fundamental de compartil-
hamento de estruturas e, na unica cao, apenas registrar os termos que substituem as
vari aveis, sem efetuar realmente as substitui coes; com isto, a unica cao deixa de ser
um processo destrutivo (n ao modica as clausulas manipuladas).
Os registros de ativa cao s ao comumente utilizados em implementa coes de linguagens
de programa cao. Cada chamada de procedimento implica na aloca cao de uma area de
mem oria, denominada registro de ativa cao, que contem, dentre outras informa coes, o
endere co do registro de ativa cao do procedimento chamador, o endere co de retorno,
os valores dos par ametros e os valores das vari aveis locais do procedimento. A ideia
fundamental, e considerar, por analogia, uma clausula de entrada como se fosse um
procedimento, sendo suas vari aveis consideradas locais ao procedimento; cada literal
da clausula e considerado um cabe calho possvel para o procedimento; um literal can-
didato e considerado como uma chamada de procedimento; o metodo de passagem de
par ametros e unica cao. Assim, a aplica cao da regra de expans ao seria a efetiva cao
de uma chamada de procedimento.

E interessante observar ainda que o unico tipo
de instru cao do procedimento clausula e a chamada de procedimento. Analoga-
mente `a implementa cao de linguagens de programa cao, uma chamada de procedimento
(aplica cao da regra de expans ao) implica na aloca cao de um registro de ativa cao (lit-
eral expandido), que ir a conter: o endere co do registro de ativa cao do procedimento
chamador (endere co do literal pai), o endere co de retorno (endere co do literal uti-
lizado na expans ao), os valores dos par ametros (endere cos dos termos que substituem
as vari aveis). O procedimento de unica cao e que estabelece estes ultimos valores.
Apesar de, em certo sentido, as vari aveis serem locais a uma clausula, uma unica cao
pode causar substitui coes em outros registros de ativa cao (literais expandidos) que n ao
o atual (do literal que est a sendo expandido); este fato se deve ao metodo singular
de passagem de par ametros (unica cao), fato an alogo `aquele propiciado, por exemplo,
pelo metodo de passagem de par ametros por referencia em linguagens de programa cao.
Ao contr ario das linguagens de programa cao usuais, uma chamada de procedimento
(literal candidato) pode causar a ativa cao de varios procedimentos (varias clausulas
podem ser usadas na expans ao). Assim o registro de ativa cao, deve conter tambem
uma informa cao relativa `a pr oxima clausula a ser utilizada em expans ao do literal
candidato (caso as clausulas utilizadas anteriormente n ao levem a uma sub-arvore sem
literais candidatos).
Newton Jose Vieira Captulo 3: L ogica de predicados 161
No modelo de implementa cao a ser apresentado, a arvore de pesquisa e percorrida
em profundidade, a partir de uma clausula da nega cao da consulta. Entretanto, nada
impede que uma arvore de prova seja construda em largura, em diagonal ou em pro-
fundidade. O modelo de implementa cao ser a esbo cado a partir de um exemplo. Sejam
as seguintes clausulas de entrada (. e um smbolo funcional usado na forma inxada):
1. emenda(Nil, y, y)
2. emenda(u.x, y, u.z) emenda(x, y, z)
3. sublista(y, w) emenda(x, y, z) emenda(z, v, w)
Suponha que se deve determinar x e y tais que sublista(A.x, y.Nil). Adiciona-se, entao,
a clausula:
3. sublista(A.x, y.Nil)
Para efeitos de aplica cao do algoritmo de unica cao, supoe-se que as clausulas s ao
representadas em forma de grafos (omite-se aqui qualquer proposta de armazenamento
fsico):
[1] = emenda

-
Nil

1
`
`

v
0
[2] =
emenda

-
.

-
v
0
`
`
v
1

v
2
`
`
.

-
`
`
v
3

emenda

`
-
`
`

[3] =
sublista

-
v
0
`
`
v
1

emenda

-
v
2
-
`
`
v
3

emenda


v
4
`
`
`
162 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
[4] =

-
v
0
`
`
v
1

sublista

-
.

-
A

6
`
`
`
`
`
.

5
` `
`
Nil

7
Assim, uma clausula e uma lista de literais; cada literal e uma arvore cuja raiz e o
seu smbolo predicativo, eventualmente precedido por ; cada termo e uma arvore,
estruturada da forma obvia. Sub-termos de uma clausula podem ser compartilhados,
sendo que as vari aveis de uma clausula devem ser obrigatoriamente compartilhadas,
como mostrado no exemplo acima. A cada vari avel e associado um n umero. Tal n umero,
que no exemplo e ondice de v, ser a utilizado como deslocamento para endere car o local
associado `a vari avel em um registro de ativa cao (local onde e anotado, pelo algoritmo
de unica cao, qual termo substitui a vari avel). Observe que os nomes das vari aveis
s ao descartados e substitudos por tais n umeros. Os n umeros entre colchetes, acima,
representam os endere cos das clausulas indicadas pelas setas duplas. Os n umeros entre
parentesis representam os endere cos dos termos que aparecem ao lado dos mesmos. Os
endere cos das vari aveis v
i
tambem ser ao referenciados, mas para n ao sobrecarregar os
desenhos, estes ser ao representados, simplesmente, por v
i
. Dado o endere co E de um
dos registros acima, o conte udo do mesmo ser a referenciado por E. simb, e o endere co
do registro referente ao i-esimo argumento ser a referenciado por E. arg
i
. No caso em
que E aponta para registro de uma vari avel v
i
, E. simb contem i.
Assume-se que, para cada smbolo predicativo, existem duas listas de clausulas:
uma em que ele aparece com o smbolo da nega cao, e outra em que ele aparece sem
tal smbolo. Os incios das listas de clausulas para um smbolo predicativo p ser ao
referenciados utilizando-se as nota coes:
ListaCl[p].pos; e
ListaCl[p].neg.
Cada registro de uma destas listas contem pelo menos tres informa coes: o endere co de
uma clausula que contem o smbolo predicativo; o endere co de um literal (da clausula)
que contem o smbolo predicativo; e o endere co do pr oximo registro. Assume-se que tais
registros est ao ordenados pela ordem em que as clausulas ser ao utilizadas em expans oes.
Para o exemplo acima, poder-se-ia ter:
ListaCl[].pos

[4.1]

Newton Jose Vieira Captulo 3: L ogica de predicados 163
ListaCl[sublista].pos

[3.1]

ListaCl[sublista].neg

[4.2]

ListaCl[emenda].pos

[1.1]

[2.1]
ListaCl[emenda].neg

[2.2]

[3.2]

[3.3]
Cada registro de ativa cao (RA), representando um literal expandido ou reduzido,
tem os seguintes campos:
reg: contem o tipo do literal (expandido ou reduzido);
pai: contem o endere co do RA pai;
lit: contem o endere co do literal que foi expandido ou reduzido;
cls: se o literal foi expandido, contem o endere co de um registro de uma lista de
clausulas (registro que contem o par [clausula, literal] utilizado na expans ao); se
o literal foi reduzido, contem o endere co do RA que representa o literal expandido
usado na redu cao;
lds: contem endere co do topo da lista de desligamento (caso o presente RA seja des-
feito, as unica coes a partir de lds do RA anteriormente alocado ate este lds
devem ser desfeitas);
amb: para cada vari avel da clausula indicada por cls, contem um par [endere co do
termo que substitui a vari avel, endere co do RA do literal que contem o termo],
se o literal foi expandido; se o literal foi reduzido, n ao contem nada.
Antes de ver como o exemplo acima seria processado utilizando esse tipo de estrutura,
apresenta-se na Figura 3.5 um algoritmo de unica cao adaptado para a mesma. A
diferen ca b asica entre este e o apresentado na Figura 3.2 e que agora um termo e
representado por duas informa coes: o endere co do termo, e o endere co do RA que
representa o literal em que o termo aparece. No algoritmo abaixo, T
1
e T
2
tem dois
campos, um (T
i
. end) que contem o endere co do termo e outro que contem o endere co do
RA (T
i
. ra). Se R e o endere co de um RA, R.amb e um vetor de pares, como ressaltado
acima; cada elemento desses pares e referenciado por R. amb[k]. end e R. amb[k]. ra
(onde k e o n umero associado a uma vari avel). Algumas linhas do algoritmo s ao
numeradas para posterior referencia.
A seguir, comenta-se as linhas numeradas do algoritmo:
164 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
proc unica(termos T1, T2) retorna booleano:
| termos a unicar pares (end, ra)
1. se T1 = T2 entao
retorne verdadeiro
senaose T1. end contem variavel entao
se T1. ra. amb[T1. end. simb]. end ,= entao
2. retorne unica(T1. ra. amb[T1. end. simb], T2)
senao
3. se nao ocorre(T1, T2) entao
4. T1. ra. amb[T1. end. simb] := T2;
5. empilhe-dsl(T1. ra, T1. end. simb);
retorne verdadeiro
mse
mse
senaose T2. end contem variavel entao
6. retorne Unica(T2, T1)
senaose T1. end. simb = T2. end. simb entao
para i de 1 ate n umero de argumentos de T1. end. simb faca
7. se nao unica((T1. end. argi, T1. ra), (T2. end. argi, T2. ra)) entao
va para DESFAZ-Dsl
mse
mpara;
retorne verdadeiro
mse;
8. DESFAZ-Dsl: desfaz-subs(); retorne falso
m unica
Figura 3.5: Algoritmo de unica cao adaptado.
Newton Jose Vieira Captulo 3: L ogica de predicados 165
proc ocorre(variavel V , termo T) retorna booleano:
| variavel e termo pares (end, ra)
se T. end contem variavel entao
se T. ra. amb[T. end. simb]. end ,= entao
retorne ocorre(V , T. ra. amb[T. end. simb])
senao
retorne V = T
m
senaose T. end contem constante entao
retorne falso
senao
para i de 1 ate n umero de argumentos de T. end. simb faca
se ocorre(V , (T. end. argi, T. ra)) entao
retorne verdadeiro
mse
mpara;
retorne falso
mse
m ocorre
Figura 3.6: Algoritmo ocorre adaptado.
1. Se T
1
= T
2
, entao os termos s ao os mesmos; observe que n ao basta que T
1
. end seja
igual a T
2
. end, pois as vari aveis que ocorrerem na arvore de raiz T
1
. end (supondo
T
1
. end = T
2
. end) podem ter substitui coes diferentes anotadas em T
1
. ra. amb e
T
2
. ra. amb.
2. Se T
1
. ra. amb[T
1
. end. simb]. end ,= , signica que a vari avel em T
1
. end ja
foi substituda por um termo; logo, tal termo, cujo endere co est a em T
1
. ra
. amb[T
1
. end. simb]. end e cujas vari aveis podem ter substitui coes em T
1
. ra
. amb[T
1
. end. simb]. ra, deve ser unicado com T
2
.
3. A fun cao ocorre verica se uma vari avel ocorre em um termo, tambem vericando
se as vari aveis do termo ja foram substitudas. Veja a Figura 3.6
4. A vari avel e substituda copiando o termo no campo amb do RA que contem
espa co para a vari avel.
5. A substitui cao e anotada na lista (que e uma pilha) de desligamento, para que
possa ser desfeita em caso de (a) insucesso da unica cao, ou (b) de desaloca cao
do RA que est a sendo construdo; para desfaze-la, bastara recuperar T
1
. ra e
T
1
. end. simb e fazer T
1
. ra. amb[T
1
. end. simb]. end := .
6. Esta chamada recursiva pode ser eliminada repetindo o que foi feito para T
1
, para
T
2
.
7. (T
1
. end. arg
i
, T
1
. ra) e o par cujo primeiro elemento e o endere co do (registro
relativo ao) i-esimo argumento, e cujo segundo elemento e o mesmo de T
1
; para
T
2
, a observa cao e an aloga.
166 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
8. Em caso de insucesso na unica cao, as substitui coes ja feitas s ao desfeitas.
Agora ser a demonstrado como uma m aquina de inferencia poderia processar o ex-
emplo. Supondo um conjunto de suporte constitudo apenas da clausula 4, esta e
codicada, resultando na aloca c ao de um RA para o literal expandido (literal em
[4.1], indicado por ListaCl[].pos):
RA
0
reg
expans ao
pai

lit
cls
4.1)
lds 0

amb[0]

amb[1]

Neste registro de ativa cao, que representa o literal expandido , o campo lit contem
, embora conceitualmente ele pudesse conter o endere co do literal (que e aquele
que contradiz ). Este e o unico RA em que o campo lit contem . O campo cls
contem o endere co do registro da lista ListaCl[].pos, que contem o endere co [4.1]; de
uma forma geral, ser a representado aqui por i.j), o endere co do registro da lista que
contem o endere co [i.j]. O campo lds contem 0; assume-se que a lista de desligamento
e uma pilha implementada em um vetor, a partir do elemento de ndice 0. Os campos
amb[0] e amb[1] contem espa cos para as eventuais substitui coes das vari aveis v
0
e v
1
,
respectivamente, sendo que amb[0].end (que vem em primeiro lugar) conter a o endere co
do termo que substituir v
0
, e amb[0].ra conter a o endere co do RA que contem espa co
para as vari aveis do termo.
Neste ponto existe um unico literal candidato, o literal [4.2] (no contexto do RA
Newton Jose Vieira Captulo 3: L ogica de predicados 167
RA
0
). Em ListaCl[sublista].pos existe apenas uma possibilidade de expans ao a tentar:
clausula 3, literal em [3.1]. Expandindo, obtem-se:
RA
0
reg
expans ao
pai

lit
cls
4.1)
lds 0

amb[0]

amb[1]

RA
1
expans ao
RA
0
[4.2]
3.1)
2

4
RA
0

5
RA
0

Observe como as vari aveis v


0
e v
1
foram instanciadas com os termos 4 e 5 da clausula 4.
A lista de desligamento contem nas posi coes 0 (campo lds do pai de RA
1
) a 1 (campo lds
de RA
1
, menos 1), as informa coes necessarias para desfazer as substitui coes efetuadas,
caso RA
1
tenha que ser desfeito posteriormemte.
Agora existem 2 literais candidatos: os literais em [3.2] e [3.3], no contexto de RA
1
.
A lista de literais candidatos pode ser uma lista ordenada de acordo com a estrategia de
sele cao utilizada. A cada expans ao, e retirado um literal e introduzido os novos literais
da clausula utilizada; neste momento, a lista de literais candidatos pode ser reorgani-
zada. Para efeitos do exemplo, supoe-se que novos literais s ao sempre introduzidos no
incio da lista, na ordem em que aparecem nas clausulas de entrada. Assim, o pr oximo
literal a ser expandido ser a aquele em [3.2]. A lista em ListaCl[emenda].pos indica
duas possibilidades: tentar expandir com a clausula 1, literal 1, ou com a 2, literal 1.
Supondo que as tentativas ser ao efetuadas na ordem indicada pela lista, tem-se entao:
168 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
RA
0
reg
expans ao
pai

lit
cls
4.1)
lds 0

amb[0]

amb[1]

RA
1
expans ao
RA
0
[4.2]
3.1)
2

4
RA
0

5
RA
0

1
RA
2

4
RA
0

RA
2
expans ao
RA
1
[3.2]
1.1)
5
v
0
RA
1
Agora existe apenas 1 literal candidato: o literal em [3.3], no contexto de RA
1
. Tal
literal e emenda(v
3
, v
4
, v
1
), com as vari aveis instanciadas da seguinte forma:
v
3
: A.v
0
no contexto RA
0
, sendo que v
0
em RA
0
n ao est a instanciada;
v
4
: n ao est a instanciada;
v
1
: v
1
.Nil no contexto RA
0
, sendo que v
1
em RA
0
n ao est a instanciada.
Portanto, a tentativa de expandir com a clausula [1] n ao tem sucesso (Nil n ao unica
com A.v
0
). A pr oxima clausula da lista que come ca em ListaCl[emenda].pos e a clausula
2 (literal 1). Fazendo a expans ao obtem-se:
Newton Jose Vieira Captulo 3: L ogica de predicados 169
RA
0
reg
expans ao
pai

lit
cls
4.1)
lds 0

amb[0]

6
amb[1]
RA
0
RA
1
expans ao
RA
0
[4.2]
3.1)
2

4
RA
0

5
RA
0

1
RA
2

4
RA
0

RA
2
expans ao
RA
1
[3.2]
1.1)
5
v
0
RA
1
RA
3
expans ao
RA
1
[3.3]
2.1)
10

6
RA
0
v
0
RA
0
v
4
RA
1

7
RA
0
Existe apenas 1 literal candidato: o literal em [2.2], no contexto de RA
3
. Tal literal
e emenda(v
1
, v
2
, v
3
), com as vari aveis instanciadas da seguinte forma:
v
1
: v
0
no contexto RA
0
, sendo que v
0
em RA
0
n ao est a instanciada;
v
2
: v
4
no contexto RA
1
, sendo que v
4
em RA
1
n ao est a instanciada;
v
3
: Nil no contexto RA
0
(neste caso, o contexto n ao e importante porque Nil n ao
contem vari aveis).
Portanto, ele unica com o literal candidato emenda(Nil, v
0
, v
0
) (este no novo contexto
RA
4
), levando `a seguinte situa cao:
170 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
RA
0
reg
expans ao
pai

lit
cls
4.1)
lds 0

1
amb[0]
RA
4

6
amb[1]
RA
0
RA
1
expans ao
RA
0
[4.2]
3.1)
2

4
RA
0

5
RA
0

1
RA
2

4
RA
0
v
3
RA
3
RA
2
expans ao
RA
1
[3.2]
1.1)
5
v
0
RA
1
RA
3
expans ao
RA
1
[3.3]
2.1)
10

6
RA
0
v
0
RA
0
v
4
RA
1

7
RA
0
RA
4
reg
expans ao
pai RA
3
lit
[2.2]
cls
1.1)
lds 13
v
2
amb[0]
RA
3
Para recuperar x e y tais que sublista(A.x, y.Nil), basta vericar, em RA
0
, amb[0]
(que contem a substitui cao efetuada para x) e amb[1] (que contem a substitui cao efet-
uada para y):
amb[0] contem 1/RA
4
; como 1 e o endere co de Nil, x = Nil;
amb[1] contem 6/RA
0
; como 6 e o endere co de A, y = A.
A seguir, mostra-se como o procedimento de prova agiria para tentar encontrar
uma nova resposta para a consulta original, no intuito de demonstrar o processo de
backtracking utilizado.
Para tentar encontrar outra resposta, basta agir como se houvesse falha na ultima
expans ao ([2.2] no contexto de RA
3
com [1.1] no contexto de RA
4
). Ou seja, desfaz-se
RA
4
, antes desfazendo-se as liga coes anotadas em lds[10] e lds[11]; com isto, obtem-se
exatamente a situa cao anterior `a cria cao de RA
4
. Tem-se, entao, uma expans ao de [2.2]
no contexto de RA
3
com a pr oxima (e unica) alternativa: [2.1] no contexto de um novo
RA. Neste caso, o algoritmo de unica cao falha. Desfaz-se entao RA
3
e, como n ao h a
nova alternativa de expans ao para [3.3] no contexto de RA
2
, ja que foram exploradas
Newton Jose Vieira Captulo 3: L ogica de predicados 171
ambas as alternativas [1.1] e [2.1], desfaz-se tambem RA
2
. Existe uma outra alternativa
para expans ao de [3.2] no contexto de RA
1
: [2.1]. Fazendo-se a expans ao, obtem-se:
RA
0
reg
expans ao
pai

lit
cls
4.1)
lds 0

amb[0]

amb[1]

RA
1
expans ao
RA
0
[4.2]
3.1)
2

4
RA
0

5
RA
0

2
RA
2

3
RA
2

RA
2
expans ao
RA
1
[3.2]
2.1)
5

4
RA
0

Existem agora dois literais candidatos: [2.2] no contexto de RA


2
, e [3.3] no contexto
de RA
1
. Escolhendo-se o primeiro e expandindo com [1.1] tem-se:
172 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
RA
0
reg
expans ao
pai

lit
cls
4.1)
lds 0

amb[0]

amb[1]

RA
1
expans ao
RA
0
[4.2]
3.1)
2

4
RA
0

5
RA
0

2
RA
2

3
RA
2

RA
2
expans ao
RA
1
[3.2]
2.1)
5

1
RA
3

4
RA
0

4
RA
0
RA
3
expans ao
RA
2
[2.2]
1.1)
8

4
RA
0
Agora existe um unico candidato: [3.3] no contexto de RA
1
. Existem duas possibil-
idades: expandir com [1.1] ou com [2.1]. A tentativa de expandir com [1.1] n ao e bem
sucedida; assim, expande-se com [2.1], obtendo-se:
Newton Jose Vieira Captulo 3: L ogica de predicados 173
RA
0
reg
expans ao
pai

lit
cls
4.1)
lds 0

amb[0]

v
0
amb[1]
RA
4
RA
1
expans ao
RA
0
[4.2]
3.1)
2

4
RA
0

5
RA
0

2
RA
2

3
RA
2

RA
2
expans ao
RA
1
[3.2]
2.1)
5

1
RA
3

4
RA
0

4
RA
0
RA
3
expans ao
RA
2
[2.2]
1.1)
8

4
RA
0
RA
4
expans ao
RA
1
[3.3]
2.1)
11
v
0
RA
2

4
RA
0
v
4
RA
1

7
RA
0
Existem duas alternativas para expans ao do literal candidato [2.2] no contexto de
RA
4
: [1.1] e [2.2]. Mas, as duas op coes acarretam falha na unica cao. Efetuando-se o
processo de backtracking, ser ao desfeitos os RAs RA
4
e RA
3
, e a pr oxima tentativa e
a de expandir [2.2] no contexto de RA
2
com [2.1]. E assim por diante (existira alguma
outra solu cao?).
Exerccios
1. Seja o seguinte conjunto de clausulas:
(1) p(x) q(x) r(x)
(2) p(x) s(x)
(3) p(A) s(x) t(x)
(4) q(A)
(5) t(x) s(x)
(a) Determine uma refuta cao de xr(x) utilizando resolu cao linear, partindo da
nega cao da consulta.
174 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
(b) Determine as inst ancias de clausulas implicitamente determinadas pela re-
futa cao, estruturadas em uma arvore de insatisfabilidade.
(c) Obtenha a arvore de prova correspondente `a arvore de insatisfabilidade.
2. Repita o Exerccio 3 da Se cao 3.5.7, utilizando agora arvores de prova.
3. Repita o Exerccio 9 da Se cao 3.5.7, utilizando agora arvores de prova.
4. Para os dois exerccios anteriores, explicite as inst ancias de clausulas presentes
na arvore de prova nal.
5. Seja a seguinte arvore de prova:

p
q

r
s

p
(a) Determine os lemas correspondentes a cada literal expandido.
(b) Forne ca uma explica cao para p.
(c) Transforme a arvore para uma outra em que a clausula sr seja a clausula
codicada.
(d) Forne ca uma explica cao para s r.
6. Forne ca uma explica cao para a resposta extrada no Exerccio 3.
7. Explicite os conte udos dos RAs para uma arvore de prova nal para o exerccio
3. Como seria recuperada a resposta a partir de tais RAs?
Newton Jose Vieira Captulo 3: L ogica de predicados 175
3.6 Logica de predicados multisortida
Considere as seguintes senten cas em logica de primeira ordem:
1. x(ave(x) animal(x))
(aves s ao animais)
2. x(caramujo(x) animal(x))
(caramujos s ao animais)
3. xave(x)
(existem aves)
4. xcaramujo(x)
(existem caramujos)
5. xplanta(x)
(existem plantas)
6. xy((ave(x) caramujo(y)) come(x, y))
(aves n ao comem caramujos)
7. xy((animal(x) animal(y)) (z(planta(z) come(y, z)) come(x, y)))
(todo animal come qualquer animal que n ao coma alguma planta)
Observe como os smbolos predicativos animal, ave, caramujo e planta s ao utilizados
para relativizar uma determinada armativa. Por exemplo, utilizando a pr opria palavra
em italico para designar o conjunto denotado pelo smbolo predicativo (por exemplo,
ave = ave
i
), a senten ca 6 diz que para todo x ave e todo y caramujo x n ao come
y; a senten ca 7 diz que para todo x animal e todo y animal se existe z planta
tal que y n ao come z, entao x come y. Assim, tais smbolos predicativos servem
para dividir o universo em subconjuntos, permitindo o estabelecimento de armativas
restritas aos elementos dos subconjuntos.
Em l ogica multisortida, o universo e considerado como dividido em subconjuntos
denominados categorias sem anticas
4
. A linguagem e similar `a da logica de primeira
ordem, apenas incorporando as seguintes modica coes com rela cao ao alfabeto:
(a) a cada categoria corresponde um conjunto de vari aveis;
(b) a cada categoria corresponde um conjunto de constantes;
(c) a cada n+1-upla de categorias
1
,
2
, . . . ,
n
,
n+1
) corresponde um conjunto de
smbolos funcionais;
(d) a cada n-upla de categorias
1
,
2
, . . . ,
n
) corresponde um conjunto de smbolos
predicativos.
4
sort, ou semantic category, em ingles.
176 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
Ser a utilizada a nota cao x: para dizer a vari avel x associada `a categoria e a
nota cao f:
1
, . . . ,
n
,
n+1
) para dizer o smbolo funcional f associado `a n + 1-upla

1
, . . . ,
n
,
n+1
). Analogamente, para constantes e smbolos predicativos.
Uma vari avel, agora, n ao varre o universo todo, mas apenas o subconjunto denotado
pela categoria sem antica associada. Uma constante denota um objeto do subconjunto
denotado pela categoria associada. Um smbolo funcional denota uma fun cao cujo
domnio e dado pelos subconjuntos denotados pelas primeiras n categorias da n+1-upla
associada, e cujo contra-domnio e o subconjunto denotado pela n +1-esima categoria.
Um smbolo predicativo denota uma rela cao cujo domnio e dado pelos subconjuntos
denotados pela categorias da n-upla associada. Com isto, as senten cas 6 e 7, acima,
poderiam ser expressas da seguinte forma:
6

x: ave y : caramujo come(x, y)


7

x: animal y : animal (z : planta come(y, z) come(x, y))


em que ave, caramujo e planta s ao categorias sem anticas e come e um smbolo predica-
tivo associado `a dupla animal, alimento). As senten cas 3 a 5 n ao tem correspondentes
em logica multisortida; simplesmente, assume-se que nenhuma categoria sem antica de-
nota um subconjunto vazio. As senten cas 1 e 2 tambem s ao tratadas semanticamente,
assumindo-se que ave animal e caramujo animal. Abaixo, ser a mostrado como isto
pode ser feito no contexto de resolu cao (multisortida).
A transforma cao de uma senten ca de logica multisortida em clausulas e similar
`aquela efetuada para logica de primeira ordem tradicional. A diferen ca e que na elim-
ina cao de um quanticador existencial y: no escopo de quanticadores universais
x
1
:
1
x
2
:
1
x
n
:
n
, na forma funcional g(x
1
, x
2
, . . . , x
n
) que substitui as
ocorrencias de y, g e associado a
1
,
2
, . . . ,
n
, ).
Senten cas dos tipos 1 e 2 podem ser representadas atraves de um grafo denominado
rede taxon omica, conforme denido abaixo.
Seja G = (N, L) um grafo dirigido nito. A nota cao
i

G
ser a utilizada para
dizer que existe um caminho de tamanho i do n o ao n o em G. Usar-se- a

G

para dizer que existe um caminho de a em G, e
+

G
para dizer que existe
um caminho n ao nulo de a em G. E
G
ir a signicar
1

G
(ou seja,
(, ) L).
Uma rede taxonomica e um grafo dirigido nito R = (S C, L), em que S e um
conjunto de categorias sem anticas e C um conjunto de constantes, tal que:
(a) para todo S C, se
i

R
entao i = 0 (ou seja, o grafo n ao tem ciclos); e
(b) se C, entao n ao existe S C tal que (, ) L (cada n o em C n ao e
alcan cavel a partir de nenhum outro).
Seja
i
e
i
o objeto e o conjunto denotados, respectivamente, pelas constantes e
. Se (, ) L, entao se C, isto signica que
i

i
; e se S, signica que

i

i
(obviamente, neste ultimo caso, s o pode ser categoria).
Uma rede para o exemplo acima representando as senten cas 1 a 5:
Newton Jose Vieira Captulo 3: L ogica de predicados 177
animal

ave

caramujo
planta
Transformando as senten cas 6

e 7

em clausulas:
1. come(x, y) (x: ave; y: caramujo)
2. come(y, z) come(x, y) (x, y: animal; z: planta)
Observe que foi anotado `a direita de cada clausula a categoria sem antica associada a
cada vari avel da clausula.
Seja provar que existe um animal que gosta de comer toda planta, ou seja:
x: animal y : planta come(x, y)
Negando e transformando em clausula:
3. come(w, g(w)) (w: animal g: animal, planta))
O algoritmo de unica cao e similar ao ja visto, com as seguintes modica coes:
(a) uma vari avel x :
1
unica com outra y :
2
se existe tal que

R

1
e

R

2
; neste caso, ambas as vari aveis s ao substitudas por v : , sendo v :
uma nova vari avel;
(b) uma vari avel x: unica com uma constante A: se

R
; neste caso, x:
e substituda por A: ;
(c) uma vari avel x: unica com uma forma funcional f(t
1
, . . . , t
n
), sendo f associ-
ado `a n + 1-upla
1
, . . . ,
n
, ), se x: n ao ocorre em f(t
1
, . . . , t
n
) e

R
;
neste caso, x: e substituda por f(t
1
, . . . , t
n
).
Assim, uma refuta cao para o exemplo acima seria:
4. come(x, y) (3.1, 2.1) (x: animal, y : animal)
5. (4.1, 1.1)
Os unicadores utilizados para obten cao de 4 e 5 foram, respectivamente:
w: animal/y : animal, z : planta/g(y) e
x: animal/x: ave, y : animal/y : caramujo.

E interessante observar que, se for utilizada extra cao de resposta, conclui-se que w:
caramujo y : planta come(w, y).
Observe que n ao e possvel resolver 3.1 com 2.2, pois y : animal n ao unica com g(w)
onde g : animal, planta). Para efeitos de compara cao, resolve-se o mesmo problema
utilizando resolu cao tradicional. Neste caso, tem-se as seguintes clausulas:
178 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
1. ave(x) animal(x)
2. caramujo(x) animal(x)
3. ave(A)
4. caramujo(C)
5. planta(P)
6. ave(x) caramujo(y) come(x, y)
7. animal(x) animal(y) planta(z) come(y, z) come(x, y)
8. animal(x) planta(g(x))
9. animal(x) come(x, g(x))
onde as duas ultimas se referem ` a nega cao da consulta. Uma refuta cao seria:
10. animal(x) animal(y) planta(g(y)) come(x, y) (9.2, 7.4)
11. animal(x) animal(y) come(x, y) (10.3, 8.2)
12. ave(x) animal(y) come(x, y) (11.1, 1.2)
13. ave(x) caramujo(y) come(x, y) (12.2, 2.2)
14. ave(x) caramujo(y) (13.3, 6.3)
15. caramujo(y) (14.1, 3.1)
16. (15.1, 4.1)
Observe que a formula cao em resolu cao multisortida consta de apenas 3 clausulas,
com um total de 4 literais, enquanto que em resolu cao consta de 9 clausulas, com
um total de 19 literais. Em resolu cao multisortida s ao necessarios apenas 3 passos
para encontrar uma refuta cao, enquanto que em resolu cao s ao necessarios 7 passos.
Varias passos em resolu cao n ao tem correspondentes em resolu cao multisortida, como,
por exemplo a resolu cao de 9.2 com 7.5 (correspondendo `a resolu cao de 3.1 com 2.2),
devido `as restri coes impostas automaticamente pelo algoritmo de unica cao, o que
reduz ainda mais o espa co de pesquisa.
Resolu cao multisortida, como mostrada acima, e consistente, mas n ao e completa
como pode ser visto atraves do exemplo seguinte. Sejam as seguintes armativas:
1. Repteis e aves s ao animais que tem pulmoes e s ao ovparos.
2. Existem repteis e aves.
3. Todo animal com pulmoes e asas tem penas.
4. Todo animal sem asas e policotermico, se for ovparo.
5. Logo, existe um animal que tem penas e e ovparo, ou existe um policotermico
que tem pulmoes.
Newton Jose Vieira Captulo 3: L ogica de predicados 179
As armativas 1 e 2 podem ser expressas atraves da rede:
animal

oviparo

tempulmoes
`

reptil
`
>
>
>
>
>
>
>
>
ave
As armativas 3, 4 e 5 d ao origem `as clausulas:
1. alado(x) tempenas(x) (x: tempulmoes)
2. alado(y) polico(y) (y: oviparo)
3. tempenas(z) (z: oviparo)
4. polico(w) (w: tempulmoes)
Para resolver as clausula 1 (literal 2) e 3 (literal 1), e necessario unicar as vari aveis x:
tempulmoes com z: oviparo. No entanto, existem dois umgs, correspondentes a:
reptil

tempulmoes e reptil

oviparo; e
ave

tempulmoes e ave

oviparo;
quais sejam:
x: tempulmoes/v : reptil, z : oviparo/v : reptil; e
x: tempulmoes/v: ave, z : oviparo/v: ave.
Com isto, e preciso prever novas unica coes para o mesmo passo de resolu cao em caso
de retrocesso. Ao inves disto, passa-se abaixo a considerar a associa cao de conjuntos
de categorias e/ou constantes `as vari aveis, ao inves de categorias somente. Um tal
conjunto ir a denotar um subconjunto do universo, como no caso de categoria. Seja

1
,
2
, . . . ,
m
,
1
,
2
, . . . ,
n

um conjunto tal que os


i
s ao constantes e os
j
s ao categorias sem anticas. Tal conjunto
ser a utilizado para denotar o subuniverso

i
1
,
i
2
, . . . ,
i
m

n

k=1

i
k
.
O exemplo caria assim:
180 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
1. alado(x) tempenas(x) (x: tempulmoes)
2. alado(y) polico(y) (y : oviparo)
3. tempenas(z) (z : oviparo)
4. polico(w) (w: tempulmoes)
Resolvendo as clausulas 1 (literal 2) e 3 (literal 1), obtem-se:
5. alado(v) (v: reptil, ave)
Para resolver esta clausula com 2 (literal 1), deve-se unicar y: oviparo com v:
reptil, ave. Como reptil

oviparo e ave

oviparo, um umg e y : oviparo/v :
reptil, ave.
6. polico(v) (v: reptil, ave)
Na resolu cao de 6 e 4 utiliza-se um umg w : tempulmoes/v : reptil, ave, e o
resultado e:
7.
Para efeitos de simplicidade, assume-se que o contra-domnio associado a um smbolo
funcional e denotado por uma unica categoria sem antica. Assim, tem-se as seguintes
modica coes das associa coes dos smbolos do alfabeto. Seja uma rede R = (, L). O
alfabeto,
R
, contem, alem dos conectivos logicos usuais, e das constantes que guram
em , os smbolos dos seguintes conjuntos (disjuntos):
(a) para cada , n ao vazio, um conjunto enumeravel de vari aveis;
(b) para cada n+1-upla (
1
,
2
, . . . ,
n
, ), n > 0, em que
1
,
2
, . . .,
n
s ao
conjuntos n ao vazios, e e uma categoria de , um conjunto (que pode ser vazio)
de smbolos funcionais;
(c) para cada n-upla (
1
,
2
, . . . ,
n
), em que
1
,
2
, . . . ,
n
s ao conjuntos n ao
vazios, um conjunto de smbolos predicativos.
O conjunto dos termos da linguagem de alfabeto
R
e denido da maneira usual:
as vari aveis e constantes de
R
s ao termos; e para todo smbolo funcional f associado a
(
1
,
2
, . . . ,
n
, ) no alfabeto
R
, f(t
1
, t
2
, . . . , t
n
) e um termo, caso, para i = 1, 2, ..., n:
(a) t
i
e uma vari avel associada a um conjunto de categorias e/ou constantes tal
que para todo ,

R
para algum
i
; ou
(b) t
i
e uma constante tal que

R
para algum
i
; ou
(c) t
i
e uma forma funcional com smbolo funcional associado a , tal que

R

para algum
i
.
Newton Jose Vieira Captulo 3: L ogica de predicados 181
O conjunto das f ormulas da linguagem pode ser construdo a partir das formulas
atomicas, como usual. Para todo smbolo predicativo P associado a (
1
,
2
, . . . ,
n
)
no alfabeto
R
, P(t
1
, t
2
, . . . , t
n
) e f ormula at omica, caso, para i = 1, 2, ..., n, t
i
satisfaz
as restri coes (a), (b) e (c) acima (enunciadas para termos). Se e s ao formulas,
entao , ( ), ( ), ( ), ( ) s ao formulas. Se e uma formula com
ocorrencias livres da vari avel x, entao x e x s ao formulas.
A no cao de interpretac ao n ao e muito diferente das logicas multisortidas usuais
(a diferen ca b asica e o uso de conjuntos de categorias e/ou constantes, ao inves de
categorias simplesmente). As deni coes de satisfa cao e consequencia logica tambem
s ao obvias.
Seja, por exemplo, o seguinte trecho de uma rede taxonomica:
universidade
`
UFMG
pessoa
>
>
>
>
>
>
>
>
`

professor
homem mulher
>
>
>
>
>
>
>
>

titular
adjunto assistente auxiliar
e seja a linguagem com os seguintes smbolos predicativos:
leciona, associado a professor, universidade);
doutor, associado a professor;
pai, associado a homem, pessoa);
lha, associado a mulher, pessoa);
lho, associado a homem, pessoa).
com os signicados obvios.
As seguintes senten cas (n ao necessariamente verdadeiras) poderiam ser enunciadas:
(a) x: titular (leciona(x, UFMG) doutor(x));
(b) x: auxiliar, assistente doutor(x);
(c) x: homemy : mulher (pai(x, y) lha(y, x));
(d) x: homemy : homem (pai(x, y) lho(y, x));
A primeira senten ca diz que todo titular que leciona na UFMG e doutor, a segunda
diz que nenhum auxiliar ou assistente e doutor, e a terceira e a quarta dizem, con-
juntamente, que se alguem e pai de certa pessoa, esta e lha ou lho do pai, caso seja
mulher ou homem, respectivamente.
182 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
Alem da nota cao de conjuntos (de categorias e/ou constantes) para denir o sub-
universo associado a uma vari avel, ser ao utilizadas tambem, para o mesmo m, as
express oes de categorias.
Uma express ao de categorias (EC), relativa a uma rede R = (, L), e denida
recursivamente como segue:
(a) e uma EC, para todo ;
(b) se u e v s ao ECs entao (u +v), (u v) e (u\v) s ao ECs.
Uma EC relativa a uma rede R denota um conjunto de categorias e/ou constantes
de R. Para denir como tal conjunto e obtido, ser a denida antes uma fun cao auxiliar.
Tal fun cao d a todas as categorias e constantes que, pelas informa c oes contidas na rede,
sabe-se que suas interpreta coes est ao presentes na interse cao das interpreta coes de duas
categorias.
A func ao intersec ao para uma rede taxonomica R = (, L),
R
: T(), e
tal que:

R
(, ) = [

R
e

R

Ser a utilizada ainda a nota cao
R
(
1
,
2
) para denotar:

1
e
2

R
(, )
Agora pode-se denir os conjuntos associados a ECs. A func ao de avalia c ao de
ECs,
R
, para uma rede R = (, L), e denida recursivamente como segue:
(a)
R
() = para todo ;
(b)
R
((u +v)) =
R
(u)
R
(v);
(c)
R
((u v)) =
R
(
R
(u),
R
(v));
(d)
R
((u\v)) = [ (

R
para algum
R
(u)) e
R
(,
R
(v)) = .
Como se pode depreender da deni cao acima, uma EC denota um conjunto de
categorias e/ou constantes, o qual determina um sub-universo. Assim, indiretamente,
uma EC pode ser vista como denotando um sub-universo.
O sub-universo denotado por uma EC (u+v), i(
R
((u +v))), nada mais e do que
a uni ao dos sub-universos denotados pelas ECs u e v, ou seja, i(
R
(u)) i(
R
(v)).
Com rela cao a uma express ao de categorias da forma (u v), observe inicialmente
que i(
R
(
R
(u),
R
(v))) i(
R
(u)) i(
R
(v)), e portanto i(
R
((u v))) s o contem
objetos de i(
R
(u))i(
R
(v)). Alem disto, e facil ver que i(
R
((u v))) contem todos
os objetos conhecidos como estando em i(
R
(u)) i(
R
(v)).

E interessante notar
que se for assumido que R e completa, isto e, que para toda categoria de R,
i() i( [
R
),
pode-se demonstrar que i(
R
((u v))) = i(
R
(u)) i(
R
(v)).
Newton Jose Vieira Captulo 3: L ogica de predicados 183
J a uma EC da forma (u\v) pode ser vista como denotando o conjunto dos ob-
jetos conhecidos de i(
R
(u)), exceto aqueles conhecidos como estando em i(
R
(u))
i(
R
(v)); em outras palavras, o conjunto dos objetos que sabemos pertencer a i(
R
(u)),
mas n ao a i(
R
(u))i(
R
(v)). Se Re completa, os objetos conhecidos como estando em
i(
R
(u)) i(
R
(v)) s ao os unicos que est ao, e os objetos conhecidos de i(
R
(u)) s ao os
unicos objetos de i(
R
(u)). Assim, ter-se-a que i(
R
((u\v))) = i(
R
(u)) i(
R
(v))
( aqui e o operador de diferen ca de conjuntos).
Seja a rede taxonomica, R
2
, cuja representa cao gr aca e dada abaixo:
estudante
>
>
>
>
>
>
>
>
`

Joaquim estagi ario


`
Alfredo
monitor

Manoel

Jorge

`
professor

Carlos
Uma forma de designar todos aqueles que, pelo que se sabe, s ao estudantes, mas n ao
professores, seria mediante o uso da EC
(estudante\professor).
Observe que

R
2
((estudante\professor)) = estagi ario,Joaquim,Manoel
(omite-se Alfredo do conjunto porque e redundante com estagi ario). Evidentemente,
Jorge e Carlos, sendo professores, n ao pertencem ao conjunto intencionado. Tambem
monitor n ao pertence, ja que existe monitor que e professor (Jorge
R
2
(monitor, professor));
apenas monitor n ao professor deve ser considerado (como Manoel).
Utilisando EC ao inves de conjunto de categorias e/ou constantes, poderia ser feita
(com rela cao ao exemplo anterior) a seguinte arma cao:
x: (estudante\professor) isento(x)
signicando todo estudante, exceto aqueles que s ao professores, s ao isentos. (Nao se
quer dizer com isto que os professores n ao s ao isentos.) Dada a avalia cao da express ao
(estudante\professor), a arma cao acima e equivalente a
x: estagi ario,Joaquim,Manoel isento(x).
Se for introduzida uma liga cao entre Alfredo e professor, uma reavalia cao da EC fara
com que a arma cao passe a ser equivalente a
x: Joaquim, Manoel isento(x),
184 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
como pode ser facilmente vericado.
Um sistema formal similar ao de resolu cao tradicional pode ser desenvolvido, a
diferen ca b asica estando no algoritmo de unica cao, que agora tem que lidar com as
categorias associadas aos termos da linguagem.
O processo de transforma cao de uma senten ca em clausulas e similar ao usual, a
diferen ca estando em que, ao se obter uma senten ca na forma:
x
1
:
1
x
2
:
2
x
n
:
n
y : s[x
1
, x
2
, . . . x
n
, y]
onde =
1
, . . . ,
m
,
1
, . . . ,
k
(sendo cada
i
categoria e cada
j
constante), esta
e substituida por:
x:
1
x:
2
x:
n
(s[x
1
, . . . x
n
, f
1
(x
1
, . . . x
n
)] s[x
1
, . . . x
n
, f
m
(x
1
, . . . x
n
)]
s[x
1
, . . . x
n
,
1
] s[x
1
, . . . x
n
,
k
])
onde os f
i
s s ao fun coes de Skolem (se n = 0, os f
i
s ao constantes de Skolem, obvia-
mente) associadas a
1
, . . . ,
n
,
i
), para i = 1, 2, . . . , m.
Durante um procedimento de prova, toda constante de Skolem K associada a uma
categoria e introduzida na rede taxonomica, de tal forma que temos: K (evi-
dentemente, tal introdu cao e tempor aria, s o subsistindo durante a prova).
Aponta-se abaixo apenas em que o algoritmo de unica cao difere do algoritmo de
unica cao normal:
(a) Duas vari aveis, x, associada a
1
, e y, associada a
2
, unicam se, e somente se,

R
(
1
,
2
) ,= ; e o resultado da unica cao e x/z, y/z, onde z e uma vari avel
associada a
R
(
1
,
2
);
(b) uma vari avel x, associada a , unica com uma constante se, e somente se,

R
(, ) = ; e o resultado da unica cao e x/;
(c) uma vari avel x, associada a , unica com uma forma funcional t = f(t
1
, t
2
, . . . , t
n
),
onde f e associado com (no contra-domnio), se, e somente se, x n ao ocorre em
t e
R
(, ) = ; e o resultado da unica cao e x/t.
Observe que as condi coes expressas em (b) e (c) s ao equivalentes a

R
, para
algum .
A seguir, s ao apresentados alguns exemplos com o intuito de exemplicar o uso
do operador \. O exemplo a seguir e um exemplo tpico em textos que tratam de
raciocnio n ao monot onico. (Passa-se a utilizar vari aveis um pouco mais mnemonicas.)
Seja o seguinte trecho de uma rede taxonomica R
3
:
elefante
`
elefante-real
`
Clyde
cor

Cinza

Branco
Newton Jose Vieira Captulo 3: L ogica de predicados 185
e os seguintes fatos:
1. cor-de(e, Cinza)
2. cor-de(er, Branco)
em que
e e associada com (elefante\elefante-real);
er e associada com elefante-real.
Pela clausula 2, e facil ver que cor-de(Clyde, Branco) (Clyde unica com er, mas n ao
com e).
O car ater n ao monot onico e dado pela avalia cao das ECs, que deve ser re-efetuada
toda vez que se insira alguma categoria, constante e/ou liga cao na rede taxonomica.
Assim, se for introduzida a constante Fred e uma liga cao entre ela e a categoria elefante,
na rede do exemplo anterior, pode-se concluir que
cor-de(Fred, Cinza)
a partir da clausula 1. Porem, se for introduzida uma liga cao entre Fred e elefante-real,
tal fato deixa de ser verdade, e, ao inves disto tem-se cor-de(Fred, Branco) (mesmo que
n ao se remova a liga cao redundante entre Fred e elefante, pois Fred n ao estar a incluido
em
R
3
((elefante\elefante-real))).
O pr oximo exemplo tem sido utilizado para demonstrar um metodo de raciocnio
default, usualmente implementado por meio de rede sem antica. Seja a seguinte rede
R
4
:
molusco
>
>
>
>
>
>
Tico

cefalopode
>
>
>
>
>
>
Lico

n autilo
`
Zico
e os seguintes fatos:
1. temconcha(m)
2. temconcha(c)
3. temconcha(n)
em que
186 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
m e associada com (molusco\cefal opode);
c e associada com (cefal opode\nautilo);
n e associada com nautilo.
A vari avel n (clausula 3) unica com Zico; portanto, pode-se concluir temconcha(Zico).
Entretanto, o mesmo n ao pode ser concludo a partir da clausula 1, visto que Zico n ao
unica com m; tambem temconcha(Zico) n ao pode ser concludo, pois Zico n ao
unica com a vari avel c (clausula 2). Pode-se concluir ainda que temconcha(Lico)
e que temconcha(Tico).
As clausulas 1, 2 e 3 do exemplo acima podem ser interpretadas, respectivamente,
assim:
1. Todo molusco tem concha, exceto os cefal opodes.
2. Os cefal opodes n ao tem concha, com exce c ao dos n autilos.
3. Todo n autilo tem concha.
Como pr oximo exemplo, seja a seguinte rede R
5
:
pessoa
>
>
>
>
>
>
proiberal

artista
>
>
>
>
>
>
medico
`
engenheiro

arquiteto
`
Joaquim
`
Manuel
`

Alfredo
`

-
-
-
-
-
-
-
-
-
-
-
--
Alberto
e os seguintes fatos:
1. rico(eaa)
2. rico(p) feliz(p)
onde
eaa e associada a ((engenheiro arquiteto)\artista);
p e associada a pessoa.
Processando a consulta x:pessoa feliz(x):
3. feliz(x) (neg. da consulta)
4. rico(x) (res. 2,3)
Newton Jose Vieira Captulo 3: L ogica de predicados 187
5. (res. 4,1)
O resultado da unica cao para obten cao da clausula 5 e uma vari avel associada ao
conjunto
R
5
(pessoa,
R
5
(((engenheiro arquiteto)\artista)) = Alfredo.
O problema da qualica c ao alerta para a impossibilidade de listar todas as exce coes
que porventura possam existir. Quando e usado o operador \ para lidar com exce coes,
tem-se entao o problema de que poder a existir a necessidade de agregar novas exce coes
`aquelas ja explicitadas. Uma forma de fazer isso, e simplesmente modicar a EC
apropriada, na medida em que forem sendo detectadas novas exce coes. Uma outra,
e utilizar a abordagem de associar uma categoria sem antica ao conjunto das exce coes
consideradas, como mostrado no exemplo abaixo.
Seja a seguinte rede R
6
, obtida adicionando-se categorias representado anormali-
dades `a rede R
4
:
molusco
>
>
>
>
>
>
Tico

cefalopode
>
>
>
>
>
>
abM
>
>
>
>
>
>
Lico

n autilo
>
>
>
>
>
>
abC
`
Zico
e os seguintes fatos:
1. temconcha(m)
2. temconcha(c)
3. temconcha(n)
em que
m e associada com (molusco\abM);
c e associada com (cefal opode\abC);
n e associada com nautilo.
Novamente, pode-se inferir tudo aquilo que pode ser inferido no exemplo da rede R
4
:
temconcha(Zico), temconcha(Lico) e temconcha(Tico). Mas agora e mais facil in-
troduzir novas exce coes. Por exemplo, se e molusco (existe uma liga cao entre e
molusco na rede), e tambem n ao pode ser dito que ele tem concha, entao o que se tem
a fazer e apenas introduzir uma liga cao de para abM. Alem disto, se, por exemplo,
nenhum tem concha, deve-se introduzir o fato x: temconcha(x).
188 c _2006 Newton Jose Vieira L ogica aplicada `a computa c ao
Observe, entao, que as categorias do tipo anormalidades s ao, em certo sentido,
pontos de conuencia para onde apontam todas as exce coes associadas a certas pro-
priedades.

E importante observar ainda que, neste contexto, quando se fala que e
exce cao com rela cao a certa propriedade, n ao se arma que os elementos de n ao
tem a propriedade, mas que n ao se pode armar que eles tem; para armar que eles
n ao tem a propriedade, e necessaria uma nova senten ca (como mostrado no exemplo
anterior). Isto permite, por exemplo, enunciar exce coes com rela cao a exce coes (veja,
por exemplo, a clausula 2 do mesmo exemplo).
O aumento de eciencia de processamento associado ao uso de redes taxonomicas
como base para uma logica multisortida e fato bem conhecido, o que alarga o espectro
de problemas factveis de serem solucionados mediante o uso de logica como formalismo
b asico de representa cao do conhecimento.
Foi apresentada, nesta se cao, uma logica multisortida cuja mecaniza cao via res-
olu cao (ou sistema de prova semelhante), utilizando um algoritmo de unica cao apro-
priado, permite a modelagem de uma certa classe de raciocnio default. A utilidade
deste tipo de logica foi demonstrada atraves de varios exemplos tpicos da literatura
sobre logica default. A recorrencia de tais exemplos na literatura, mesmo quando uti-
lizados em artigos que fornecem uma abordagem mais ampla, faz crer que a abordagem
aqui descrita, mesmo que aparentemente restrita a uma classe pequena de raciocnio
n ao monot onico, e bastante util.

Você também pode gostar