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

Post on 07-Apr-2016

215 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

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

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

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

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

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

Lógica para Computação (IF61B)

Lógica Predicativa Exemplos:

27/04/23Prof. Celso A A Kaestner

8

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

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

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

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

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

Lógica para Computação (IF61B)

Lógica Predicativa Exemplos

27/04/23Prof. Celso A A Kaestner

14

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

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

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

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

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

Lógica para Computação (IF61B)

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

27/04/23Prof. Celso A A Kaestner

20

top related