Você está na página 1de 19

Lgica de Primeira Ordem

Lgica Computacional
Carlos Bacelar Almeida
Departmento de Informtica
Universidade do Minho
2007/2008
Carlos Bacelar Almeida, DIUM LGICA DE PREDICADOS- LGICA COMPUTACIONAL 1/37
Lgica de Primeira Ordem Sintaxe
Lgica de Primeira Ordem
A Lgica de Primeira Ordem (ou Lgica de Predicados) aumenta
o poder expressivo da linguagem ao permitir associar as
asseres lgica s propriedades de objectos de um determinado
domnio.
Distinguem-se duas classes sintcticas: a dos termos e a das
frmulas.
Os termos denotam os vrios objectos de discurso.
Como caso particular desses termos temos as variveis, que
denotam objectos no especicados ou indeterminados. partida,
o seu signicado atribudo por uma dada valorao, que
determina o objecto associado a cada varivel. Utilizaremos as
letras maisculas A, B, ... para denotar variveis.
Os restantes constituintes dos termos so as constantes
(denotam objectos xos e determinados) e as funes (que
denotam transformaes sobre os objectos). Utilizaremos letras
minsculas ou palavras para denotar constantes e funes (e.g.
a, f (), suc(), ...)
Carlos Bacelar Almeida, DIUM LGICA DE PREDICADOS- LGICA COMPUTACIONAL 2/37
Lgica de Primeira Ordem Sintaxe
As frmulas denotam as asseres (factos) sobre os termos.
Na sua forma mais simples so predicados atmicos (ou
simplesmente tomos). Sero denotados por letras maisculas ou
palavras iniciadas por letras maisculas (e.g., Maior (X, Y),
EPar (X +1), ...)
As conectivas lgicas proposicionais permitem-nos compor
frmulas estruturadas (e.g. EPar (X) EPar (x +1))
Os quanticadores permitem-nos considerar o conjunto de
possibilidades para as valoraes de uma varivel (e.g.
X.EPar (X) EPar (X +1)). Uma vez quanticada, uma varivel
deixa de representar uma objecto indeterminado (dizemos que as
ocorrncias da varivel que se encontram no mbito do
quanticador se encontram ligadas a esse quanticador).
Carlos Bacelar Almeida, DIUM LGICA DE PREDICADOS- LGICA COMPUTACIONAL 3/37
Lgica de Primeira Ordem Sintaxe
Sintaxe
A sintaxe da lgica de primeira ordem parametrizada pelo tuplo , R, onde:
= S, arS a assinatura de termos. S um conjunto de smbolos de
funes e arS : S IN a funo de aridade que, a cada smbolo S,
associa o nmero de argumentos da respectiva funo (0 para as
constantes).
R = R, arR a assinatura de predicados. R um conjunto de smbolos
de predicados e arR : R IN associa o nmero de argumentos a cada
predicado.
Os termos (T ) so denidos pelas regras:
Uma varivel um termo;
Seja f S com arS(f ) = n. Se t
1
, . . . , t
n
forem termos ento f (t
1
, . . . , t
n
)
um termo.
As frmulas (L) so denidas por:
Seja P R com arR(P) = n. Se t
1
, . . . , t
n
forem termos ento P(t
1
, . . . , t
n
)
uma frmula;
Se e forem frmulas, ento , , , , so frmulas;
Se for uma frmula e X uma varivel, ento X. e X. so frmulas
Carlos Bacelar Almeida, DIUM LGICA DE PREDICADOS- LGICA COMPUTACIONAL 4/37
Lgica de Primeira Ordem Sintaxe
Variveis e Substituies
Termos que no contenham ocorrncia de variveis dizem-se
termos base. O conjunto de termos base denotado por T
B
.
As ocorrncias das variveis dizem-se livres ou ligadas,
dependendo se se encontram (ou no) no mbito de um
quanticador. Os conjuntos das variveis livres e ligadas so
denotados por FV() e BV() respectivamente.
A operao de substituio de uma varivel (livre) X por um
termo t denotada por [t /X] (l-se t substitui X).
A aplicao da substituio a um termo denida por
recursividade estrutural:
Y[t /X] =

t , se X = Y
Y , se X ,= Y
f (t
1
, . . . , t
n
)[t /X] = f (t
1
[t /X], . . . , t
n
[t /X])
Carlos Bacelar Almeida, DIUM LGICA DE PREDICADOS- LGICA COMPUTACIONAL 5/37
Lgica de Primeira Ordem Sintaxe
O processo de substituio extende-se s frmulas:
P(t
1
, . . . , t
n
)[t /X] = P(t
1
[t /X], . . . , t
n
[t /X])
()[t /X] = ([t /X])
(QY.)[t /X] =

QY. , se X = Y
QY.([t /X]) , se X ,= Y
onde Q denota um quanticador ( ou ).
Note-se que a substituio nunca afecta as variveis ligadas.
De facto, as variveis ligadas podem ser renomeadas por
variveis novas
1
sem se alterar o signicado das frmulas. Assim,
X. Y.([Y/X]) , quando Y , FV()
1
Uma varivel nova uma varivel que no utilizada no contexto em questo
(e.g. na frmula considerada).
Carlos Bacelar Almeida, DIUM LGICA DE PREDICADOS- LGICA COMPUTACIONAL 6/37
Lgica de Primeira Ordem Semntica
Interpretao
Um modelo para a lgica de primeira ordem constitudo por:
Uma estrutura de interpretao 1 que dar signicado aos
objectos (termos) envolvidos nas frmulas. Ser constituda por:
Um conjunto I que constitui o domnio de interpretao;
Para cada funo f (com aridade n), uma funo 1(f ) : I
n
I;
Para cada predicado P 1 (com aridade n), uma relao n-ria
1(P) I
n
.
Uma valorao : V I que atribua signicado s variveis
(livres) envolvidas.
Uma vez xado uma interpretao 1 e uma valorao , podemos
atribuir signicado ao conjunto de termos (i.e. associar a cada termo
da linguagem um elemento do domnio de interpretao):
1

(x) = (x)
1

(f (t
1
, . . . , t
n
) = 1(f )(1

(t
1
), . . . , 1

(t
n
))
Carlos Bacelar Almeida, DIUM LGICA DE PREDICADOS- LGICA COMPUTACIONAL 7/37
Lgica de Primeira Ordem Semntica
Validade
A validade de uma frmula lgica num modelo denida
recursivamente:
1 [= P(t
1
, . . . , t
n
) sse (1

(t
1
), . . . , 1

(t
n
)) 1(P)
1 [= sse 1 ,[=
1 [= sse 1 [= e 1 [=
1 [= sse 1 [= ou 1 [=
1 [= sse 1 ,[= ou 1 [=
1 [= X. sse para qualquer t I temos que 1 [= [t /X]
1 [= X. sse existir um t I tal que 1 [= [t /X]
Uma frmula diz-se vlida quando qualquer modelo a validar, i.e.
[= sse para qualquer 1 e , 1 [=
Carlos Bacelar Almeida, DIUM LGICA DE PREDICADOS- LGICA COMPUTACIONAL 8/37
Lgica de Primeira Ordem Semntica
Um conjunto de frmulas diz-se uma teoria. A noo de validade
extende-se a teorias da forma bvia.
Dizemos que uma frmula consequncia semntica de uma
teoria (escreve-se [= ) quando qualquer modelo que valide
valide tambm .
Uma teoria inconsistente (escreve-se [= ) quando no
existe qualquer modelo que valide .
Proposio
Para quaisquer teorias , e frmulas temos:
, [=
Se [= e , ento [=
[= se e s se [=
Demonstrao.
(Detalhes apresentados na aula terica)
Carlos Bacelar Almeida, DIUM LGICA DE PREDICADOS- LGICA COMPUTACIONAL 9/37
Formas Normais
Prenex Normal Form
A sintaxe da lgica de primeira ordem permite-nos construir
frmulas com quanticadores em qualquer nvel da rvore
sintctica (e.g. x.P(x) x.Q(x)).
Os quanticadores podem ser puxados para o exterior da
frmula sem alterar o seu signicado desde que nesse
processo no se capture ocorrncias de variveis livres. Por
exemplo:
x.(P(x, y) z.Q(x, z)) x.z.(P(x, y) Q(x, z))
x.(P(x, y) y.Q(x, y)) , x.y.(P(x, y) Q(x, y))
(destaca-se a negrito a ocorrncia da varivel y capturada pela
movimentao do quanticador).
A captura de variveis pode sempre ser evitada por renomeao
apropriada das variveis ligadas. No exemplo apresentado, o lado
esquerdo do segundo caso pode ser transformado no lado
esquerdo do primeiro.
Carlos Bacelar Almeida, DIUM LGICA DE PREDICADOS- LGICA COMPUTACIONAL 10/37
Formas Normais
Prenex Normal Form
Denio
Uma frmula da lgica de primeira ordem diz-se na forma normal
Prenex quando todos os quanticadores ocorrem no exterior da
frmula.
Operacionalmente, podemos obter a forma normal Prenex
aplicando sucessivamente as seguintes equivalncias (facilmente
demonstrveis pela denio de validade):
x. x.
x. x.
(x.) x

.([x

/x] )
(x.) x

.([x

/x] )
(x.) x

.( [x

/x])
(x.) x

.( [x

/x])
onde x

, FV() e um qualquer conectivo binrio da lgica


proposicional.
Carlos Bacelar Almeida, DIUM LGICA DE PREDICADOS- LGICA COMPUTACIONAL 11/37
Skolenizao
Skolenizao/Herbranizao
Quando o objectivo vericar se uma dada frmula vlida (ou
uma contradio), podemos ainda ir mais longe no tratamento
dos quanticadores.
Uma frmula na forma prenex diz uma frmula existencial
quando s contm quanticadores existenciais. De forma
anloga, uma frmula universal s dispe de quanticadores
universais.
Dado uma frmula , podemos sempre encontrar uma frmula
existencial tal que
[= sse [=
O processo de obteno de a partir de designa-se por Herbranizao.
De forma anloga, dada uma frmula , podemos encontrar uma
frmula de tal que
contradio sse contradio
O processo de obteno de a partir de designa-se por Skolenizao.
Carlos Bacelar Almeida, DIUM LGICA DE PREDICADOS- LGICA COMPUTACIONAL 12/37
Skolenizao
Herbranizao
A ideia base na Herbranizao consiste em observar que, na
noo de validade, est implcita uma quanticao universal
(sobre todos os modelos).
Considere-se as frmulas X. e [c/X] onde c uma nova
constante. A segunda ser vlida quando, para qualquer
interpretao, [c/X] for vlida. Mas a constante c pode ser
interpretada em qualquer valor do domnio de interpretao.
Vericamos assim que a segunda frmula ser vlida
precisamente quando a primeira o for.
Com frmulas da forma X.Y., a substituio da varivel Y
pode depender da escolha efectuada para X. Nesse caso, o
argumento apresentado acima deve ser formulado com novo
smbolo de funo f que depende de X, i.e. X.[f (X)/Y] ser
vlida quando X.Y. o for.
Carlos Bacelar Almeida, DIUM LGICA DE PREDICADOS- LGICA COMPUTACIONAL 13/37
Skolenizao
Herbranizao
Denio
Dado uma frmula na forma prenex, o processo de Herbranizao
resulta da aplicao repetida da seguinte transformao que remove o
primeiro dos quanticadores universais:
X
1
...X
n
.Y. X
1
...X
n
.[f (X
1
, . . . , X
n
)/Y]
onde f um novo smbolo de funo.
Note que o processo de Herbranizao no produzem frmulas
equivalentes s originais de resto, elas nem sequer esto
denidas sobre a mesma assinatura. O que se preserva o
status de validade.
Carlos Bacelar Almeida, DIUM LGICA DE PREDICADOS- LGICA COMPUTACIONAL 14/37
Skolenizao
Skolenizao
De forma dual, na Skolenizao, o objectivo encontrar uma
frmula que seja uma contradio se a original o for. Para tal, as
substituies afectaro as variveis quanticadas
existencialmente.
Denio
Dado uma frmula na forma prenex, o processo de Skolenizao
resulta da aplicao repetida da seguinte transformao que remove o
primeiro dos quanticadores existenciais:
X
1
...X
n
.Y. X
1
...X
n
.[f (X
1
, . . . , X
n
)/Y]
onde f um novo smbolo de funo.
Carlos Bacelar Almeida, DIUM LGICA DE PREDICADOS- LGICA COMPUTACIONAL 15/37
Modelos de Herbrand
Modelos de Herbrand
Para aferir a validade (ou contradio) de uma frmula, podemos
nos restringir a uma classe de modelos cannicos.
Esses modelos so denidos a partir da sintaxe da linguagem, e
designam-se genericamente por Modelos de Herbrand.
Denio
Uma interpretao de Herbrand H um conjunto de tomos
fechados H (i.e. predicados atmicos aplicados a termos base). A
estrutura de interpretao denido da seguinte forma:
O domnio de interpretao constitudo pelo conjunto de termos
base T
B
;
A interpretao da funo H(f ) (com aridade n) consiste na
funo que, dados os termos base (t
1
, . . . , t
n
) retorna o termo
base f (t
1
, . . . , t
n
).
A interpretao dos predicados H(P) (com aridade n) consiste na
relao (t
1
, . . . , t
n
)[P(t
1
, . . . , t
n
) H
Carlos Bacelar Almeida, DIUM LGICA DE PREDICADOS- LGICA COMPUTACIONAL 16/37
Modelos de Herbrand
Intuitivamente, uma interpretao de Herbrand constitudo por
todos os tomos verdadeiros.
Dado que s esto envolvidos termos base (sem variveis), os
modelos de Herbrand acabam por se aproximar dos modelos
proposicionais.
Teorema
Uma frmula existencial vlida se e s se qualquer interpretao
de Herbrand validar .
Demonstrao.
(Detalhes apresentados na aula terica)
Note que a frmula existencial pode ser obtida por Herbranizao
de uma qualquer frmula.
Dada a def. de validade de frmulas existenciais, devem existir no
modelo de Herbrand instncias base que testemunhem a
existncia das variveis envolvidas.
Carlos Bacelar Almeida, DIUM LGICA DE PREDICADOS- LGICA COMPUTACIONAL 17/37
Clculo de Sequentes
Sistemas Dedutivos
Os sistemas dedutivos estudados para a lgica proposicional
(deduo natural e clculo de sequentes) podem ser extendidos
para a lgica de primeira ordem.
As novas regras lidam com os quanticadores na deduo
natural consideramos regras de introduo e eliminao dos
quanticadores exitencial e universal; no clculo de sequentes
consideramos regras de introduo direita e esquerda de cada
quanticador.
Vamos considerar unicamente o sistema de Clculo de
Sequentes.
Carlos Bacelar Almeida, DIUM LGICA DE PREDICADOS- LGICA COMPUTACIONAL 18/37
Clculo de Sequentes
Clculo de Sequentes
, C

C,

(Corte)
,

(Ax)
, A A,
P, Q,
(D )
P Q,
, P
(D )
P,
P, Q,
(D )
P Q,
, P Q,
(D )
P Q,
, P, Q
(E )
, P Q
P,
(E )
, P
, P , Q
(E )
, P Q
, Q P,
(E )
, P Q
, X., [t /X]
(E )
, X.
, [A/X]
(E )
sendo A uma var. nova
, X.
[A/X],
(D )
sendo A uma var. nova
X.,
X., [t /X],
(D )
X.,
Carlos Bacelar Almeida, DIUM LGICA DE PREDICADOS- LGICA COMPUTACIONAL 19/37
Clculo de Sequentes
Propriedades
Tal como no clculo de sequentes proposicional, tambm aqui
possvel eliminar o corte na apresentao do sistema dedutivo. A
demonstrao deste resultado anlogo verso proposicional (faltando unicamente os
casos relativos s novas regras. Ver detalhes em Proof Theory and Automated Deduction,
Sec. 5.3).
As regras (D ) e (E ) mantm a frmula principal na premissa.
Desta forma podemos instanciar a varivel quanticada em
diferentes termos.
Nas regras (E ) e (D ) so introduzidas variveis novas. Este
facto determina que a ordem de aplicao das regras deixa de ser
irrelevante...
Carlos Bacelar Almeida, DIUM LGICA DE PREDICADOS- LGICA COMPUTACIONAL 20/37
Clculo de Sequentes
A sua justicao (correco) para as regras dos quanticadores
resulta da seguinte observao:
Proposio
Para qualquer teoria , frmula , termo t e varivel nova A, temos:
, X., [t /X] inconsistente se e s se , X.
inconsistente.
, [A/X] inconsistente se e s se , X. inconsistente.
, (X.), ([t /X]) inconsistente se e s se , (X.)
inconsistente.
, ([A/X]) inconsistente se e s se , (X.)
inconsistente.
Demonstrao.
(Detalhes apresentados na aula terica.)
Carlos Bacelar Almeida, DIUM LGICA DE PREDICADOS- LGICA COMPUTACIONAL 21/37
Clculo de Sequentes
O Sistema Dedutivo LC correcto e completo, i.e.
[= sse
Mas note-se que este resultado diz-nos que, para qualquer
frmula vlida, existe uma derivao no clculo de sequentes.
No nos diz como obter essa derivao...
De facto, ao contrrio do clculo de sequentes proposicional, na
lgica de primeira ordem no possvel utilizar directamente as
regras do clculo de sequentes como um procedimento de
vericao da validade das frmula.
Em rigor, no poderia ser de outra forma a vericao da
validade em lgica de primeira ordem indecidvel.
Carlos Bacelar Almeida, DIUM LGICA DE PREDICADOS- LGICA COMPUTACIONAL 22/37
Resoluo
Vericao da Inconsistncia em LPO
Vericar a inconsistncia de uma frmula reduz-se, pelo processo
de Skolenizao, a vericar a inconsistncia de uma frmula
universal, i.e. da forma
X
1
, . . . , X
n
.
onde uma frmula livre de quanticadores.
Desta forma, est prxima de uma frmula proposicional. Em
particular, pode ser expressa numa dada forma normal (e.g. na
FNC).
por isso natural aplicar mtodos estudados em lgica
proposicional para estabelecer a inconsistncia de . Em
particular, poderemos utilizar resoluo para procurar derivar
da forma clausal de .
evidente que contm, em geral, variveis. Este facto ir
colocar desaos na generalizao do mtodo lgica de primeira
ordem,
Carlos Bacelar Almeida, DIUM LGICA DE PREDICADOS- LGICA COMPUTACIONAL 23/37
Resoluo
Resoluo Proposicional em LPO
Comecemos por analisar a aplicao da resoluo proposicional
em frmulas de primeira ordem da forma
X
1
, . . . , X
n
.
onde se encontra na FNC.
O teorema de Herbrand garante-nos a existncia de instncias
base que estabelecem a inconsistncia pretendida.
Considerem-se clusulas
1
e
2
e substituies base
1
e
2
tais
que

1
= A

2
= A
A resoluo proposicional de (A ) e (A ) permite obter a
clusula ( ).
Note que, se e forem clusulas vazia, derivado o absurdo
e, como tal, estabelecida a inconsistncia de .
Carlos Bacelar Almeida, DIUM LGICA DE PREDICADOS- LGICA COMPUTACIONAL 24/37
Resoluo
A completude do mtodo de resoluo para lgica proposicional,
e o teorema de Herbrand, garantem-nos que para qualquer forma
universal inconsistente podemos derivar aplicando a resoluo
proposicional como apresentada atrs.
O problema que o mtodo no , de forma alguma, efectivo
teremos sempre de adivinhar as substituies base apropriadas
para aplicar a resoluo proposicional.
O que seria desejvel era uma forma de aplicar a resoluo
directamente sobre as clusulas de .
Carlos Bacelar Almeida, DIUM LGICA DE PREDICADOS- LGICA COMPUTACIONAL 25/37
Resoluo
Igualizao de Termos com Variveis
Na aplicao da resoluo proposicional em frmulas de primeria
ordem, so normalmente as substituies de base aplicadas que
igualam os literais que intervm na resoluo.
Podemo-nos perguntar se no possvel igualar os literais sem ter
necessidade de usar substituies de base (i.e. ter de concretizar todas
as variveis).
Ilustremos o argumento com os termos t
1
= f (X) e t
2
= f (g(Y))
existe uma innidade de substituies de base que igualam t
1
e t
2
(e.g.,
assumindo a existncia de uma constante a, temos [g(a)/X, a/Y],
[g(g(a))/X, g(a)/Y], etc.). A questo que se coloca se no existe
uma nica soluo que, de alguma forma, represente todas as restantes
solues?
Essa soluo mais geral de facto existe: considere-se a substituio
[g(Y)/X] esta substituio iguala ambos os termos (em f (g(Y))), e
deixa ainda liberdade para substituir Y pelo termo que se entender. De
facto, qualquer substituio que iguale t
1
e t
2
uma instncia da
soluo apresentada.
Carlos Bacelar Almeida, DIUM LGICA DE PREDICADOS- LGICA COMPUTACIONAL 26/37
Resoluo
Unicao
A unicao consiste no problema de determinar (caso exista) a
substituio mais geral que iguale dois termos. Essa substituio
designada por unicador mais geral (mgu) desses termos.
Para denir o que se entende por substituio mais geral, torna-se
necessrio estabelecer uma ordem (de especializao) nas
substituies.
Denio (Ordem de Especializao)
Sejam e substituies. Dizemos que mais geral do que ( )
quando existe uma substituio tal que = .
Denio
O Unicador Mais Geral (mgu) de termos t
1
e t
2
consiste numa substituio
tal que t
1
= t
2
e, para qualquer substituio para a qual t
1
= t
2
,
temos que . No existindo qualquer substituio que iguale os termos,
convenciona-se que mgu(t
1
, t
2
) = .
Carlos Bacelar Almeida, DIUM LGICA DE PREDICADOS- LGICA COMPUTACIONAL 27/37
Resoluo
Algoritmo de Unicao
Podemos determinar o unicador mais geral de dois termos
manipulando um sistema de equaes.
O estado do sistema composto por um par [) onde um
conjunto de equaes entre termos, e a substituio
calculada.
Como estado inicial temos uma nica equao entre os termos
que pretendemos unicar. A substituio inicial a identidade.
O algoritmo prossegue aplicando as seguintes regras:
trivial , t = t [) , )
decompose , f (t
1
, ., t
n
) = f (s
1
, ., s
n
)[) , t
1
= s
1
, ., t
n
= s
n
[)
clash , f (. . .) = g(. . .)[) , se f ,= g
orient , t = x[) , x = t [), se t no uma varivel
occurs , x = t [) , se x Vars(t )
variable , x = t [) [t /x][ [t /x]), se x ,= t
Carlos Bacelar Almeida, DIUM LGICA DE PREDICADOS- LGICA COMPUTACIONAL 28/37
Resoluo
Codicao em Haskell
...retirado de um exemplo do interpretador hugs.
--- Prolog Terms:
type Id = (Int,String)
type Atom = String
data Term = Var Id | Struct Atom [Term]
--- Substitutions:
-- substitutions are represented by functions mapping identifiers to terms.
type Subst = Id -> Term
-- app s extends the substitution s to a function mapping terms to terms
app :: Subst -> Term -> Term
app s (Var i) = s i
app s (Struct a ts) = Struct a (map (app s) ts)
-- nullSubst is the empty substitution which maps every identifier to the
-- same identifier (as a term).
nullSubst :: Subst
nullSubst i = Var i
infix 4 ->-
-- i ->- t is the substitution which maps the identifier i to the term t,
-- but otherwise behaves like nullSubst.
(->-) :: Id -> Term -> Subst
(i ->- t) j | j==i = t
| otherwise = Var j
infixr 3 @@
-- s1@@ s2 is the composition of substitutions s1 and s2
(@@) :: Subst -> Subst -> Subst
s1 @@ s2 = app s1 . s2
Carlos Bacelar Almeida, DIUM LGICA DE PREDICADOS- LGICA COMPUTACIONAL 29/37
Resoluo
--- Unification:
-- unify t1 t2 returns a list containing a single substitution s which is
-- the most general unifier of terms t1 t2. If no unifier
-- exists, the list returned is empty.
unify :: Term -> Term -> [Subst]
unify (Var x) (Var y) = if x==y
then [nullSubst]
else [x->-Var y]
unify (Var x) t2 = [ x ->- t2 | x notElem varsIn t2 ]
unify t1 (Var y) = [ y ->- t1 | y notElem varsIn t1 ]
unify (Struct a ts) (Struct b ss) = [ u | a==b, u<-listUnify ts ss ]
listUnify :: [Term] -> [Term] -> [Subst]
listUnify [] [] = [nullSubst]
listUnify [] (r:rs) = []
listUnify (t:ts) [] = []
listUnify (t:ts) (r:rs) = [ u2 @@ u1 | u1<-unify t r,
u2<-listUnify (map (app u1) ts)
(map (app u1) rs) ]
Carlos Bacelar Almeida, DIUM LGICA DE PREDICADOS- LGICA COMPUTACIONAL 30/37
Resoluo
Resoluo de Primeira Ordem
Denio
Sejam ,

e ,

clusulas de primeira ordem que no contenham


variveis em comum. O resolvente dessas clusulas consiste na
clusula

quando = mgu(, ).
O requisito de as clusulas no conterem variveis em comum
pode facilmente ser satisfeito por renomeao das variveis de
uma das clusulas.
e so normalmente literais. No entanto podem ser tambm
conjuntos no vazios de literais
2
que so todos unicados num s.

so conjuntos de literais (possivelmente vazios). Quando


ambos so vazios obtm-se como resolvente.
2
Nesse caso, denota um conjunto de literais negativos.
Carlos Bacelar Almeida, DIUM LGICA DE PREDICADOS- LGICA COMPUTACIONAL 31/37
Clusulas de Horn
Clusulas e Forma Condicional
Uma clusula da FNC pode sempre ser vista na Forma
Condicional como uma implicao entre uma conjuno e uma
disjuno de literais positivos:
ABCD ACBD (AC)(BD) (AC) (BD)
habitual apresentar-se uma clusula na forma condicional como
uma regra:
B D A C
ou simplesmente B, D A, C (deixando implcito as conectivas
lgicas).
As Clusulas de Horn restringem o nmero de literais positivos
contidos na clusulas da FNC.
Carlos Bacelar Almeida, DIUM LGICA DE PREDICADOS- LGICA COMPUTACIONAL 32/37
Clusulas de Horn
Clusulas de Horn
Denio
Uma clusula da FNC diz-se uma Clusula de Horn quando dispe
de, quanto muito, um literal positivo.
Podemos classicar as clusulas de Horn como:
Questo: . (ou Objectivo, ou Goal...)
Regra: H .
Facto: F.
No Prolog, o smbolo substitudo pelo operador :-.
member(H, [H|T]).
member(X, [_|T]) :- member(X,T).
:- member(X, [1,2,3,4]), X mod 2 == 0.
Quando nos restringimos ao fragmento lgico determinado pelas
teorias de Horn, o problema de vericao da inconsistncia
dessas teorias passa a ser resolvel.
Carlos Bacelar Almeida, DIUM LGICA DE PREDICADOS- LGICA COMPUTACIONAL 33/37
Clusulas de Horn
Resoluo Linear
Admitamos que dispomos de uma base de conhecimento
(uma teoria) composta por factos e regras de Horn.
Para vericar se uma dada conjuno de literais positivos G
consequncia semntica da base de conhecimento (i.e. [= G),
suciente vericar se ( G) uma teoria inconsistente (i.e.
( G) ).
Por outro lado, essa vericao particularmente simples neste
caso: basta-nos reescrever cada literal da questo G de acordo
com as regras contidas em .
Carlos Bacelar Almeida, DIUM LGICA DE PREDICADOS- LGICA COMPUTACIONAL 34/37
Clusulas de Horn
Exemplo de Aplicao
Considere a seguinte base de conhecimento:
a.
b :- d, e.
c :- d.
d :- e.
e.
f.
Para avaliar o objectivo :-a,b,c. procede-se da seguinte forma
(utilizamos o smbolo para signicar resolve com...):
1
a, b, c a
2
b, c b, d, e
3
d, e, c d, e
4
e, e, c e (2 vezes)
5
c c, d
6
d d, e
7
e e
8
YES
Carlos Bacelar Almeida, DIUM LGICA DE PREDICADOS- LGICA COMPUTACIONAL 35/37
Clusulas de Horn
O exemplo apresentado meramente proposicional (no contm
variveis). No caso geral torna-se necessrio realizar unicao
do literal do objectivo com a cabea da regra contida na base de
conhecimento (devidamente renomeada, para evitar coliso de
variveis).
Quando existe mais do que uma possibilidade para resolver um
literal (e.g. vrias regras so aplicveis) torna-se necessrio
ramicar o processo de inferncia.
Operacionalmente, o Prolog trata esta ramicao pelo
mecanismo de backtracking.
As rvores de inferncia do Prolog so uma forma de se explicitar
o processo de resoluo linear envolvido na vericao de um
objectivo.
Carlos Bacelar Almeida, DIUM LGICA DE PREDICADOS- LGICA COMPUTACIONAL 36/37
Clusulas de Horn
rvore de Inferncia do Prolog
Assumindo a denio usual do predicado member/2, a vericao
do objectivo member(X,[1,2]), X mod 2 == 0 resultaria em:
member(X,[1,2]), X mod 2==0
1 mod 2==0
fail
X = 1
member(X,[2]), X mod 2==0
2 mod 2==0
yes (X = 2)
X = 2
member(X,[]), X mod 2==0
fail
Carlos Bacelar Almeida, DIUM LGICA DE PREDICADOS- LGICA COMPUTACIONAL 37/37

Você também pode gostar