Lógica para Computação - DAINFkaestner/Logica/LogicaProposicional.pdf · Lógica para...

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

Transcript of Lógica para Computação - DAINFkaestner/Logica/LogicaProposicional.pdf · Lógica para...

Page 1: Lógica para Computação - DAINFkaestner/Logica/LogicaProposicional.pdf · Lógica para Computação (IF61B) Lógica Proposicional Linguagem informal x linguagem formal; Linguagem

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 - DAINFkaestner/Logica/LogicaProposicional.pdf · Lógica para Computação (IF61B) Lógica Proposicional Linguagem informal x linguagem formal; Linguagem

Lógica para Computação (IF61B)

Lógica Proposicional

Linguagem informal x linguagem formal;

Linguagem proposicional: envolve proposições e conectivos, formando fórmulas complexas;

Proposição: enunciado ao qual se pode atribuir um valor verdade (verdadeiro ou falso);

09/10/2014 Prof. Celso A A Kaestner

2

Page 3: Lógica para Computação - DAINFkaestner/Logica/LogicaProposicional.pdf · Lógica para Computação (IF61B) Lógica Proposicional Linguagem informal x linguagem formal; Linguagem

Lógica para Computação (IF61B)

Lógica Proposicional

Conectivos: conjunção (... E ...), disjunção (... OU ...), negação (NÃO ...), implicação (SE … ENTÃO…), bicondicional (...SE E SOMENTE SE...);

A Lógica Proposicional NÃO trata de relações sobre elementos de um conjunto, como “todos”, “algum”, nem utiliza variáveis; isto que será visto mais adiante, no estudo da Lógica Predicativa.

09/10/2014 Prof. Celso A A Kaestner

3

Page 4: Lógica para Computação - DAINFkaestner/Logica/LogicaProposicional.pdf · Lógica para Computação (IF61B) Lógica Proposicional Linguagem informal x linguagem formal; Linguagem

Lógica para Computação (IF61B)

Lógica Proposicional

A linguagem proposicional utiliza:

1. Variáveis proposicionais (ou símbolos

proposicionais, ou átomos):

P = {p0, p1, p2, … };

2. Conectivos:

a) unário: negação: (NÃO);

b) binários: conjunção: (E), disjunção:

(OU), implicação: (SE…ENTÃO);

3. Símbolos de pontuação: parênteses “(” e “)”.

09/10/2014 Prof. Celso A A Kaestner

4

Page 5: Lógica para Computação - DAINFkaestner/Logica/LogicaProposicional.pdf · Lógica para Computação (IF61B) Lógica Proposicional Linguagem informal x linguagem formal; Linguagem

Lógica para Computação (IF61B)

Lógica Proposicional

Fórmulas bem formadas (fbf) são definidas indutivamente como o menor conjunto LLP com as

seguintes regras de formação:

1. Caso básico: todos a variáveis proposicionais são fbf, isto é: P LLP ;

2. Caso indutivo 1: Se A LLP então ( A) LLP ;

3. Caso indutivo 2: Se A, B LLP então (A B)

LLP, (A B) LLP, e (A B) LLP.

09/10/2014 Prof. Celso A A Kaestner

5

Page 6: Lógica para Computação - DAINFkaestner/Logica/LogicaProposicional.pdf · Lógica para Computação (IF61B) Lógica Proposicional Linguagem informal x linguagem formal; Linguagem

Lógica para Computação (IF61B)

Lógica Proposicional

Exemplos de fórmulas:

• ((p0 ( p1)) ( (( p0) p1)))

• (p (q p))

• (p ( ( p)))

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

• ((p0 ( p1)) ( (( p0) p1)))

• (p ((q ( p)) ( q)))

09/10/2014 Prof. Celso A A Kaestner

6

Page 7: Lógica para Computação - DAINFkaestner/Logica/LogicaProposicional.pdf · Lógica para Computação (IF61B) Lógica Proposicional Linguagem informal x linguagem formal; Linguagem

Lógica para Computação (IF61B)

Lógica Proposicional

Regras para a omissão de parênteses:

• O parênteses mais externo pode ser eliminado;

• O uso repetido de ou de dispensa os parênteses;

neste caso considera-se que os parênteses são aninhados

à esquerda:

p q r s representa (((p q) r) ( s))

• O uso repetido de também dispensa os parênteses,

mas neste caso eles aninham-se à direita:

p q r s representa (p (q (r ( s))))

09/10/2014 Prof. Celso A A Kaestner

7

Page 8: Lógica para Computação - DAINFkaestner/Logica/LogicaProposicional.pdf · Lógica para Computação (IF61B) Lógica Proposicional Linguagem informal x linguagem formal; Linguagem

Lógica para Computação (IF61B)

Lógica Proposicional

Utiliza-se ainda a seguinte precedência entre

os conectivos: , , e .

Logo:

• p q representa (( p) q);

• p q r representa ((p q) r);

• p r q representa ((p r) q).

09/10/2014 Prof. Celso A A Kaestner

8

Page 9: Lógica para Computação - DAINFkaestner/Logica/LogicaProposicional.pdf · Lógica para Computação (IF61B) Lógica Proposicional Linguagem informal x linguagem formal; Linguagem

Lógica para Computação (IF61B)

Lógica Proposicional

Diz-se que g é uma subfórmula de uma fórmula

f se g atende as condições para ser uma fbf e

além disto é compatível com a estrutura de f.

O conjunto subf (f) das subfórmulas de f pode

ser obtido indutivamente por:

• Se f = p (uma variável proposicional) então

Subf (f) = { p };

• Se f = g então Subf (f) = { g} U Subf (g);

• Se f = g h, f = g h ou f = g h então

Subf (f) = { f } U Subf (g) U Subf (h).

09/10/2014 Prof. Celso A A Kaestner

9

Page 10: Lógica para Computação - DAINFkaestner/Logica/LogicaProposicional.pdf · Lógica para Computação (IF61B) Lógica Proposicional Linguagem informal x linguagem formal; Linguagem

Lógica para Computação (IF61B)

Lógica Proposicional

Exemplo:

f = p r (p s) = (( p) (r (p s)))

Subf(f)=

{ p r (ps)} U Subf( p) U Subf(r (p s)) =

{ p r (p s)} U { p} U Subf(p) U {r (p s)} U

Subf(r) U Subf(p s) =

{ p r (p s), p} U {p} U {r (p s)} U {r} U

{ps} U Subf(p) U Subf(s) =

{ p r (p s), p, r (p s)}, p, r, p s} U {p}

U {s}

09/10/2014 Prof. Celso A A Kaestner

10

Page 11: Lógica para Computação - DAINFkaestner/Logica/LogicaProposicional.pdf · Lógica para Computação (IF61B) Lógica Proposicional Linguagem informal x linguagem formal; Linguagem

Lógica para Computação (IF61B)

Lógica Proposicional

Outra definição indutiva muito utilizada é a do

tamanho de uma fórmula:

• |p| = 1 se p é uma variável proposicional;

• | f | = 1 + | f |;

• | f g | = |f g|= |f g|= 1 + |f | + |g|.

09/10/2014 Prof. Celso A A Kaestner

11

Page 12: Lógica para Computação - DAINFkaestner/Logica/LogicaProposicional.pdf · Lógica para Computação (IF61B) Lógica Proposicional Linguagem informal x linguagem formal; Linguagem

Lógica para Computação (IF61B)

Lógica Proposicional

Itens adicionais:

Expressando ideias em Lógica Proposicional

(ver item 1.2.4 da referência 1);

Exercícios (ver pg. 12 da referência 1).

09/10/2014 Prof. Celso A A Kaestner

12

Page 13: Lógica para Computação - DAINFkaestner/Logica/LogicaProposicional.pdf · Lógica para Computação (IF61B) Lógica Proposicional Linguagem informal x linguagem formal; Linguagem

Lógica para Computação (IF61B)

Lógica Proposicional

Semântica:

Consiste na atribuição de valores-verdade às fórmulas da linguagem;

Os valores-verdade no caso clássico são “verdadeiro” (1) e “falso” (0);

Os valores-verdade são associados aos símbolos proposicionais por meio de uma função de valoração (ou interpretação):

V: P { 0,1 }

09/10/2014 Prof. Celso A A Kaestner

13

Page 14: Lógica para Computação - DAINFkaestner/Logica/LogicaProposicional.pdf · Lógica para Computação (IF61B) Lógica Proposicional Linguagem informal x linguagem formal; Linguagem

Lógica para Computação (IF61B)

Lógica Proposicional

Para as demais fórmulas:

1. V ( A) = 1 se e somente se V (A) = 0 ;

2. V (A B) = 1 se e somente se V (A) = 1 e

V (B) = 1;

3. V (A B) = 1 se e somente se V (A) = 1 ou

V (B) = 1;

4. V (A B) = 1 se e somente se V (A) = 0

ou V (B) = 1.

09/10/2014 Prof. Celso A A Kaestner

14

Page 15: Lógica para Computação - DAINFkaestner/Logica/LogicaProposicional.pdf · Lógica para Computação (IF61B) Lógica Proposicional Linguagem informal x linguagem formal; Linguagem

Lógica para Computação (IF61B)

Lógica Proposicional

Dada uma fórmula proposicional f e uma

interpretação V, a atribuição de valores-verdade

definida anteriormente permite a obtenção do valor-verdade V(f) da fórmula f;

Por exemplo, se f = (p (q p)) e se V(p) = 1 e

V(q) = 0, então o valor-verdade de f pode ser

computado por:

V(1 (0 1)) = V(1 1)) = V(1) = 1

09/10/2014 Prof. Celso A A Kaestner

15

Page 16: Lógica para Computação - DAINFkaestner/Logica/LogicaProposicional.pdf · Lógica para Computação (IF61B) Lógica Proposicional Linguagem informal x linguagem formal; Linguagem

Lógica para Computação (IF61B)

Lógica Proposicional

Os valores-verdade produzidos pelos conectivos podem

ser mais claramente vistos nas tabelas a seguir:

Não:

E:

09/10/2014 Prof. Celso A A Kaestner

16

f f

0 1

1 0

f g f g

0 0 0

0 1 0

1 0 0

1 1 1

Page 17: Lógica para Computação - DAINFkaestner/Logica/LogicaProposicional.pdf · Lógica para Computação (IF61B) Lógica Proposicional Linguagem informal x linguagem formal; Linguagem

Lógica para Computação (IF61B)

Lógica Proposicional

09/10/2014 Prof. Celso A A Kaestner

17

f g f g

0 0 0

0 1 1

1 0 1

1 1 1

f g f g

0 0 1

0 1 1

1 0 0

1 1 1

Ou:

Implica:

Page 18: Lógica para Computação - DAINFkaestner/Logica/LogicaProposicional.pdf · Lógica para Computação (IF61B) Lógica Proposicional Linguagem informal x linguagem formal; Linguagem

Lógica para Computação (IF61B)

Lógica Proposicional

Satisfação e validade:

1. Uma fórmula A é satisfazível se e somente se existe uma interpretação V tal que V (A) = 1;

2. Uma fórmula A é insatisfazível (ou uma contradição) se e somente se para todas as interpretações possíveis V tem-se V(A) = 0;

3. Uma fórmula A é válida (ou uma tautologia) se e somente se para toda interpretação V tem-se V(A) = 1;

4. Uma fórmula A é falsificável se e somente se existe uma valoração V tal que V (A) = 0.

09/10/2014 Prof. Celso A A Kaestner

18

Page 19: Lógica para Computação - DAINFkaestner/Logica/LogicaProposicional.pdf · Lógica para Computação (IF61B) Lógica Proposicional Linguagem informal x linguagem formal; Linguagem

Lógica para Computação (IF61B)

Lógica Proposicional

Algumas consequências:

1. Toda fórmula válida é também satisfazível;

2. Toda fórmula insatisfazível é falsificável;

3. Uma fórmula pode ser satisfazível e falsificável:

neste caso é dita contingente;

4. Uma fórmula não pode ser válida e insatisfazível;

5. Se A é válida, A é insatisfazível e

reciprocamente;

6. Se A é satisfazível, A é falsificável e

reciprocamente.

09/10/2014 Prof. Celso A A Kaestner

19

Page 20: Lógica para Computação - DAINFkaestner/Logica/LogicaProposicional.pdf · Lógica para Computação (IF61B) Lógica Proposicional Linguagem informal x linguagem formal; Linguagem

Lógica para Computação (IF61B)

Lógica Proposicional

Tabelas-verdade:

1. Dada uma fórmula proposicional f, a tabela

apresenta os valores-verdade de f para todas as

interpretações possíveis;

2. Para uma fórmula com n variáveis existem 2n

interpretações possíveis;

3. A ordem de avaliação dos conectivos deve ser

estritamente seguida;

4. As propriedades lógicas da fórmula (validade,

satisfação, etc) são facilmente verificáveis.

09/10/2014 Prof. Celso A A Kaestner

20

Page 21: Lógica para Computação - DAINFkaestner/Logica/LogicaProposicional.pdf · Lógica para Computação (IF61B) Lógica Proposicional Linguagem informal x linguagem formal; Linguagem

Lógica para Computação (IF61B)

Lógica Proposicional

Exemplo de tabela-verdade:

09/10/2014 Prof. Celso A A Kaestner

21

(p (q p))

(1) (4) (1) (3) (2) (1)

0 1 0 1 1 0

0 1 1 1 1 0

1 1 0 1 0 1

1 0 1 0 0 1

Page 23: Lógica para Computação - DAINFkaestner/Logica/LogicaProposicional.pdf · Lógica para Computação (IF61B) Lógica Proposicional Linguagem informal x linguagem formal; Linguagem

Lógica para Computação (IF61B)

Lógica Proposicional

09/10/2014 Prof. Celso A A Kaestner

23

Page 24: Lógica para Computação - DAINFkaestner/Logica/LogicaProposicional.pdf · Lógica para Computação (IF61B) Lógica Proposicional Linguagem informal x linguagem formal; Linguagem

Lógica para Computação (IF61B)

Lógica Proposicional

09/10/2014 Prof. Celso A A Kaestner

24

Page 25: Lógica para Computação - DAINFkaestner/Logica/LogicaProposicional.pdf · Lógica para Computação (IF61B) Lógica Proposicional Linguagem informal x linguagem formal; Linguagem

Lógica para Computação (IF61B)

Lógica Proposicional

09/10/2014 Prof. Celso A A Kaestner

25

f g

0 ...

0 ...

1 1

0 ...

1 1

0 ...

1 1

Page 26: Lógica para Computação - DAINFkaestner/Logica/LogicaProposicional.pdf · Lógica para Computação (IF61B) Lógica Proposicional Linguagem informal x linguagem formal; Linguagem

Lógica para Computação (IF61B)

Lógica Proposicional

09/10/2014 Prof. Celso A A Kaestner

26

Page 27: Lógica para Computação - DAINFkaestner/Logica/LogicaProposicional.pdf · Lógica para Computação (IF61B) Lógica Proposicional Linguagem informal x linguagem formal; Linguagem

Lógica para Computação (IF61B)

Lógica Proposicional

Algumas equivalências notáveis:

1. p p (dupla negação);

2. p q p q (definição de em função de e );

3. (p q ) ( p q ) e (p q ) ( p q ) (leis de De Morgan);

4. p ( q r ) ( p q ) (p r ) (distributividade de sobre );

5. p ( q r ) ( p q ) (p r ) (distributividade de sobre ).

09/10/2014 Prof. Celso A A Kaestner

27

Page 28: Lógica para Computação - DAINFkaestner/Logica/LogicaProposicional.pdf · Lógica para Computação (IF61B) Lógica Proposicional Linguagem informal x linguagem formal; Linguagem

Lógica para Computação (IF61B)

Lógica Proposicional

Equivalência lógica usando tabelas-verdade: para que se tenha A B os valores-verdade de V(A) e de

V(B) devem ser os mesmos em todas as linhas.

09/10/2014 Prof. Celso A A Kaestner

28

f g

... ...

0 0

1 1

... ...

1 1

0 0

1 1

Page 29: Lógica para Computação - DAINFkaestner/Logica/LogicaProposicional.pdf · Lógica para Computação (IF61B) Lógica Proposicional Linguagem informal x linguagem formal; Linguagem

Lógica para Computação (IF61B)

Lógica Proposicional

Definições dos conectivos em função de e :

1. p q p q ( p q);

2. p q ( p q ).

• É possível se definir todos os conectivos em

função de um só ?

09/10/2014 Prof. Celso A A Kaestner

29

Page 30: Lógica para Computação - DAINFkaestner/Logica/LogicaProposicional.pdf · Lógica para Computação (IF61B) Lógica Proposicional Linguagem informal x linguagem formal; Linguagem

Lógica para Computação (IF61B)

Lógica Proposicional

09/10/2014 Prof. Celso A A Kaestner

30

A B

0 0 1 1

0 1 0 1

1 0 0 1

1 1 0 0

Page 31: Lógica para Computação - DAINFkaestner/Logica/LogicaProposicional.pdf · Lógica para Computação (IF61B) Lógica Proposicional Linguagem informal x linguagem formal; Linguagem

Lógica para Computação (IF61B)

Lógica Proposicional

09/10/2014 Prof. Celso A A Kaestner

31

Page 32: Lógica para Computação - DAINFkaestner/Logica/LogicaProposicional.pdf · Lógica para Computação (IF61B) Lógica Proposicional Linguagem informal x linguagem formal; Linguagem

Lógica para Computação (IF61B)

Lógica Proposicional

Exercícios (página 27 da referência 1);

Desafios da Lógica Proposicional (ver

item 1.6 da referência 1 à página 28).

09/10/2014 Prof. Celso A A Kaestner

32