1 resolução. 2 equivalências de 1 a ordem as leis de equivalência lógica permitem simplificar...

Post on 07-Apr-2016

223 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1

Resolução

2

Equivalências de 1a Ordem

As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes, porém mais simples – Forma Normal Prenex.

Na forma Prenex todos os quantificadores encontram-se no início da fórmula. Veremos uma outra forma normal, na qual elimina-se os quantificadores existenciais – Forma Normal de skolem

3

Forma Normal Skolem Essa forma elimina os quantificadores

existenciais de uma forma prenex obtendo uma generalização

A eliminação do existencial é obtida pelo seguinte procedimento proposto por Skolem:

4

Procedimento de Eliminação de Quantificadores Existenciais

Seja uma fórmula na forma normal prenex Q1x1, ..., Qnxn(M), onde M está na forma normal conjuntivae Qr um quantificador existencial no prefixo de Q1x1, ... ,Qnxn, 1 r n.

A eliminação de Qnxn é feita observando-se os quantificadores que o antecedem. Ocorre da seguinte maneira:

5

Procedimento de Eliminação de Quantificadores Existenciais

Se não existir nenhum quantificador universal anterior a Qrxr no prefixo, faça: escolha uma nova constante c diferente de

qualquer outra que ocorre em M, substitua todos os xr ocorrendo em M por c e elimine Qrxr do prefixo.

senão ...

6

... senão .., Se Qs1, ... ,Qsm são os quantificadores

universais anteriores a Qr no prefixo, 1 s1 < s2 < ... < sm < r, faça: escolha um novo símbolo funcional m-ário f

diferente de outros símbolos funcionais ocorrendo em M,

substitua todos os xr ocorrendo em M pelo termo f(s1, ... , sm) e

elimine Qrxr do prefixo.

Procedimento de Eliminação de Quantificadores Existenciais

7

Depois do processo de eliminação (skolemização) ser aplicado a todos os quantificadores existenciais do prefixo, a fórmula obtida está na forma normal de skolem, denotada por skolem().

Procedimento de Eliminação de Quantificadores Existenciais

8

Exemplo: obter skolem() = xyzu(P(x, y, z, u))

1. x não é precedido de quantificador universal, então:

yzu(P(a, y, z, u))

2. u é precedido por yz, então: yz (P(a, y, z, f(y, z)))

Procedimento de Eliminação de Quantificadores Existenciais

9

Procedimento de Eliminação de Quantificadores Existenciais

Observe a semântica da função skolem:

Considere o predicado Mãe definido com o seguinte significado:

Mãe(x,y): x é mãe de y

papel do 1o termo: é mãe papel do 2o termo: é filho

10

Procedimento de Eliminação de Quantificadores Existenciais

Exemplo 1: “Todo mundo tem mãe” significa que “para todo x existe um y que é mãe de x “

= xy(Mãe(y,x))

skolem( = x(Mãe(f(x),x))

a função f expressa que o valor de y: a mãe, depende do valor de x: o filho

11

Procedimento de Eliminação de Quantificadores Existenciais

Exemplo 2: “Existe alguém que é mãe de todos” =“existe um x que para todo y, x é mãe de y “

= xy(Mãe(x,y))

skolem( = y(Mãe(a,y))

a constante a pode ser = “Nossa Senhora”

12

Procedimento de Eliminação de Quantificadores Existenciais

Exemplo: obter skolem() = (xyz((~P(x,y) ^ Q(x,z)) v

R(x,y,z))

xyz((~P(x,y) ^ Q(x,z)) v R(x,y,z))xyz((~P(x,y) v R(x,y,z)) ^ (Q(x,z) v R(x,y,z)))xz((~P(x,f(x)) v R(x,f(x),z)) ^ (Q(x,z) v R(x,f(x),z)))x((~P(x,f(x)) v R(x,f(x),g(x)) ^ (Q(x,g(x)) v

R(x,f(x),g(x))))

13

Forma Normal Skolem Teorema 1: Seja um fórmula de 1a

ordem. Então, é insatisfatível se e somente se skolem() é insatisfatível.

As outras formas normais preservam os modelos das fórmulas originais (são tautologicamente equivalentes)

A forma normal de skolem preserva apenas a condição de insatisfatibilidade da fórmula original.

14

Forma Normal Skolem Exemplo:

Seja = x(P(x)) então, skolem() = P(a)

Seja I a seguinte interpretação :D = {1, 2}aI = 1PI(1) = FPI(2) = V

Então, I satisfaz , mas não satisfaz skolem().

15

Representação Clausal de Fórmulas

Def.2 Um literal é uma fórmula atômica (literal positivo) ou a negação de uma fórmula atômica (literal negativo).

Def.3 Uma cláusula é uma disjunção de literais Exemplo: P(x) Q(a) ~R(y)

16

Representação Clausal de Fórmulas

Por conveniência, uma cláusula pode também ser representada como um conjunto, o conjunto de seus literais.

Exemplo: {P(x), Q(a), ~R(y)}

17

Representação Clausal de Fórmulas

Def.4 A cláusula vazia é uma cláusula sem literais (conjunto vazio) e é representada por e Representa uma fórmula insatisfatível ( ^ ~).

Qualquer fórmula de 1a ordem pode ser transformada em um conjunto de cláusulas.

18

Procedimento de Transformação de Fórmulas em Cláusulas

1. Eliminar usando a “lei” a b |=|(a b)^(b a) 2. Eliminar usando a “lei” a b |=| ~ a b 3. Reduzir escopo de ~ usando a “lei” de De Morgan

e outras “leis” 4. Renomear variáveis 5. Skolemizar 6. Converter para a Forma Normal Prenex 7. Converter matriz para a Forma Normal Conjuntiva 8. Eliminar quantificadores universais 9. Eliminar ^ e obter o conjunto de cláusulas

19

Exemplo:Transformar em cláusula =x(P(x) (y(P(y) P(f(x, y))) ^ ~y(Q(x, y) P(y))))

1. x(~P(x) (y(~P(y) P(f(x, y))) ^ ~y(~Q(x, y) P(y))))2. x(~P(x) (y(~P(y) P(f(x, y))) ^ y(~(~Q(x, y) P(y))))3. x(~P(x) (y(~P(y) P(f(x, y))) ^ y(Q(x, y) ^ ~P(y))))4. x(~P(x) (y(~P(y) P(f(x, y))) ^ w(Q(x, w) ^ ~P(w))))5. x(~P(x) (y(~P(y) P(f(x, y))) ^ (Q(x, g(x)) ^ ~P(g(x)))))6. xy (~P(x) ((~P(y) P(f(x, y)) ) ^ (Q(x, g(x)) ^ ~P(g(x)) )))

8. xy((~P(x) ~P(y) P(f(x, y))) ^ (( ~P(x) Q(x, g(x))) ^ (~P(x) ~P(g(x)))))

9.{ ~P(x) ~P(y) P(f(x, y)), ~P(x) Q(x, g(x)), ~P(x) ~P(g(x)) }

7. xy ( (~P(x) (~P(y) P(f(x, y)))) ^ (~P(x) v (Q(x, g(x)) ^ ~P(g(x)) )))

20

Exemplo: Transformar em cláusula =x(P(x) (y(P(y) P(f(x, y))) ^ ~y(Q(x, y) P(y))))

A fórmula foi transformada em um conjunto, S, de 3 cláusulas :

S= {~P(x) ~P(y) P(f(x, y)), ~P(x) Q(x, g(x)), ~P(x) ~P(g(x)) }

21

Exemplo: Fazer a representação clausal de um estado do “Dicionário”

Exemplo: A transformação da fórmula 12 em cláusulas

xyz((depende(x, z) & depende(z, y)) depende(x, y))xyz(~(depende(x, z) & depende(z, y))v depende(x, y))xyz((~depende(x,z) v ~depende(z,y)) v depende(x,y))

S = {~depende(x,z) v ~depende(z,y) v depende(x,y)}

A fórmula 12 foi transformada em um conjunto S de apenas uma cláusula

22

Exemplo: Fazer a representação clausal de um estado do “Dicionário”

Representação clausal após as transformações: 1. programa(a, fortran) 2. programa(b, pascal) 3. programa(c, fortran) 4. arquivo(d, sequencial) 5. arquivo(e, direto) 6. chama(a, b) 7. chama(a, c) 8. usa(a, d) 9. usa(b, e) Continua...

Um fórmula atômica é uma cláusula.cada fato (dado) do “Dicionário” já estava representado por uma fórmula atômica.

23

Exemplo: Fazer a representação clausal de um estado do “Dicionário”

Continuação... 10. ~chama(x, y) depende(x, y) 11. ~usa(x, y) depende(x, y) 12. ~depende(x, z) ~depende(z, y) depende(x, y)

cada regra foi transformada em conj. de cláusulas

As três últimas cláusulas também podem ser representadas por conjunto de literais: 10’. ~chama(x, y), depende(x, y)) 11’. ~usa(x, y), depende(x, y) 12’. ~depende(x, z), ~depende(z, y), depende(x, y)

24

Representação clausal completa: 1. programa(a, fortran) 2. programa(b, pascal) 3. programa(c, fortran) 4. arquivo(d, sequencial) 5. arquivo(e, direto) 6. chama(a, b) 7. chama(a, c) 8. usa(a, d) 9. usa(b, e) 10. ~chama(x, y) depende(x, y) 11. ~usa(x, y) depende(x, y) 12. ~depende(x, z) ~depende(z, y)

depende(x, y)

Exemplo: Fazer a representação clausal de um estado do “Dicionário”

FATOS

REGRAS

25

Resolução 5.1 O Princípio da Resolução (Lógica

Proposicional)Para quaisquer duas cláusulas C1 e C2, se existe um literal L1 em C1 que seja complementar a um literal L2 em C2, então retire L1 e L2 de C1 e de C2 respectivamente, e construa a disjunção das cláusulas remanescentes. A cláusula assim construída é dita ser um resolvente de C1 e C2.

26

Resolução Considere as seguintes cláusulas C1 e

C2 abaixo: C1: P R C2: ~P Q

R Q é um resolvente de C1 e C2.

27

Resolução Teorema 1: Dado duas cláusulas C1 e C2, um

resolvente C de C1 e C2 é conseqüência lógica de C1 e C2.

Def.1 Dado um conjunto S de cláusulas, uma resolução (dedução) de uma cláusula C a partir de S é uma seqüência finita C1, ... ,Ck de cláusulas tal que cada Ci é uma cláusula em S ou um resolvente de cláusulas precedendo Ci, e Ck = C. Uma dedução de a partir de S é chamada uma refutação de S.

28

Resolução Exemplo: Prove que o conjunto de cláusulas

S é insatisfatível: S = {~P Q, ~Q, P}

1. ~P Q C12. ~Q C23. P C34. Q de 1 e 3, R5. de 4 e 2, R

29

Unificação Aplicar o Princípio da Resolução implica

em procurar literais complementares.

Para cláusulas sem variáveis é muito simples.

Para cláusulas com variáveis, é necessário fazer substituições para unificar os literais Exemplo:

C1: P(x) Q(x) C2: ~P(f(y)) R(y)

30

Unificação: Exemplo:C1 (P(x) Q(x)) e C2 (~P(f(y)) R(y))

Aplicando-se as substituições s1 e s2 à C1 e C2, C1: P(x) Q(x) s1 = {x/f(a) } C2: ~P(f(y)) R(y) s2 = {y/a }

Obtém-se C’1 e C’2, C’1: P(f(a)) Q(f(a)) C’2: ~P(f(a)) R(a)

Aplicando-se o princípio da Resolução à C’1 e C’2 obtém-se o resolvente C: C: Q(f(a)) R(a)

31

Unificação Outras substituições também poderiam ser aplicadas

Exercício: Para s1 = {x/f(f(a))} e s2 = {y/f(a)}, Qual seria o resolvente obtido?Teria outras possíveis substituições?

Uma substituição mais geral seria substituir x por f(y) em C1 e obter-se:

C1*: P(f(y)) Q(f(y))

e um resolvente mais geral C: C: Q(f(y)) R(y)

32

Unificação A cláusula C é a cláusula mais geral no

sentido de que todas as outras cláusulas que podem ser obtida pelo processo anterior são instâncias de C. Por exemplo, C’ é uma instância de C.

C: Q(f(y)) R(y) C’: Q(f(a)) R(a)

33

Unificação Def.2 Sejam as substituições

= {x1/t1, ... ,xn/tn } e = { y1/u1, ... , ym/um} a composição de com () é a substituição obtida do conjunto { x1/t1, ... , xn/tn, y1/u1, ... , ym/um} excluindo-se os seguintes elementos:xj/tj para o qual tj = xj e yi/ui tal que yi {x1, ... ,xn}.

34

Unificação Exemplo: Sejam as substituições

= {t1/x1, t2/x2} = { x/f(y), y /z } = { y1/u1, y2/u2, y3/u3 } = { x/a, y/b, z/y }

() = { x1/t1, x2/t2, y1/u1, y2/u2, y3/u3 }

= { x/f(b), y/y, x/a, y/b, z/y }

= { x/f(b), z/y }

35

Unificação Def.3 Uma substituição é chamada um

unificador para um conjunto de expressões

{E1, ... ,En} se e somente se E1 = E2 = ... = En.

O conjunto {E1, ... ,En} é dito ser unificável se existe um unificador para ele.

36

Unificação

Def.4 Um unificador para um conjunto de expressões {E1, ... ,En} é um unificador mais geral (umg) se e somente se para cada unificador para o conjunto, existe uma substituição tal que = .

37

UnificaçãoExemplo: E = {Q(x), Q(f(y))}

Entre outras possíveis substituições, unifica E = {x/f(a) , y/a} e o umg = {x/f(y)}

Existe uma substituição tal que =

Essa substituição seria: = {y/a} {x/f(a) , y/a} = {x/f(a) , y/a} = {x/f(y)} {y/a} {x/f(a) , y/a} = {x/f(a), y/a}

Para outra substituição = {x/f(f(a)), y/f(a)}, seria {y/f(a)}

38

Unificação Def.5 Um conjunto de termos D é o

conjunto de discórdia de um conjunto de expressões E = {E1, ... ,En} se e somente se: (i) D = , se n = 1 (ii) D = {t1, ... ,tn}, se n > 1 e todas as

expressões em E são idênticas até o i-ésimo símbolo, exclusive, e t1, ... ,tn são os termos ocorrendo em E1, ... ,En que começam na posição i.

39

Unificação Exemplo1: Discórdia de E1

E1 = {P(x), P(a)}

Exemplo2: Discórdia de E2 E2 = {P(x, f(y, z)), P(x, a), P(x,

g(h(k(x))))}

D = {x, a}

D = {f(y, z), a, g(h(k(x)))}

40

Algoritmo de Unificação1. Faça k = 0, Ek = E e sk =

2. Se Ek é um conjunto unitário, pare. sk é um unificador mais geral para E. Caso contrário, encontre o conjunto discórdia Dk de Ek.

3. Se existem vk e tk em Dk tal que vk é uma variável que não ocorre em tk, vá para 4. Caso contrário, pare. E não é unificável.

4. Faça sk+1= sk{ vk/tk } e Ek+1= Ek{ vk/tk }

5. Faça k = k+1 e vá para 2.

41

Algoritmo de Unificação Exemplo: E = {P(a, x, f(g(y))), P(z, f(z), f(u))}

K= 0 S0 = E0 = {P(a, x, f(g(y))), P(z, f(z), f(u))} D0 = {a, z}. v0 = z e t0 = a.S1 = s0 {v0/t0} = {z/a} = {z/a}E1= E0.{v0/t0} = {P(a, x, f(g(y))), P(a, f(a), f(u))}D1 = {x, f(a)}. v1 = x e t1 = f(a)

K = 1S2 = s1{v1/t1} = {z/a}{x/f(a)} = {z/a, x/f(a)} E2 = E1. { v1/t1} = {P(a, f(a), f(g(y))), P(a, f(a), f(u))}D2 = {g(y), u} v2 = u e t2 = g(y)

K = 2

42

Algoritmo de Unificação Exemplo: E = {P(a, x, f(g(y))), P(z, f(z), f(u))}

Continuação ...S3 = s2 {v2/t2} = {z/a, x/f(a), u/g(y)} E3 = E2.{v2/t2} = {P(a, f(a), f(g(y))), P(a, f(a), f(u))}.{g(y)/u} =

{P(a, f(a), f(g(y))), P(a, f(a), f(g(y)))} = { P(a, f(a), f(g(y)))}K = 3 Visto E3 ser unitário, S3 é um umg

S3 = {z/a, x/f(a), u/g(y)} para E.

E = {P(a, x, f(g(y))), P(z, f(z), f(u))}

43

Resolução: Definições

Def.6 Se dois ou mais literais (com o mesmo sinal) de uma única cláusula C tem um unificador mais geral , então C é chamado um fator de C

44

Resolução: DefiniçõesExemplo: Seja C = P(x) P(f(y)) ~Q(x)

P(x) e P(f(y)) tem um umg = {x/f(y)}

C = P(f(y)) ~Q(f(y)) é um fator de C.

45

Resolução: Definições Def.7 Sejam C1 e C2 duas cláusulas

sem variáveis comuns. Sejam L1 e L2 literais de C1 e C2, respectivamente. Se L1 e ~L2 tem um unificador mais geral , então a cláusula:(C1 L1) (C2 L2)

é chamada um resolvente binário de C1 e C2.

46

Resolução: DefiniçõesExemplo:

Sejam C1: P(x) Q(x) (C2 não tem x)C2: ~P(a) R(y) (C1 não tem y)literais L1 = P(x) L2 = ~P(a), então, ~L2 = P(a).

umg de L1 e L2 é = {x/a}

logo, (C1 L1) (C2 L2) = Q(a) R(y) um resolvente binário de C1 e C2.

47

Resolução: Definições Def.8 Um resolvente de cláusulas C1 e C2

é um dos seguintes resolventes binários:

(i) um resolvente binário de C1 e C2(ii) um resolvente binário de C1 e um fator de C2(iii) um resolvente binário de um fator de C1 e C2(iv) um resolvente binário de um fator de C1 e um fator de C2

48

Resolução: Definições Exemplo: Sejam

C1 = P(x) P(f(y)) R(g(y))C2 = ~P(f(g(a))) Q(b)

Um fator de C1 é:C1’ = P(f(y)) R(g(y))

Um resolvente binário de C1’ e C2 é: C = R(g(g(a))) Q(b)

49

Resolução: Definições

Teorema 2: Se C é um resolvente de duas cláusulas C1 e C2 então C é consequência lógica de C1 e C2.

50

O Sistema Formal da Resolução

Def.9 O Sistema Formal da Resolução R consiste de: (i) Classe de linguagens

Para cada alfabeto de 1a ordem, o conjunto das cláusulas sobre este alfabeto.

(ii) Axiomas Nenhum.

(iii) Regras de Inferência Regra da Resolução definida como:

Se C’ e C’’ são cláusulas e C é um resolvente de C’ e C’’, então derive C de C’ e C’’

51

O Sistema Formal da Resolução

Observe que a noção de uma dedução (derivação ou prova) em R é formalizada de maneira semelhante à noção de dedução em um sistema formal axiomático, no qual usa-se regras de inferência e axiomas.

52

O Sistema Formal da Resolução

Teorema 3: Teorema da Correção Para todo conjunto S de cláusulas, se

existe uma refutação a partir de S em R, então S é insatisfatível. “tudo que se deriva é semanticamente correto”

Teorema 4: Teorema da Completude Para todo conjunto S de cláusulas, se S é

insatisfatível, então existe uma refutação a partir de S em R. “se é consequência lógica existe uma derivação”

53

Exemplos de Aplicações: Banco de Dados

Exemplo 1: Considere o Banco de Dados que segue a seguinte Questão ou Consulta:

Quem é o chefe de João?

gerente(Vendas, José) lotado(João, Vendas) lotado(y, x) & gerente(x, z) chefe(y, z)

FATOS

REGRA

54

Exemplos de Aplicações: Banco de Dados

Transformando essa descrição para cláusulas e fazendo derivações:1. gerente(Vendas, José)2. lotado(João, Vendas)3. ~lotado(y, x) ~gerente(x, z) chefe(y, z)4. ~lotado(y, Vendas) ~gerente(Vendas, José) chefe(y, José) 5. ~lotado(y, Vendas) chefe(y, José) 1, 3 R6. ~lotado(João, Vendas) chefe(João, José)7. chefe(João, José) 2, 5 R

55

Exemplos de Aplicações: Banco de Dados

Exemplo 2: A figura que segue representa a maneira que umas caixas estão arrumadas:

CA B

chão

Use a Linguagem da Lógica de 1a Ordem para descrever essa arrumação, ou seja, as caixas que estão no topo, no chão e o que está sobre cada caixa. Uma regra de restrição observada para as caixas que estão no topo é: “as caixas que estão no topo, não têm nenhuma caixa sobre elas”.

56

Exemplos de Aplicações: Banco de Dados

Descrição da situação:1. chão(A)2. chão(B)3. topo(C)4. sobre(C, A)5. x(topo(x) ~y(sobre(y, x))

Questão: tem algum bloco sobre o bloco C?

FATOS

REGRA

57

Exemplos de Aplicações: Banco de Dados

Transformando para cláusulas e fazendo derivações:

1. chão(A)2. chão(B)3. topo(C)4. sobre(C, A)5. ~topo(x) ~sobre(y, x)7. ~topo(C) ~sobre(y, C)8. ~sobre(y, C)

58

Métodos Básicos de Resolução(Refutação)

Método de Resolução por Saturação1. Dado um conjunto finito de cláusulas S,

construa uma sequência S0, S1, ... de conjuntos de cláusulas da forma seguinte:S0 = SSn+1= Sn {C : C é um resolvente de cláusulas em Sn}

2.Pare com SIM quando for gerada.

3.Pare com NÃO quando não houver novos resolventes a derivar.

59

Métodos Básicos de Resolução(Refutação)

Esse procedimento: sempre pára com SIM quando S for

insatisfatível (método é refutacionalmente completo)

nunca pára quando S for satisfatível e existir um conjunto infinito de resolventes obtidos a partir de S

sempre pára com NÃO quando S for satisfatível mas o conjunto de resolventes obtido a partir de S é finito.

60

Exemplo: S = {P Q, ~P Q, P ~Q, ~P ~Q}

S0: 1. P Q 2. ~P Q 3. P ~Q 4. ~P ~Q

S1: 5. Q 1. e 2. 6. P 1. e 3. 7. Q ~Q 1. e 4. 8. P ~P 1. e 4. 9. Q ~Q 2. e 3. 10. P ~P 2. e 3. 11. ~P 2. e 4. 12. ~Q 3. e 4.

61

Exemplo (continuação):

S2:

13. P Q 1. e 7. 14. P Q 1. e 8.

.

.

. 37. Q 5. e 7. 38. Q 5. e 9. 39. 5. e 12.

62

Métodos Básicos de Resolução(Refutação)

Outros métodos com implementações mais eficientes: Método por Saturação com Filtragem Método de Resolução por conjunto de Suporte Método da Resolução Linear

Esses métodos implementam a Resolução visando otimização. Para isso, evitam gerar resolventes (novas cláusulas) que sejam irrelavantes a decisão de insatisfatibilidade do conjunto de cláusulas.

O método mais eficiente é o da Resolução Linear, segue um exemplo:

63

Métodos Básicos de Resolução(Refutação Linear)

Exemplo: Seja S o seguinte conjunto de cláusulas: 1. chama(a, b) 2. usa(b, e) 3. ~chama(x, y), depende(x, y) 4. ~usa(x, y), depende(x, y) 5. ~chama(x, z), ~depende(z, y), depende(x, y)

Questão: depende(a, e) ?

A seguinte sequência de cláusulas é uma refutação linear a partir de S:

64

1. chama(a, b) 2. usa(b, e) 3. ~chama(x, y), depende(x, y) 4. ~usa(x, y), depende(x, y) 5. ~chama(x, z), ~depende(z, y), depende(x,

y) 6. ~depende(a, e) (negação da tese)

7. ~chama(a, z), ~depende(z, e) 6, 5 R 8. ~depende(b, e) 7, 1 R 9. ~usa(b, e) 8, 4 R 10. 9, 2 R

Métodos Básicos de Resolução(Refutação Linear)

65

Métodos Básicos de Resolução(Refutação Linear)

Exemplo 2: Seja S o seguinte conjunto de cláusulas: 1. genitor(pam, bob) 2. genitor(tom, bob) 3. genitor(tom, liz) 4. genitor(bob, ana) 5. genitor(bob, pat) 6. genitor(pat, jim) 7. ~genitor(X,Z) v descendente (X,Z) 8. ~genitor(X,Y) v ~descendente (Y,Z) v descendente(X,Z)

Questão: descendente(tom,pat) ?

A seguinte sequência de cláusulas é uma refutação linear a partir de S:

FATOS

REGRAS

66

1. genitor(pam, bob) 2. genitor(tom, bob) 3. genitor(tom, liz) 4. genitor(bob, ana) 5. genitor(bob, pat) 6. genitor(pat, jim) 7. ~genitor(X,Z) v descendente (X,Z) 8. ~genitor(X,Y) v ~descendente (Y,Z) v descendente(X,Z) 9. ~descendente(tom, pat) (negação da tese)

10. ~genitor(tom,Y) v ~descendente (Y, pat) v descendente(tom, pat) 8. X/tom, Z/pat

11. ~genitor(tom,Y) v ~descendente (Y, pat) 10, 9 R 12. ~genitor(tom, bob) v ~descendente (bob, pat) 11. Y/bob 13. ~descendente (bob, pat) 12, 2 R 14. ~genitor(bob, pat) v descendente (bob, pat) 7, X/bob, Z/pat 15. ~genitor(bob, pat) 14, 13 R 10. 15, 5 R

Métodos Básicos de Resolução(Refutação Linear)

top related