lógica para computação prof. celso antônio alves kaestner, dr. eng. celsokaestner (at) utfpr...

20
Lógica para Computação Prof. Celso Antônio Alves Kaestner, Dr. Eng. celsokaestner (at) utfpr (dot) edu (dot) br

Upload: isis-parco

Post on 07-Apr-2016

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Lógica para Computação Prof. Celso Antônio Alves Kaestner, Dr. Eng. celsokaestner (at) utfpr (dot) edu (dot) br

Lógica para Computação

Prof. Celso Antônio Alves Kaestner, Dr. Eng.celsokaestner (at) utfpr (dot) edu (dot) br

Page 2: Lógica para Computação Prof. Celso Antônio Alves Kaestner, Dr. Eng. celsokaestner (at) utfpr (dot) edu (dot) br

Lógica para Computação (IF61B)

Lógica Predicativa A Lógica Predicativa (ou lógica de 1ª ordem) é

uma extensão da lógica proposicional que aumenta sua expressividade, permitindo que se façam afirmações sobre propriedades – ou predicados – inerentes a conjuntos de elementos individuais;

Tipicamente as fórmulas envolvem os quantificadores “para todo” () e “existe” ();

Uma fórmula típica é: x(homem(x)→mortal(x)). Obs.: para representar o mesmo em Lógica Proposicional seria

necessário utilizar uma fórmula para cada indivíduo, por exemplo: (homem_joão → mortal_joão), (homem_josé → mortal_josé), etc.

27/04/23Prof. Celso A A Kaestner

2

Page 3: Lógica para Computação Prof. Celso Antônio Alves Kaestner, Dr. Eng. celsokaestner (at) utfpr (dot) edu (dot) br

Lógica para Computação (IF61B)

Lógica Predicativa A linguagem (sintaxe) da Lógica Predicativa

LPRED é mais complexa que a da Lógica Proposicional;

Para a definição de LPRED necessita-se de:1. Um conjunto de predicados: Ri = { ri

1, ri2,... ri

n,...} onde o sobrescrito i indica a aridade do predicado (o seu nº de argumentos);

2. Um conjunto de constantes: C = {c1,c2, ...};3. Um conjunto de funções: Fi = { fi

1, fi2,... fi

n,...} onde o sobrescrito i também indica a aridade da função;

4. Um conjunto de variáveis: V = {x1,x2, ...}.27/04/23Prof. Celso A A Kaestner

3

Page 4: Lógica para Computação Prof. Celso Antônio Alves Kaestner, Dr. Eng. celsokaestner (at) utfpr (dot) edu (dot) br

Lógica para Computação (IF61B)

Lógica Predicativa A assinatura de LPRED é a uma tupla do tipo

= [R1,R2, ...RM,C,F1,F2,...FN] onde N e M são números naturais conhecidos.

O conjunto dos termos de LPRED é T() definido recursivamente por:

1. Se xV então x T();2. Se cC então c T();3. Se fFj e se t1,...tj T() então f(t1,...tj ) T().

27/04/23Prof. Celso A A Kaestner

4

Page 5: Lógica para Computação Prof. Celso Antônio Alves Kaestner, Dr. Eng. celsokaestner (at) utfpr (dot) edu (dot) br

Lógica para Computação (IF61B)

Lógica Predicativa O conjunto das fórmulas (fbf) de LPRED é Fbf()

definido recursivamente como sendo o menor conjunto que atenda ao seguinte:

1. Se t1,...tj T() e se rj Rj então rj(t1,...tj) Fbf();

2. Se t1, t2 T() então t1= t2 Fbf();Estas fbf são chamadas de fórmulas atômicas;

3. Se , Fbf() então , , , → Fbf();4. Se Fbf() e se xV então x() e x()

Fbf().

27/04/23Prof. Celso A A Kaestner

5

Page 6: Lógica para Computação Prof. Celso Antônio Alves Kaestner, Dr. Eng. celsokaestner (at) utfpr (dot) edu (dot) br

Lógica para Computação (IF61B)

Lógica Predicativa O conjunto das variáveis livres VLIVRES () em uma

fórmula é definido por:1. Se = rj(t1,...tj) com rj Rj e os ti T() então todas as

variáveis em pertencem a VLIVRES ();2. Se = (t1=t2) com os ti T() então todas as variáveis em

pertencem a VLIVRES ();3. Se = então VLIVRES ()= VLIVRES ();4. Se = , , ou → então VLIVRES ()= VLIVRES () VLIVRES ();5. Se = x() ou x() então VLIVRES ()= VLIVRES () – {x}.

Exemplo: Se = x (r(x) q(y) → z (s(z,y))) então VLIVRES () = { y }.

27/04/23Prof. Celso A A Kaestner

6

Page 7: Lógica para Computação Prof. Celso Antônio Alves Kaestner, Dr. Eng. celsokaestner (at) utfpr (dot) edu (dot) br

Lógica para Computação (IF61B)

Lógica Predicativa Uma fórmula tal que VLIVRES () = (sem

variáveis livres) é denominada uma sentença. Uma subfórmula de uma fórmula é uma

subseqüência dos símbolos de que também pertence a Fbf().

Exemplo: se = x (r(x) q(y) → z (s(z,y))) então r(x) q(y) → z (s(z,y)) , r(x) q(y), z (s(z,y)), r(x) e q(y) são subfórmulas de .

27/04/23Prof. Celso A A Kaestner

7

Page 8: Lógica para Computação Prof. Celso Antônio Alves Kaestner, Dr. Eng. celsokaestner (at) utfpr (dot) edu (dot) br

Lógica para Computação (IF61B)

Lógica Predicativa Exemplos:

27/04/23Prof. Celso A A Kaestner

8

Page 9: Lógica para Computação Prof. Celso Antônio Alves Kaestner, Dr. Eng. celsokaestner (at) utfpr (dot) edu (dot) br

Lógica para Computação (IF61B)

Lógica Predicativa A semântica da Lógica Predicativa é definida

sobre um par A()=[A, vA()] denominado sistema algébrico da assinatura , tal que:

1. A é um conjunto denominado domínio (ou portador) do sistema algébrico;

2. vA() é uma interpretação, que mapeia os elementos dos conjuntos em em relações sobre A (para os predicados), em funções sobre A (para as funções) e em elementos de A (para as constantes).

27/04/23Prof. Celso A A Kaestner

9

Page 10: Lógica para Computação Prof. Celso Antônio Alves Kaestner, Dr. Eng. celsokaestner (at) utfpr (dot) edu (dot) br

Lógica para Computação (IF61B)

Lógica Predicativa Desta forma para uma interpretação vA()

tem-se:1. Se rj Rj então vA() (rj) Aj = A A ... A (j

vezes);2. Se fFj então existe uma função vA() (fj): Aj

→A; 3. Se c C então vA() (c) A;4. Para um conjunto de variáveis X V existe

ainda uma função : X → A denominada interpretação das variáveis X em A .

27/04/23Prof. Celso A A Kaestner

10

Page 11: Lógica para Computação Prof. Celso Antônio Alves Kaestner, Dr. Eng. celsokaestner (at) utfpr (dot) edu (dot) br

Lógica para Computação (IF61B)

Lógica Predicativa O valor de um termo t T () em um sistema

algébrico A() e para uma interpretação de variáveis é definido indutivamente por:

1. Se t = x X então tA() [] = (x);2. Se t = c C então tA() [] = vA() (c);3. Se fFj , t1,..., tj são termos e t=f(t1,..., tj)

então tA() []= vA() (fj)(t1

A()[],..., tjA()[]).

27/04/23Prof. Celso A A Kaestner

11

Page 12: Lógica para Computação Prof. Celso Antônio Alves Kaestner, Dr. Eng. celsokaestner (at) utfpr (dot) edu (dot) br

Lógica para Computação (IF61B)

Lógica Predicativa Finalmente é possível se definir quando uma

fórmula é verdadeira para um sistema algébrico A() e uma interpretação de variáveis ;

Denota-se por A() |= [];1. Se = rj(t1,...tj) Fbf() então A() |= [] é

equivalente a [t1A()[],..., tj

A()[]] vA() (rj);2. Se = (t1=t2) com t1, t2 T() então A() |= [] é

equivalente a t1A()[] = t2

A()[];3. Se = e Fbf() então A() |= [] se e somente

se não for verdade que A() |= [];

27/04/23Prof. Celso A A Kaestner

12

Page 13: Lógica para Computação Prof. Celso Antônio Alves Kaestner, Dr. Eng. celsokaestner (at) utfpr (dot) edu (dot) br

Lógica para Computação (IF61B)

Lógica Predicativa4. Se = , com , Fbf() então A() |= [] se e somente

se A() |= [] e A() |= [];5. Se = , com , Fbf() então A() |= [] se e somente

se A() |= [] ou A() |= [];6. Se = →, com , Fbf() então A() |= [] se e somente

se quando A() |= [] necessariamente também ocorre A() |= [];

7. Se = x() com Fbf() então A() |= [] se e somente se existir pelo menos uma interpretação de variáveis : X → A que, restrita às variáveis de , seja tal que A() |= [];

8. Se = x() com Fbf() então A() |= [] se e somente se para todas as interpretações de variáveis : X → A , quando restritas às variáveis de , sejam tais que A() |= [].

27/04/23Prof. Celso A A Kaestner

13

Page 14: Lógica para Computação Prof. Celso Antônio Alves Kaestner, Dr. Eng. celsokaestner (at) utfpr (dot) edu (dot) br

Lógica para Computação (IF61B)

Lógica Predicativa Exemplos

27/04/23Prof. Celso A A Kaestner

14

Page 15: Lógica para Computação Prof. Celso Antônio Alves Kaestner, Dr. Eng. celsokaestner (at) utfpr (dot) edu (dot) br

Lógica para Computação (IF61B)

Lógica Predicativa Uma teoria em LPRED é um conjunto de

sentenças; Um sistema algébrico A() é um modelo

para uma teoria se A() |= para toda ;

Se tiver ao menos um modelo diz-se que é satisfazível;

Se não tiver modelos é dita insatisfazível.

27/04/23Prof. Celso A A Kaestner

15

Page 16: Lógica para Computação Prof. Celso Antônio Alves Kaestner, Dr. Eng. celsokaestner (at) utfpr (dot) edu (dot) br

Lógica para Computação (IF61B)

Lógica PredicativaSubstituição de variáveis:• Seja uma fórmula, x VLIVRES () uma

variável livre em e t T() um termo;• Neste caso a variável x pode ser substituída

pelo termo t em , gerando uma nova fórmula [x:=t];

• Exemplo: se = x(r(x) →s(x,y)), yVLIVRES () e t=f(a,z)

então [y:=f(a,z)] = x(r(x)

→s(x,f(a,z))). 27/04/23Prof. Celso A A Kaestner

16

Page 17: Lógica para Computação Prof. Celso Antônio Alves Kaestner, Dr. Eng. celsokaestner (at) utfpr (dot) edu (dot) br

Lógica para Computação (IF61B)

Lógica Predicativa• Intuitivamente uma substituição gera um “caso

particular” de uma fórmula; • As substituições só podem ser feitas sobre as variáveis

livres de , e de forma a não introduzir restrições na fórmula gerada que já não estivessem presentes na fórmula original;

• Várias substituições podem ser feitas simultaneamente, desde que não introduzam restrições.

• Exemplo: Se = x(r(x) →s(x,y) r(z))

y, zVLIVRES () e t1=f(a,w), t2=bentão

[y:=f(a,w), z:=b]=x(r(x)→s(x,f(a,z))r(b)))27/04/23Prof. Celso A A Kaestner

17

Page 18: Lógica para Computação Prof. Celso Antônio Alves Kaestner, Dr. Eng. celsokaestner (at) utfpr (dot) edu (dot) br

Lógica para Computação (IF61B)

Lógica PredicativaSistemas Dedutivos em Lógica

Predicativa:

1. Método axiomático: ver item 4.5 pg. 128;

2. Dedução natural: ver item 4.4 pg. 122, e também a ferramenta JAPE;

3. Método dos tableaux analíticos: ver item 5.6 pg. 147.

27/04/23Prof. Celso A A Kaestner

18

Page 19: Lógica para Computação Prof. Celso Antônio Alves Kaestner, Dr. Eng. celsokaestner (at) utfpr (dot) edu (dot) br

Lógica para Computação (IF61B)

Lógica PredicativaExemplo do método dos tableaux analíticos: 1. x(r(x) → s(x)) |- x r(x) → x s(x) 2. T x(r(x) → s(x)) de 13. F x r(x) → x s(x) de 14. T x r(x) de 3 5. F x s(x) de 36. F s(a) de 57. T r(a) de 48. T r(a) → s(a) de 29. F r(a) T s(a) de 8 X (7,9) X (6,9)

27/04/23Prof. Celso A A Kaestner

19

Page 20: Lógica para Computação Prof. Celso Antônio Alves Kaestner, Dr. Eng. celsokaestner (at) utfpr (dot) edu (dot) br

Lógica para Computação (IF61B)

Lógica Predicativa Método da Dedução Natural...

27/04/23Prof. Celso A A Kaestner

20