Você está na página 1de 36

Lógica Proposicional


Semântica

Tiago Massoni
proposições são julgadas verdadeiras ou
falsas
T ou F
0 ou 1
V ou F
semântica da fórmula
depende das 2 proposições e o conectivo

l∧e
interpretação
j: programa escrito em Java
w: programa só executa em Windows
j∧¬w

uma interpretação
atribuição de valores para proposições
atômicas
Ex: j=T, W=F
Resultado?
Em geral, função definida como uma
tabela

p q p∧ q

interpretação i resultado
se T, i é um MODELO
semântica de p ∧ q
φ ψ φ∧ψ
T T T
T F F
F T F
F F F
ψ φ ∧conectivos
φ outros ψ φ ψ φ∨ψ
1 Propositional logic
T T T T T T
T F φ ψF φ ∧ ψ T φ Fψ φ ∨Tψ
T T T T T T
F T T FF F F T TF TT
F F F TF F F F FT TF
F F F F F F

ψ φφ →ψ ψφ → ψ φ φ¬φ¬φ ⊤
⊤ ⊥

T T TT T T TF F TT F F
F T FF F F FT T
F T T
T T
T F F T F
F T F F T
implicação...confuso?
F F F F F

φ ψ φ→ψ φ ¬φ
T T T T F
T F F F T
F T T
F F T

Figure 1.6. The truth tables for all the logical c


turnsFF iffT both Farguments are F equT
implicação F
arguments F equalsF T) it F
returns T.FT
as intuitive. Think of the meaning
preserved. Clearly, this is not the c
ψ φ →that
φ something ψ is falseφ from ¬φ some
T in Tthe column
T φ → ψ Tequals F F. On
T serves
F truth, F but so do Fthe cases T F→
F toTbe preserved
T in the first place
false.
F F T
If you feel slightly uncomfortab
Figure 1.6. The of →, then
truth tablesit for
mightall be
thegood to thc
logical
formula
Equivalente a ¬φ ∨ ψ as far as meaning i
different syntactically and natural d
sumário
exemplo maior
1800 2000

1700 1900

We are
Here!
Na sua obra "Mathematical Analysis of 
Logic", publicada em 1847, a lógica foi
pela primeira vez de uma forma
consistente tratada como um calculo de
signos algébricos.
Boole
exercício
Allan Quaterman, em uma caverna, encontra
duas arcas, A e B. Cada uma pode ter um
tesouro ou uma armadilha mortal.
Na arca A: “Pelo menos uma destas arcas
contém o tesouro”
Na arca B: “Em A existe uma armadilha”
Allan sabe que ambas são verdadeiras ou
ambas são falsas. Qual arca deve ser aberta
para o tesouro?
exercício
a: arca A contém o tesouro
b: arca B contém o tesouro
Formalizando as escrituras:
a∨b
¬a
Fato: escrituras verdadeiras ou falsas em
conjunto

((a ∨ b)→¬a) ∧ (¬a→(a ∨ b))


exercício
*: conectivo lógico inventado
p*q só é T sss p e q ambas T ou ambas F

1. faça a tabela verdade para p*q


2. faça a tabela verdade para
(p*p)*(q*q)
exemplo de programação
Procedimento merge do algoritmo mergesort

questões sobre esse código


Sob quais condições cada trecho de código é
atingido?
Existe a possibilidade de mais de um trecho ser
atingido?
Existem situações não previstas?
Merge
list merge(l1, l2)
{
if (isEmpty(l1) && isEmpty(l2))
return emptyList

}
Merge
list merge(l1, l2)
{
if (isEmpty(l1) && isEmpty(l2))
return emptyList

else if (isEmpty(l1) && !isEmpty(l2))


return l2

}
Merge
list merge(l1, l2)
{
if (isEmpty(l1) && isEmpty(l2))
return emptyList

else if (isEmpty(l1) && !isEmpty(l2))


return l2

else if (!isEmpty(l1) && isEmpty(l2))


return l1

}
Merge
list merge(l1, l2)
{
if (isEmpty(l1) && isEmpty(l2))
return emptyList

else if (isEmpty(l1) && !isEmpty(l2))


return l2

else if (!isEmpty(l1) && isEmpty(l2))


return l1

else if (!isEmpty(l1) && !isEmpty(l2)) {


if (first(l1) < first(l2))
return mkList(first(l1),merge(resto(l1),l2));
if (first(l1) >= first(l2))
return mkList(first(l2),merge(l1,resto(l2)));
}
}
Proposições sobre merge
A: A lista 1 está vazia
B: A lista 2 está vazia
C: O primeiro elemento da lista 1 é menor que o primeiro
elemento da lista 2
D: O primeiro elemento da lista 2 é menor que o primeiro
elemento da lista 1
E: Nova lista é vazia
G: Nova lista é igual à lista 1
H: Nova lista é igual à lista 2
I: Merge iniciou com primeiro elemento da lista 1
J: Merge iniciou com primeiro elemento da lista 2
Casos
(A ^ B -> E) ∨
(A ^ ¬B -> H) ∨
(¬A ^ B -> G) ∨
(¬A ^ ¬B -> (C -> I) ∨ (D -> J))
Resultados
Para responder às perguntas do aluno, é
necessário saber quais os resultados de
cada fórmula
Atribuir valores verdade
Testar todas as combinações possíveis
Permite saber como o algoritmo se comporta em
todos os casos
Argumento
Se um programa em Java faz uso
da biblioteca Swing e essa
biblioteca não foi importada, então
o programa não é compilado. O
programa em Java foi compilado. O
programa faz uso de Swing.
Portanto a biblioteca foi importada.
Proposições
Se um programa em Java faz uso
da biblioteca Swing e essa
biblioteca não foi importada, então
o programa não é compilado. O
programa em Java foi compilado. O
programa faz uso de Swing.
Portanto a biblioteca foi importada.
Se um programa em Java faz uso da
biblioteca Swing e essa biblioteca não
foi importada, então o programa não
é compilado.
O programa em Java foi compilado.
O programa faz uso de Swing. (premissas)

Portanto a biblioteca foi importada.


(conclusão)
simbolicamente
Se um programa em Java faz uso da
biblioteca Swing e essa biblioteca não
foi importada, então o programa não é
compilado.
O programa em Java foi compilado.
O programa faz uso de Swing. (premissas)

Portanto a biblioteca foi importada. (conclusão)


simbolicamente
swing ∧ ¬import → ¬comp
swing
comp

import
Validade de um argumento
Em um argumento válido
premissas são provas evidentes da verdade
da conclusão

consequência lógica das premissas


premissas não podem ser verdade sem a


conclusão ser verdade também
simbolicamente
swing∧¬import→¬comp, swing, comp ⊧ import
Vinculação semântica
se, para todos os valores nos quais as proposições da
premissa são verdade, a conclusão também é verdade

Se premissas=T, conclusão=T
Vinculação semântica
TABELA VERDADE DEVE MOSTRAR ESTE
RESULTADO!

Se premissas=T, conclusão=T
Exercício

p∧q⊨p

p∨q⊨p

¬q, p ∨ q ⊨ p
validade e
veracidade
Todo programador é nerd.
Nerds odeiam videogames.
Então todo programador
odeia videogame.
Equivalência
Equivalência
φ≡ψ
se, e somente se,
φ ⊧ ψ and ψ ⊧ φ

35
Lógica Proposicional

Semântica

Tiago Massoni