Você está na página 1de 85

Lógica aplicada à Computação

Engenharia de Software
 Conceito fundamental que diferencia os objetos de seu
significado;

 Ex.: a fórmula (P ^ Q), dependendo dos significados de P


e Q, pode ser verdadeira ou falsa, tendo diferentes
significados semânticos.
 Considerando que P representa
“Está chovendo”
 e Q representa
“A rua está molhada”

 Para que a fórmula (P ^ Q) seja verdadeira, os


significados de P e Q devem ser verdadeiros.
 Notação da interpretação da fórmula (P ^ Q):

 I[P] = T ou I[P] = F
 I[Q] = T ou I[Q] = F
 I[P ^ Q] = T ou I[P ^ Q] = F
 Definição de função binária:
◦ Uma função é binária se seu contradomínio possui apenas dois
elementos.
 Definição de interpretação:
◦ Uma interpretação I, na Lógica Proposicional, é uma função
binária tal que,
◦ o domínio de I é constituído pelo conjunto das fórmulas da
Lógica Proposicional,
◦ o contradomínio de I é o conjunto {T,F},
◦ o valor da interpretação I, tendo como argumentos os símbolos
de verdade é dado por I[true] = T e I[false] = F,
◦ dado um símbolo proposicional P, então I[P] ∈ {T, F}.
 Definição de interpretação de fórmulas:
◦ Dadas uma fórmula E e uma interpretação I, então o significado de
E, indicado por I[E], é determinado pelas regras:
 Se E = P, em que P é um símbolo proposicional, então I[E] = I[P] e I[P] ∈
{T, F}.
 Se E = true, então I[E] = I[true] = T. Se E = false, então I[E] = I[false] = F.
 Seja H uma fórmula. Se E = ¬H, então
I[E] = I[¬H] = T se I[H] = F e
I[E] = I[¬H] = F se I[H] = T
 Sejam H e G duas fórmulas. Se E = (H ˅ G), então
I[E] = I[H ˅ G] = T se I[H] = T e/ou I[G] = T e
I[E] = I[H ˅ G] = F se I[H] = F e I[G] = F
 Definição de interpretação de fórmulas:
◦ Dadas uma fórmula E e uma interpretação I, então o significado de
E, indicado por I[E], é determinado pelas regras:
 Sejam H e G duas fórmulas. Se E = (H ^ G), então
I[E] = I[H ^ G] = T se I[H] = T e I[G] = T e
I[E] = I[H ^ G] = F se I[H] = F e/ou I[G] = F
 Sejam H e G duas fórmulas. Se E = (H → G), então
I[E] = I[H → G] = T se I[H] = F e/ou I[G] = T e
I[E] = I[H → G] = F se I[H] = T e I[G] = F
 Sejam H e G duas fórmulas. Se E = (H ↔ G), então
I[E] = I[H ↔ G] = T se I[H] = I[G] e
I[E] = I[H ↔ G] = F se I[H] ≠ I[G]
 Tabela verdade associada a conectivos
H G ¬H H˅G H^G H→G H↔G
T T F T T T T
T F F T F F F
F T T T F T F
F F T F F T T
 Análise de propriedades semânticas que relacionam os
resultados das interpretações das fórmulas;
 São relações obtidas no mundo semânticos, mas a partir
de fórmulas que pertencem ao mundo sintático;
 O estudo das relações entre propriedades semânticas e
sintáticas, também denominada teoria dos modelos, é
um dos enfoques centrais da Lógica;
 Razão da aplicação da lógica à Ciência da Computação.
 Definição de propriedades semânticas básicas:
◦ Uma fórmula H é uma tautologia ou é válida se e somente se
para toda interpretação I,
I[H] = T.
◦ Uma fórmula H é factível ou satisfatível se e somente se existe
pelo menos uma interpretação I, tal que
I[H] = T.
◦ Uma fórmula H é contraditória se e somente se para toda
interpretação I,
I[H] = F.
 Definição de propriedades semânticas básicas:
◦ Dadas duas fórmulas H e G, H implica G se e somente se para
toda interpretação I,
Se I[H] = T então I[G] = T.

◦ Dadas duas fórmulas H e G, H equivale a G se e somente se para


toda interpretação I,
I[H] = I[G].
 Definição de propriedades semânticas básicas:
◦ Dada uma fórmula H e uma interpretação I, então I satisfaz H se
I[H] = T.

◦ Um conjunto de fórmulas β = {H1,H2,...,HN} é satisfatível se e somente se


existe uma interpretação I, tal que
I[H1] = I[H2] = ... = I[Hn] = T.
◦ Neste caso, I satisfaz o conjunto de fórmulas, o que é indicado
por I[β] = T. Dado um conjunto de fórmulas vazio, então toda
interpretação I satisfaz este conjunto.
 Exemplos:
{¬(p ^ ¬p)} (Princípio da não contradição) é uma
tautologia

{p ˅ ¬p} (Princípio do terceiro excluído) é tautológica

{p ˅ ¬(p ^ q)} é uma tautologia


 Exemplos:
 p ^ q → (p ↔ q)
 p ˅ (q ^ ¬q) ↔ p
 p ^ r → ¬q ˅ r
 ((p → q) → r) → (p → (q → r))

 Princípio de substituição para as Tautologias


 “Princípio de substituição”;

 p ^ ¬p
 p ↔ ¬p
 (p ^ q) ^ ¬(p ˅ q)
 ¬p ^ (p ^ ¬q)
 Fórmula factível ou satisfatível;

 p → ¬p
 p˅q→p
 “x = 3 ^ (x ≠ y → x ≠ 3)”
 A definição dos significados dos conectivos ¬, ˅, ^ e ↔
está associada aos significados de : “não”, “ou”, “e” e “se e somente
se”, respectivamente, entretanto, o mesmo não acontece com
conectivo →
H G H→G
T T T
T F F
F T T
F F T
 P → (P ˅ Q)
◦ Diz-se que P implica (P ou Q). Qualquer argumento deve implicar em si
mesmo (propriedade reflexiva), então a fórmula deve ser verdadeira
independentemente dos significados de P e Q.

P Q P˅Q P → (P ˅ Q)
T
T
T
T
 P → (P ˅ Q)
◦ Diz-se que P implica (P ou Q). Qualquer argumento deve implicar em si
mesmo (propriedade reflexiva), então a fórmula deve ser verdadeira
independentemente dos significados de P e Q.

P Q P˅Q P → (P ˅ Q)
T T T T
T F T T
F T T T
F F F T
 P = “x é um número real maior que 10”
 Q = “x2 é um número real maior que 100”

P Q P→Q

T T T

T F F

F T T

F F T
 Causalidade e semântica do conectivo → se I[G] = T,
então I[H → G] = T independente do valor de I[H]. Da
mesma forma, se I[H] = F, então I[H → G] = T
independente do valor de I[G]. Logo, não é necessária a
relação de causa e efeito entre H e G para que se tenha
I[H → G] = T . P Q P→Q
T T T
T F F
F T T
F F T
 (Após a morte) Após a morte, o espírito de um homem
foi conduzido às portarias do céu e do inferno. Nesse
local, havia duas portas exatamente iguais. Uma para o
céu e outra para o inferno. Havia também dois porteiros,
um perfeitamente honesto e outro completamente
mentiroso. Os porteiros se conheciam, isto é, o
mentiroso sabia que o outro era honesto e vice-versa.
Entretanto, o espírito do homem que morreu não os
conhecia. Como que o espírito descobriu a porta do céu
fazendo uma única pergunta para um dos porteiros?
 H implica G quando para toda interpretação I,
se I[H] = T então I[G] = T.
 Contudo, a definição não diz que para toda
interpretação I
I[H] = I[G] ou que I[H] =T E I[G] = T.
 Portanto, caso exista uma interpretação J tal que J[H] =
F, então nada pode ser dito sobre J[G]. Neste caso é
possível ter J[G] = T ou J[G] = F.
 Considere:
E = ((P ^ Q) ˅ Q), H = (P ^ Q) e G = (P → Q)

 A tabela verdade correspondente:


P Q E H G
T T T T T
T F F F F
F T T F T
F F F F T
 As fórmulas:
H = (P ^ Q) e G = P
 são tais que H implica G.
 Considerando uma interpretação I tal que I[H] = T, logo I[G] será
igual a T:
I[H] = T  I[P ^ Q] = T
= I[P] = T e I[Q] = T
I[P] = T
 se I[H] = T então I[P] = T ou seja I[G] = T.
 As fórmulas
H = (¬P ^ ¬Q) e G = ¬(P ˅ Q)
 são equivalentes.

 Esta equivalência estabelece um importante resultado


denominado Lei de De Morgan.
 Dada uma interpretação I,
I[H] = T  I [¬P ^ ¬Q] = T
 I[¬P] = T e I[¬Q] = T
 I[P] = F e I[Q] = F
 I[P ˅ Q] = F
 I[¬(P ˅ Q)] = T
 I[G] = T
Logo,
I[H] = T  I[G] = T
 Por outro lado,
I[H] = F  I [¬P ^ ¬Q] = F
 I[¬P] = F e/ou I[¬Q] = F
 I[P] = T e/ou I[Q] = T
 I[P ˅ Q] = T
 I[¬(P ˅ Q)] = F
 I[G] = F
Logo,
I[H] = F  I[G] = F
 As propriedades semânticas das fórmulas estão
relacionadas entre si;

 Por exemplo, a tautologia é o oposto da contradição.


 Proposição Validade e Contradição:
◦ dada uma fórmula H, tem-se que:

H é válida  para toda interpretação I, I[H] = T


 para toda interpretação I, I[¬H] = F
 ¬H é contraditória.

◦ Portanto,
H é válida  ¬H é contraditória.
 Proposição Validade e Factibilidade:
◦ dada uma fórmula H, tem-se que:

H é tautologia  para toda interpretação I, I[H] = T


⇒ existe interpretação I; I[H] = T
◦ A afirmação “H é tautologia” equivale a “para toda interpretação
I, tal que I[H] = T”. Entretanto, a última afirmação implica que
“existe interpretação I; I[H] = T”. Por isso,
H é tautologia ⇒ H é satisfatível.
Mas não tem-se que: H é tautologia  H é satifatível.
 Proposição Validade e Contradição:
◦ dada uma fórmula H, então:
a) H é tautologia  ¬H é contraditória
b) ¬H não é satisfatível  ¬H é contraditória

a) H é tautologia  ¬H é contraditória
b) H é tautologia ⇒ H é satisfatível logo,
H é tautologia  ¬H não é satisfatível
◦ A partir das equivalências, pode-se concluir
¬H não é satisfatível  ¬H é contraditória.
 Proposição Implicação e o Conectivo →:
◦ dada duas fórmulas H e G, tem-se que:
H implica G  para toda interpretação I, se I[H] = T, então I[G] = T
 para toda interpretação I, I[H→G] = T
 (H → G) é tautologia.

◦ Portanto,
H implica G  (H→G) é tautologia.
 Proposição Equivalência e o Conectivo ↔:
◦ dada duas fórmulas H e G, tem-se que:
H equivale a G para toda interpretação I, I[H] = I[G]
 para toda interpretação I, I[H↔G] = T
 (H ↔ G) é tautologia.

◦ Portanto,
H equivale a G  (H↔G) é tautologia.
 Proposição Equivalência e Implicação:
◦ dada duas fórmulas H e G, considere que H equivale a G:
H equivale a G  para toda interpretação I, I[H] = I[G]
 para toda interpretação I, se I[H] = T, então I[G]
= T e se I[G] = T, então I[H] = T ,
 H implica G e G implica H.

◦ Portanto,
H equivale a G  H implica G e G implica H.
 Proposição transitividade da equivalência:
◦ Dadas as fórmulas E, H e G, considere:
E equivale a H  (E ↔ H) é tautologia
H equivale a G  (H ↔ G) é tautologia.
então para toda interpretação I, I[E] = I[H] e I[H] = I[G].
◦ Logo, para toda interpretação I, I[E] = I[G].
◦ Logo, (E ↔ G) é tautologia.

◦ Portanto,
Se E equivale a H e H equivale a G então E equivale a G.
 Proposição satisfatibilidade e factibilidade:
◦ Seja {H1,H2,...,HN} um conjunto de fórmulas:
{H1,H2,...,HN} é satisfatível 
 existe interpretação I; I[H1]=I[H2]=...=I[HN] = T
 existe interpretação I; I[H1 ^ H2]=T, I[H3]=T, ... = I[HN] = T
seguindo este raciocínio,
 existe interpretação I; I[[H1 ^ H2 ^ ... ^ HN] = T
 (H1 ^ H2 ... ^ HN) é satisfatível.
◦ Portanto,
{H1,H2,...,HN} é satisfatível  (H1 ^ H2 ... ^ HN) é satisfatível.
 Objetivo de demonstrar que na lógica, e na Matemática
em geral, nem tudo que parece ser verdadeiro é de fato
verdadeiro.

 Atente-se para as técnicas de demonstração.


◦ Dadas duas fórmulas H e G, tem-se que:
H equivale a G  (H ↔ G) é tautologia.

◦ Sejam H e G duas fórmulas, então:


H equivale a G  {H é tautologia  G é tautologia}.

◦ Uma conjectura é asserção sobre a validade de uma afirmação.


◦ A conjectura acima parece válida, mas não é.
◦ A conjectura é uma bi-implicação que pode ser dividida nas
duas implicações:
H equivale a G ⇒ {H é tautologia  G é tautologia}.
{H é tautologia  G é tautologia} ⇒ H equivale a G.

◦ Contudo, a segunda implicação não é válida.


◦ Boa estratégia para demonstrar falsidade de uma afirmação.

◦ Sejam H e G duas fórmulas, suponha que:

H = P e G = Q.

◦ Observe que H e G não são equivalentes.


◦ Logo, o consequente da implicação é falso.
◦ Sendo H e G, fórmulas válidas, então o antecedente da
implicação anterior é verdadeiro.

◦ No antecedente da implicação
{H é tautologia  G é tautologia}
◦ A afirmação é verdadeira pois expressa equivalência das
afirmações
Falso  falso
É verdadeiro
◦ Então, para as fórmulas H = P e G = Q, o antecedente da
implicação é verdadeiro.
◦ A implicação

{H é tautologia  G é tautologia} ⇒ H equivale a G

◦ É uma implicação do tipo

Verdadeiro ⇒ falso,

◦ Sendo então uma implicação falsa.


◦ Sejam H e G, duas fórmulas:

H equivale a G ⇒ {H é tautologia  G é tautologia}.

◦ Considerando duas outras proposições:


prop3 ⇒ prop2 e
prop2 ⇒prop1.

◦ Obtém-se a sequência:
prop3,
prop3 ⇒ prop2,
prop2 ⇒prop1.
◦ Sejam H e G, duas fórmulas:

H implica G ⇒ {H é tautologia ⇒ G é tautologia}.

G implica H ⇒ {G é tautologia ⇒ H é tautologia}.

H implica G ⇒ {H é tautologia  G é tautologia}

◦ Portanto,
prop2 ⇒prop1.
◦ Dadas três fórmulas A, B e C, então

(A → (B → C)) equivale a ((A ^ B) → C).

◦ Demonstração – imediata através da tabela-verdade das


fórmulas (A → (B → C)) e ((A ^ B) → C) em que as colunas de
resultado coincidem.

◦ Porque fazer essa demonstração?


◦ (A → (B → C)) corresponde a implicação da proposição 2:
H implica G ⇒ {H é tautologia ⇒ G é tautologia}.

◦ Que é equivalente a ((A ^ B) → C).

◦ Portanto, a implicação anterior é equivalente a


{{H implica G} e {H é tautologia}} ⇒ {G é tautologia}.

◦ Logo, basta demonstrar a última implicação, que é indicada por


prop3 ⇒ prop2.
◦ Sejam H e G duas fórmulas, então
{{H implica G} e {H é tautologia}} ⇒ {G é tautologia}.

◦ Supondo que {H implica G} e {H é tautologia}, é necessário


demonstrar que {G é tautologia}, Mas...

◦ G é tautologia  para toda interpretação I, I[G] = T.


◦ Seja então I uma interpretação qualquer. Como H é tautologia,
então, pela definição de tautologia, I[H] = T.

◦ Por outro lado, como H implica G, então, pela definição de


implicação, I[G] = T.

◦ Portanto, para toda interpretação I, I[G] = T, isto é:


G é tautologia.
◦ Observe que
prop3 ⇒ prop2 e
prop2 ⇒ prop1.

◦ Como a proposição 3 foi demonstrada, a validade da proposição


1 é obtida.

◦ A implicação presente na conjectura é o resultado indicado em


prop1.
 É o método da força bruta;

 Nesse método são consideradas todas as possibilidades


de valores de verdade associados aos símbolos
proposicionais;

 Dada uma fórmula H, suponha P1, P2, ..., Pn, seus


símbolos proposicionais.
 A tabela-verdade é preenchida com todas as possíveis
combinações de valores verdade dos símbolos
proposicionais.

 Se H possui n símbolos proposicionais, ocorrem 2n


possibilidades.

 Por isso, o método não é indicado para fórmulas com


muitos símbolos proposicionais.
¬(P ^ Q) ↔ (¬P ˅ ¬Q)

 Define uma regra para distribuição do conectivo ¬ em


uma conjunção.
P Q ¬(P ^ Q) (¬P) ˅ (¬Q) ¬(P ^ Q) ↔ (¬P ˅ ¬Q)

T T F F T

T F T T T

F T T T T

F F T T T
G = ¬(P ˅ Q) ↔ (¬P ^ ¬Q)

 Define uma regra para distribuição do conectivo ¬ em


uma disjunção.
P Q ¬(P ˅ Q) (¬P) ^ (¬Q) ¬(P ˅ Q) ↔ (¬P ^ ¬Q)

T T F F T

T F F F T

F T F F T

F F T T T
 O método da tabela-verdade é mais adequado a
fórmulas que contêm um pequeno número de símbolos
proposicionais;

 Em fórmulas com muitos símbolos a tabela pode conter


tantas linhas que dificulta elaborá-la manualmente, por
exemplo:
 Uma fórmula com oito símbolos proposicionais, a
tabela-verdade terá 256 linhas.
 Esse método determina propriedades semânticas de uma
fórmula a partir da estrutura de dados denominada
árvore;

 Uma árvore é um conjunto de nós ou vértices ligados


por arestas;
 Os nós são rotulados por números inteiros.
 Os nós finais 2, 6, 7 e 5 são as folhas;
 O nó 1 é a raiz da árvore.

◦ esse método também é utilizado em Lógicas não clássicas, como


a Lógica Modal, para determinar se uma fórmula é tautologia.
H = (P → Q) ↔ ((¬Q) → (¬P))

◦ nó 2 = (P → Q) ↔ ((¬Q) → (¬P))
T T
H = (P → Q) ↔ ((¬Q) → (¬P))

◦ nó 2 = (P → Q) ↔ ((¬Q) → (¬P))
T FT
◦ nó 3 = (P → Q) ↔ ((¬Q) → (¬P))
F T T T TF
H = (P → Q) ↔ ((¬Q) → (¬P))

◦ nó 4 = (P → Q) ↔ ((¬Q) → (¬P))
T T T T FT T F T
H = (P → Q) ↔ ((¬Q) → (¬P))

◦ nó 5 = (P → Q) ↔ ((¬Q) → (¬P))
T F F T TF F F T
 A Lei da Contraposição tem consequências importantes
em métodos de demonstração.
 Temos que,
(P → Q)  (¬Q → ¬P)

 Pelo teorema da dedução


P ╞ Q, se, e somente se, ¬Q ╞ ¬P
H = (P → Q) ↔(¬Q ^ ¬P)
 É um método geral de demonstração;
 É considerado inicialmente a negação daquilo que se
pretende demonstrar;

 Assim, dada uma fórmula H, se o objetivo é demonstrar


a validade da fórmula, supõe-se que H não é tautologia.
 A partir dessa suposição, é utilizado um conjunto de
deduções para concluir um fato contraditório ou
absurdo.

 Desta forma, como se obtém um absurdo, a conclusão é


que a suposição inicial é falsa.

 Portanto, a conclusão final é que H é tautologia.

 Esse método também é denominado refutação.


H = (P → Q) ^ (Q → R) → (P → R)

 A transitividade diz que se (P → Q) e (Q → R) são


fórmulas verdadeiras, então (P → R) também é uma
fórmula verdadeira.

 Suponha, por absurdo, que H não é tautologia. Nesse


caso, existe interpretação I tal que I[H] = F.
H = (P → Q) ^ (Q → R) → (P → R)

◦ Como I[H] = F, então


I[(P→Q)^(Q→R)] = T e I[P→R] = F.
H = (P → Q) ^ (Q → R) → (P → R)

◦ Já é possuir concluir que I[P] =T e I[R] = F


◦ Há duas subfórmulas:

◦ A partir de (P → Q), o resultado I[Q] = T.


◦ Entretanto, a partir de (Q → R) é obtido outro resultado I[Q] = F
◦ O método da negação ou absurdo se aplica nos casos em que se
tem a negação do conectivo →;

◦ Neste caso, supondo a falsidade da fórmula, obtém uma única


possibilidade para os significados do antecedente e do
consequente;

◦ Geralmente, a existência de uma única possibilidade para os


significados simplifica a demonstração.
◦ Nos casos em que o absurdo procurado não é obtido, nada se
pode concluir sobre a veracidade da asserção inicial.

◦ Procura-se provar que a fórmula é uma tautologia: H = (P→Q) ↔


(¬P → ¬Q):
◦ H = (P→Q) ↔ (¬P → ¬Q)

◦ Possibilidade 1:
◦ H = (P→Q) ↔ (¬P → ¬Q)

◦ Possibilidade 2:

Você também pode gostar