LNCC UFRJ
O cálculo
proposicional
Prof. Paulo R. G. Bordoni
Slide 2
Slide 2 text
A Pedra de
Roseta
Pinturas em
cavernas
Caracteres
cuneiformes
Falar e escrever, com regras
e significados, é o que
distingue o “bicho homem”
dos demais animais.
Slide 3
Slide 3 text
Então o tempo correu, e
dando um salto gigantesco
no tempo:
Slide 4
Slide 4 text
Trata-se de uma
expressão
LÓGICA!
Slide 5
Slide 5 text
No processador há
uma Unidade de
Aritmética e Lógica
Slide 6
Slide 6 text
Circuitos
LÓGICOS!
Slide 7
Slide 7 text
Em 1857, Boole trouxe
uma ideia nova:
a manipulação algébrica
para proposições
Slide 8
Slide 8 text
Uma Álgebra de Boole é uma estrutura algébrica
constituída por um conjunto A, que possui pelo menos
dois elementos 0 e 1, no qual estão definidas duas
operações binárias + e × e uma operação unária ‘
satisfazendo os 5 pares de propriedades:
+ = +
× = ×
Comutatividade
+ + = + ( + )
Associatividade
( × ) × = × ( × )
Slide 9
Slide 9 text
+ 0 =
× 1 =
Exist. de ele/. neutros
+ ’ = 1
× ’ = 0
Propr. do complemento
Uma Álgebra de Boole é uma
estrutura algébrica ...
x + y × z =
(x + y) × (x + z)
Distributividade
x × y + z =
x × y + (x × z)
Slide 10
Slide 10 text
Várias representações das operações
lógicas básicas:
• Álgebra de Boole
• Circuitos lógicos
• Diagramas de Venn
• Cálculo proposicional
Slide 11
Slide 11 text
Confira que o conjunto das partes,
(), do conjunto
= { 0, 1 }
é uma álgebra de Boole quando
+ é a reunião, × a interseção e
' é o complemento.
Só para começar:
() = {, {0}, {1}, {0,1} }
Slide 12
Slide 12 text
Os diagramas de Venn para
teoria dos conjuntos ...
Slide 13
Slide 13 text
U
Reunião
U
Interseção
U
Complementação
Nunca ninguém ficou
tão conhecido por tão
pouco!
Slide 14
Slide 14 text
Em sua tese de mestrado no
MIT fez o casamento entre
álgebras de Boole e circuitos
elétricos.
Slide 15
Slide 15 text
Um recorte da folha
de rosto da sua tese
de mestrado no MIT
Slide 16
Slide 16 text
Sobre a tese de
mestrado no MIT
Slide 17
Slide 17 text
x x*
0 1
1 0
+ 0 1
0 0 1
1 1 1 ∙ 0 1
0 0 0
1 0 1
A menor Álgebra de Boole
possível é construída com o
conjunto X = { 0, 1 } e as
operações +, ∙ e * definidas
pelas tabelas:
Slide 18
Slide 18 text
Desl.
Ligar/desligar – acender/apagar
Slide 19
Slide 19 text
Um circuito inversor
Desl.
Lig.
Slide 20
Slide 20 text
Desl.
Lig.
Desl.
Lig.
Desl.
Desl.
Circuito em
paralelo
Slide 21
Slide 21 text
Lig.
Lig.
Circuito em
série
Slide 22
Slide 22 text
A∙B
AND
A’
NOT
A+B
OR
As portas lógicas
associadas:
Slide 23
Slide 23 text
Uma das partes da Lógica Matemática é
o Cálculo Proposicional.
Nele lidamos com proposições – mais
precisamente realizaremos operações
entre proposições.
Slide 24
Slide 24 text
No Cálculo Proposicional, a perspectiva
operacional é inter-sentencial.
A outra parte da Lógica Matemática é o
Cálculo de Predicados, onde a perspectiva é
intra-sentencial. Ela envolve as noções de
constante, variável, quantificação, função e
substituição.
Slide 25
Slide 25 text
Σ = {átomos} ∪ { ˄ ,˅ , , } ∪ {( , ) }
Os símbolos usados no Cálculo
Proposicional são os identificadores
das proposições atômicas(átomos)
juntamente com operadores , ˄, ˅ ,
, e delimitadores ( , ).
Slide 26
Slide 26 text
Os átomos são as proposições mais
simples. Como os dígitos na álgebra.
Os parênteses são usados na pontuação.
Os símbolos ˄, ˅, , são
conectivos binários e é um
conectivo unário. Como os
operadores na álgebra.
Slide 27
Slide 27 text
negação
˅ disjunção
˄ conjunção
condicional
bicondicional
O nome de cada um
dos conectivos é:
Slide 28
Slide 28 text
letra_maiúsc
átomo
dígito
Desta forma, todo nome de átomo inicia com
uma letra maiúscula e pode ser seguido por
qualquer número natural.
Portanto são nomes válidos para átomos: A, B,
P, Q, A1, A35, P482, ...
Para escrever
identificadores para um
conjunto enumerável de
átomos, temos a regra:
Slide 29
Slide 29 text
prop ˄
˅
→
↔
prop
( )
¬ prop
( )
átomo
prop
E esta é a regra para
construir proposições.
Ela é recursiva!
Slide 30
Slide 30 text
O conjunto de todas as
proposições é um subconjunto
infinito de σ∗ = σ \.
O conjunto , de todas as proposições, é
o conjunto gerado através das regras
sintáticas estabelecidas nas duas
transparências anteriores
Nada mais é proposição!
Slide 31
Slide 31 text
( ) ã
( ˅ )
( ˄ )
( ) ã
, ,
( )
Se P e Q são proposições
então as proposições a
seguir são lidas como:
Slide 32
Slide 32 text
(( ˄ ))
( ˄ ( ˅ ))
( ˅ )
(( ( )) ( ˅ ))
((( ) ˄ ( )) ( ( ˅ )))
Professor, mostre mais
alguns exemplos de
proposição.
Usando a definição
podemos gerar as
proposições:
Slide 33
Slide 33 text
(( ˄ ))
( ˄ ( ˅ ))
(( ˅ ) )
(( ( )) ( ˅ ))
((( ) ˄ ( )) ( ( ˅ )))
Professor, são
muitos
parênteses!
O conectivo associado ao
par de parênteses mais
externo é dito conectivo
principal.
Slide 34
Slide 34 text
Por simplicidade vamos
omitir os parênteses mais
externos das proposições
Tem toda razão,
Loirinha!
Ah, portanto posso escrever
( ˄ ) no lugar de (( ˄ )).
Slide 35
Slide 35 text
( ( ˅ ) )
˅
( ( ( ) ) ( ˅ ) )
( ) ˅
1º lugar:
2º lugar: ˄
3º lugar: ˅
4º lugar:
5º lugar:
Para simplificar mais
ainda, seguiremos a
regra de precedência:
Legal, então
vale:
Slide 36
Slide 36 text
((( )˄( )) (( ˅ )))
()˄() ˅
((((¬)˄( )) (¬)) ((( ˄ ( )) ))
¬˄( ) ¬ ˄( )
¬ X .... - X
X ˄ Y .... X · Y
X ˅ Y .... X + Y
X Y .... ??
X Y .... X = Y
Slide 37
Slide 37 text
( + ) ∗
∗
z
+
y
x
(˅)˄
˄
R
˅
Q
P
+ ∗
+
x ∗
z
y
˅˄
˅
P ˄
R
Q
Surfista, sua sacada foi ótima!
Lembrei-me das árvores de
avaliação para expressões
algébricas!
Slide 38
Slide 38 text
¬ ˄
˄
Q
¬
P
¬(˄)
¬
˄
Q
P
Ótima lembrança, Loirinha!
Na proposição P ˄ Q o conectivo
está associado a P e não (P ˄ Q).
Veja a diferença:
Slide 39
Slide 39 text
→
R
→
Q
P
( → ) → )
→
P →
R
Q
→ ( → )
A proposição é dúbia as
possíveis formas corretas são
( ) ou ( ) .
Com os diagramas de árvore, fica claro:
Slide 40
Slide 40 text
↔
R
↔
Q
P
( ↔ ) ↔
↔
P ↔
R
Q
↔ ( ↔ )
A proposição também é dúbia.
As possíveis formas corretas são
( ) ou ( )
Os diagramas são semelhantes ao da →
Slide 41
Slide 41 text
¬ ˄ ( ) ¬ ˄ ( )
↔
→
Q
¬
Q
P
→
Q
P
˄
¬
Q
→
→
P
˄
P
Genial Loirinha,
como na álgebra!
Slide 42
Slide 42 text
Bem, até agora tudo isto
não passa de um joguinho
no qual brincamos com
letras e símbolos.
Nada mais!
Slide 43
Slide 43 text
Acabei de lembrar do filme
O significado da vida
de Monty Python.
Tem razão Filósofo.
Na álgebra os números
possuem significado, assim
como as operações!
Slide 44
Slide 44 text
Toda proposição é idêntica a si mesma.
Identidade
Uma proposição não pode ser,
simultaneamente, verdadeira e falsa.
Não
contradição
Toda proposição é verdadeira ou falsa,
inexiste outra possibilidade.
3º excluído
O primeiro passo é
estabelecer três princípios
básicos a respeito de
proposições:
Slide 45
Slide 45 text
P
V F
R
V F
Q
V F
Essas ideias se aplicam às proposições
atômicas: um átomo P é verdadeiro ou
falso e não há uma 3ª possibilidade.
Idem ibidem para outros átomos Q, R,
etc.
Slide 46
Slide 46 text
P ¬ P
V F
F V
Naturalmente, sempre que uma
proposição P é verdadeira, V, sua
negação ¬ P é falsa, F. E vice-versa.
Isto fica claro ao construirmos a
tabelinha:
Slide 47
Slide 47 text
P, Q
V
F
V
F
V
F
V, V
V, F
F, V
F, F
Para 2 átomos teremos
4 possibilidades de
combinar Vs com Fs.
Vejam:
Slide 48
Slide 48 text
V, V, V
V, V, F
V, F, V
V, F, F
P, Q, R
V
F
V
F
V
V
F
F
F
V
F
V
V
F
F, V, V
F, V, F
F, F, V
F, F, F
Para 2 átomos teremos 4
combinações, para 3 teremos 8.
Assim por diante, sempre
dobrando.
Slide 49
Slide 49 text
Numa batalha, o famoso enxadrista salvou
a vida de do imperador. Em agradecimento o Imperador
disse-lhe:
Peça o que quiser – eu te concederei!
Humildemente, o mestre disse:
Quero 1 grão de trigo para a 1ªcasa do meu tabuleiro de
xadrez, 2 grãos para a 2ª, 4 para a 3ª, e assim por
diante.
Professora, conte a lenda
do imperador indiano, do
mestre em xadrez e seu
tabuleiro!
Slide 50
Slide 50 text
O imperador precisou mandar matar o
mestre, porque não pode cumprir sua
promessa...
A quantidade de trigo em todos os
armazéns de seu império, e de todos os
outros do mundo, era insuficiente!
E como termina essa
estória, Mestra?
Slide 51
Slide 51 text
O Monte Everest tem 8.848
metros de altitude e
o Brasil tem uma área total
de 8.514.876 m2.
Fiz um programa para calcular a
quantidade de formas cilíndricas
de base Brasil e altura Everest
necessários para cumprir a
promessa do imperador.
Slide 52
Slide 52 text
Meu
programa:
Slide 53
Slide 53 text
Eis o resultado
dele:
Slide 54
Slide 54 text
Essa lenda objetiva apontar que a quantidade de
linhas das tabelas verdade cresce muito depressa.
Observe que para proposições com 20 átomos ela
terá 1 mega de linhas (i. é 1.048.576 linhas)
Assim, proposições com 60 átomos exigiriam
tabelas com 1 hexa linhas.
Em outras palavras, tantas linhas quanto a
quantidade de grãos de trigo necessária para
encher um cilindro de base Brasil e quase 3
vezes a altura do Everest.
Algo impensável!
Slide 55
Slide 55 text
É, mas para as proposições simples
P ˄ Q, P ˅ Q, P → Q, P ↔ Q,
envolvendo apenas dois átomos teremos só
quatro combinações:
V-V, V-F, F-V, F-F,
e eu vou mostrar como a coisa funciona!
Essa argumentação não deixa dúvidas
que é necessária alguma outra técnica,
diferente de tabelas-verdade, para
determinar o valor-lógico de
proposições.
Slide 56
Slide 56 text
P Q P ˄ Q P ˅ Q P → Q P ↔ Q
V V
V F
F V
F F
Assim as tabelas envolvendo dois
átomos, deverão ter 4 linhas.
O passo seguinte é saber quais valores
lógicos resultarão para as proposições
simples construídas.
Slide 57
Slide 57 text
P Q P ˄ Q P ˅ Q P → Q P ↔ Q
V V V V V V
V F F V F F
F V F V V F
F F F F V V
Indo direto ao ponto, os
valores lógicos são os
escritos.
E não se fala mais nisso
Slide 58
Slide 58 text
P Q P ˅ Q → P
V V
V F
F V
F F
P Q
→
P
˅
P ˅ Q → P
V
V
V
F
V
V
F
V
Para as proposições gerais, montamos a
tabela (dita tabela verdade) e
preenchemos as colunas dos átomos.
Depois seguimos a árvore.
Slide 59
Slide 59 text
P Q P ˄ Q ↔ P
V V
V F
F V
F F
P Q
↔
P
˄
P ˄ Q ↔ P
V
F
F
F
V
F
V
V
Outro exemplo:
Slide 60
Slide 60 text
↔ ⇔ ( → ) ˄ ( → )
E esta, junto com uma
das acima, redefinir a
bicondicional.
→ ⇔ ¬( ˄ ¬)
→ ⇔ ¬ ∨
Estas equivalências permitem
redefinir a implicação apenas
com ¬ e ∧ ou com ¬ e ∨.
Slide 61
Slide 61 text
Idem, idem para as
portas lógicas!
É por esse motivo que, nas
linguagens de programação,
bastam os operadores
or, and e not