1. ´
Algebra de Boole
Jo˜o Paulo Cerquinho Cajueiro
a
19 de agosto de 2009
A ´lgebra de Boole foi desenvolvida por George Boole(1815–1864) em seu
a
livro An Investigation of the Laws of Thought on Which are Founded the Mathe-
matical Theories of Logic and Probabilities de 1854. Ela buscava uma base ma-
tem´tica formal para a l´gica e probabilidade e passou um longo tempo sendo
a o
conhecida apenas por matem´ticos, sem encontrar uma utilidade pr´tica. Foi,
a a
de certo modo, descoberta por Claude Shannon(1916–2001), que a utilizou em
sua tese de mestrado A Symbolic Analysis of Relay and Switching Circuits em
1937 para desenvolver circuitos el´tricos que realizassem fun¸˜es l´gicas.
e co o
1 Postulados
Pensando em probabilidade, a id´ia b´sica da ´lgebra booleana ´ de utilizar
e a a e
conceitos de ´lgebra para expressar quest˜es de probabilidade ou de l´gica.
a o o
Neste sentido o n´mero 1 expressa o conceito l´gico de verdadeiro ou o conceito
u o
probabil´ıstico (ou melhor, de teoria de conjuntos) de todo o espa¸o amostral,
c
o 0 ´ o equivalente l´gico de falso ou de conjunto nulo, a soma + equivale
e o
ao ou l´gico e a uni˜o (∪) de conjuntos e a multiplica¸˜o equivale a opera¸˜o
o a ca ca
l´gica e e a intersec¸˜o (∩) de conjuntos. Os potulados s˜o feitos de modo a
o ca a
garantir esta equivalˆncia.
e
Postulado 1 – Opera¸˜es:
co
A algebra de Boole tem um conjunto K de 2 ou mais valores e duas opera¸oes:
´ c˜
· e +, de modo que para todo a, b pertencentes a K:
(a) a·b ∈ K
(P1)
(b) a+b∈K
Postulado 2 – Valores Neutros:
Existem valores 0 e 1 tais que:
(a) a+0=a
(P2)
(b) a·1 = 1
Postulado 3 – comutatividade:
(a) a+b=b+a
(P3)
(b) a·b = b·a
1
2. Postulado 4 – associatividade:
(a) a + (b + c) = (a + b) + c
(P4)
(b) a · (b · c) = (a · b) · c
Postulado 5 – distributividade:
(a) a + (b · c) = (a + b) · (a + c)
(P5)
(b) a · (b + c) = (a · b) + (a · c)
Postulado 6 – existˆncia de complemento:
e
Para todo a ∈ K, existe um e apenas um a ∈ K, chamado o complemento de a,
tal que:
(a) a + a = 1
(P6)
(b) a · a = 0
2 Teoremas
V´rias caracter´
a ısticas da ´lgebra de Boole n˜o aparecem diretamente nos pos-
a a
tulados, mas podem ser inferidas a partir deles. Muitas destas caracter´ısticas
ser˜o uteis para n´s, e abaixo descrevemos 10 teoremas, provados a partir dos
a ´ o
postulados (ou de teoremas j´ provados, o que d´ no mesmo).
a a
Dentre os 10 teoremas mostrados, 9 deles tem 2 formas, aqui chamadas de (a)
e (b), que s˜o as formas duais dos teoremas. A dualidade ser´ melhor discutida
a a
usando o teorema 1 como exemplo.
Teorema 1:
A soma ou o produto de um valor por ele mesmo ´ igual a ele mesmo.
e
(a) a+a=a
(T1)
(b) a·a = a
E a prova deste teorema encontra-se abaixo:
a=a+0 a = a·1
Prova: = a + a·a = a · (a + a)
= (a + a) · (a + a) = (a · a) + (a · a)
= (a + a) · 1 = (a · a) + 0
a=a+a a = a·a
Note que a prova de T1(a) ´ idˆntica a de T1(b), ao se trocar as opera¸˜es
e e co
de soma por multiplica¸˜o e vice-versa e os 0’s por 1’s e vice-versa. Isto n˜o ´
ca a e
uma coincidˆncia, mas vem diretamente do fato de que os postulados tem esta
e
simetria. Em ´lgebra de Boole isto ´ chamado de dualidade. Diz-se ent˜o que
a e a
uma express˜o ´ o dual da outra quando se trocam os · por + e vice-versa e os
a e
0’s por 1’s e vice-versa.
Al´m disso, a simetria dos postulados garante que: se uma express˜o f ´
e a e
verdadeira, logo a express˜o dual fd tamb´m ´ verdadeira. Por conta disto, para
a e e
todos os teoremas subsequentes que tenham express˜es duais, s´ provaremaos
o o
uma delas, j´ que o dual do teorema ´ automaticamente verdadeiro.
a e
2
3. Teorema 2:
(a) a+1=1
(T2)
(b) a·0 = 0
Prova:
a + 1 = a + (a + a)
= (a + a) + a
=a+a
a+1=1
Teorema 3:
a=a (T3)
Prova:
Seja a = b:
b·a = a·b = a·a 0
b+a=a+b=a+a 1
logo:
a b=a
Teorema 4:
(a) a + a·b = a
(T4)
(b) a · (a + b) = a
Prova:
a + a·b = a·1 + a·b
= a(b + b + a · b
= a·b + a·b + a·b
= a·b + a·b
= a·1
a + a·b = a
O significado deste teorema ´ melhor visto atrav´s de um diagrama de Venn1 ,
e e
mostrando a e a · b (lembrando que a multiplica¸˜o equivale ` intersec¸˜o e a
ca a ca
soma ` uni˜o). A figura 1 mostra justamente isto.
a a
Teorema 5:
(a) a + a·b = a + b
(T5)
(b) a · (a + b) = a · b
3
4. a a·b b
Figura 1: Diagrama de Venn demostrando o teorema T4.
a a·b
Figura 2: Diagrama de Venn demonstrando o teorema T5.
Prova:
a + a · b = (a + a · b) + a · b
= a + b(a + a)
= a + b·1
a + a·b = a + b
Teorema 6:
(a) a·b + a·b = a
(T6)
(b) (a + b) · (a + b) = a
Prova:
a · b + a · b = a(b + b)
= a·1
a·b + a·b = a
1 na verdade, este ´ um diagrama de Johnston. Um diagrama de Venn mostraria todas as
e
possibilidades: a · b, a · b, a · b e a · b.
4
5. a·b a·b
Figura 3: Diagrama de Venn demonstrando o teorema T6.
c
a·b·c
a·b
a b
Figura 4: Diagrama de Venn demostrando o teorema T7.
Teorema 7:
(a) a·b + a·b·c = a·b + a·c
(T7)
(b) (a + b) · (a + b + c) = (a + b) · (a + c)
Prova:
a·b + a·b·c = a·b·1 + a·b·c
= a · b · (1 + c) + a · b · c
= a·b·1 + a·b·c + a·b·c
= a · b + a · c(b + b)
a·b + a·b·c = a·b + a·c
Teorema 8 – Leis de DeMorgan2 :
(a) a + b = a·b
(T8)
(b) a·b = a + b
5
6. a+b a·b
a·b a+b
Figura 5: Diagrama de Venn mostrando que a)a · b ´ o complemento de a + b e
e
que b)a + b ´ o complemento de a · b para provar as Leis de deMorgan (T8).
e
Prova: (a + b)a · b = a · a · b + b · a · b
Prova-se mostrando que a · b ´ o complemento de a+b:
e
=0+0
(a + b)a · b = 0
(a + b) + a · b = (a + b + a)(a + b + b)
= (1 + b)(1 + a) Logo:
= 1·1
(a + b) + a · b = 1
a+b a·b
´
E poss´ ainda aplicar o teorema repetidas vezes e provar que:
ıvel
f (x1 , x2 , . . . , xn ) = fd (x1 , x2 , . . . , xn )
Teorema 9 – Teorema do consenso:
(a) a·b + a·c + b·c = a·b + a·c
(T9)
(b) (a + b) · (a + c) · (b + c) = (a + b) · (a + c)
Prova:
a · b + a · c + b · c = (a · b · c + a · b · c) + (a · b · c + a · b · c) + (a · b · c + a · b · c)
= (a · b · c + a · b · c) + a · b · c + (a · b · c + a · b · c) + a · b · c
= a·b·c + a·b·c + a·b·c + a·b·c
= (a · b · c + a · b · c) + (a · b · c + a · b · c)
a·b + a·c + b·c = a·b + a·c
6
7. a·c
a·b
Figura 6: Diagrama de Venn demonstrando o teorema do consenso.
Teorema 10 – Expans˜o de Shannon3 :
a
(a) f (x1 , x2 , . . . , xn ) = x1 · f (1, x2 , . . . , xn ) + x1 · f (0, x2 , . . . , xn )
(b) f (x1 , x2 , . . . , xn ) = [x1 + f (0, x2 , . . . , xn )] · [x1 + f (1, x2 , . . . , xn )]
(T10)
Prova:
Considerando que x1 · x1 = x1 · 1 e que x1 · x1 = x1 · x1 · x1 = x1 · 0, podemos
afirmar que:
x1 · f (x1 , x2 , . . . , xn ) = x1 · f (1, x2 , . . . , xn )
E pelo mesmo racioc´
ınio chegamos a:
x1 · f (x1 , x2 , . . . , xn ) = x1 · f (0, x2 , . . . , xn )
Podemos ent˜o separar a fun¸ao e aplicar estas igualdades:
a c˜
f (. . .) = 1 · f (. . .)
= x1 · f (. . .) + x1 · f (. . .)
f (. . .) = x1 · f (1, x2 , . . . , xn ) + x1 · f (0, x2 , . . . , xn )
3 Aplica¸˜o dos postulados e teoremas
ca
Podemos aplicar os postulados e teoremas da ´lgebra de Boole para simplificar
a
equa¸˜es booleanas. Como estas equa¸˜es ser˜o ou s˜o implementadas por um
co co a a
circuito, isto significa um circuito menor e, consequentemente, mais barato e
mais r´pido. A tabela 1 condensa todas os postulados e teoremas at´ ent˜o
a e a
desenvolvidos para facilitar o acesso.
Exemplo 1:
Minimize o circuito l´gico mostrado na figura 7.
o
7
8. P1 ∀a, b ∈ K : a · b ∈ K ∀a, b ∈ K : a + b ∈ K
P2 a+0=a a·1 = 1
P3 a+b=b+a a·b = b·a
P4 a + (b + c) = (a + b) + c a · (b · c) = (a · b) · c
P5 a + (b · c) = (a + b) · (a + c) a · (b + c) = (a · b) + (a · c)
P6 a+a=1 a·a = 0
T1 a+a=a a·a = a
T2 a+1=1 a·0 = 0
T3 a=a
T4 a + a·b = a a · (a + b) = a
T5 a + a·b = a + b a · (a + b) = a · b
T6 a·b + a·b = a (a + b) · (a + b) = a
T7 a·b + a·b·c = a·b + a·c (a + b) · (a + b + c) = (a + b) · (a + c)
T8 a + b = a·b a·b = a + b
T9 a·b + a·c + b·c = a·b + a·c (a + b) · (a + c) · (b + c) = (a + b) · (a + c)
T10 f (x1 , . . .) = x1 · f (1, . . .) + x1 · f (0, . . .) f (x1 , . . .) = [x1 + f (0, . . .)] · [x1 + f (1, . . .)]
Tabela 1: Resumo dos postulados e Teoremas.
a
b
z
c
Figura 7: Circuito do exemplo 1.
Resolu¸˜o:
ca
Pela an´lise do circuito obtemos z = abc+ac · ab. Aplicamos agora os postulados
a
8
9. e teoremas cab´
ıveis:
z(a, b, c) = abc + ac · ab
T8
= abc + ac · (a + b)
T3
= abc + ac(a + b)
P5
= abc + aca + acb
P3 P3
= abc + aa · c + abc
T1
= abc + ac + abc
P3
= abc + abc +ac
T6
= ab + ac
P5
z(a, b, c) = a(b + c)
O circuito simplificado ´ mostrado na figura 8.
e
a
b z
c
Figura 8: Circuito simplificado do exemplo 1.
4 Formas canˆnicas
o
H´ casos em que ´ necess´rio obter uma equa¸˜o booleana a partir de uma ta-
a e a ca
bela verdade. Nestas situa¸˜es s˜o bastante uteis as formas canˆnicas (tamb´m
co a ´ o e
conhecidas de formas padr˜es) de soma de mintermos ou produto de maxtermos.
o
Obviamente para entendˆ-las precisamos primeiro saber o que s˜o mintermos e
e a
maxtermos. Vamos come¸ar pela defini¸˜o de mintermos e analisar a forma de
c ca
soma de mintermos.
Um mintermo ´ um produto n˜o barrado de todas as vari´veis da
e a a
fun¸˜o, sejam elas barradas ou n˜o.
ca a
Considerando uma fun¸˜o de 4 vari´veis, s˜o exemplos de mintermos: abcd,
ca a a
abcd e abcd.
9
10. N˜o s˜o mintermos abc (pois n˜o tem todas as vari´veis), ab + cd (pois n˜o ´
a a a a a e
um produto das 4 vari´veis), ab(cd) (pois as vari´veis tem que ser barradas uma
a a
a uma) e nem abcdd (pois a vari´vel d est´ repetida).
a a
Um exemplo de fun¸˜o descrita na forma soma de mintermos (por sim-
ca
plicidade referido por sdm- soma de mintermos) ´ a fun¸˜o de 3 vari´veis
e ca a
g = abc + abc + abc. Para entender a utilidade desta forma, observe a ta-
bela 2, que ´ uma tabela verdade da fun¸˜o g e de cada um dos mintermos
e ca
presentes nela.
a b c abc abc abc g
0 0 0 0 0 0 0
0 0 1 0 0 0 0
0 1 0 0 0 0 0
0 1 1 1 0 0 1
1 0 0 0 0 0 0
1 0 1 0 0 0 0
1 1 0 0 1 0 1
1 1 1 0 0 1 1
Tabela 2: tabela verdade da fun¸˜o g = abc + abc + abc e seus mintermos.
ca
Um mintermo, sendo um produto de todas as vari´veis presentes, s´ pode
a o
ser 1 em um unico caso, o que ´ exemplificado na tabela. Al´m disso mintermos
´ e e
diferentes representam um 1 em posi¸˜es diferentes da tabela verdade, logo a
co
soma de mintermos indica qual das posi¸˜es da tabela-verdade ´ 1. Com base
co e
nisto, ´ poss´ descrever qualquer fun¸˜o l´gica no formato sdm.
e ıvel ca o
Fica ent˜o f´cil obter uma tabela verdade a partir de uma equa¸˜o na forma
a a ca
sdm ou vice-versa. Dada uma tabela verdade qualquer, cada linha em que a
fun¸˜o ´ 1 corresponde a um mintermo. O mintermo abc s´ ser´ 1 quando a
ca e o a
etrada for abc = 111; abc ser´ 1 quando abc = 011 e assim por diante. Ou seja,
a
para uma vari´vel n˜o barrada num mintermo corresponde aquela vari´vel ser
a a a
1 na tabela verdade e uma vari´vel barrada corresponde a um 0.
a
A tabela 4 apresenta todos os mintermos de uma fun¸˜o de 4 vari´veis junto
ca a
com a respectiva entrada que faz ele ser 1. Obviamente, com 2 vari´veis temos
a
4 mintermos poss´ ıveis (ab, ab, ab e ab), com 3 vari´veis temos 8 mintermos
a
poss´ıveis, com 4 temos 16 e assim por diante.
´
E bastante usual se trabalhar com equa¸˜es na forma sdm. Uma das ra-
co
z˜es para isso ´ que uma sdm ´ uma soma de produtos, obviamente, e estamos
o e e
acostumados a trabalhar com equa¸˜es na forma de soma de produtos devido
co
`s propriedades da ´lgebra convencional. Mas a ´lgebra de Boole abre a opor-
a a a
tunidade de trabalharmos com uma equa¸˜o na forma produto de somas, o que
ca
leva a uma forma padr˜o alternativa: a forma padr˜o produto de maxtermos
a a
(ou pdm).
Um maxtermo ´ uma soma n˜o barrada de todas as vari´veis da
e a a
fun¸˜o, sejam elas barradas ou n˜o.
ca a
Considerando uma fun¸˜o de 4 vari´veis, s˜o exemplos de maxtermos: a +
ca a a
b + c + d, a + b + c + d e a + b + c + d.
N˜o s˜o maxtermos a + b + c (pois n˜o tem todas as vari´veis), ab + cd (pois
a a a a
10
11. n˜o ´ um produto das 4 vari´veis), a + b + (c + d) (pois as vari´veis tem que ser
a e a a
barradas uma a uma) e nem a + b + c + d + d (pois a vari´vel d est´ repetida).
a a
Da mesma forma que fizemos com mintermos, vamos analisar a fun¸˜o exem- ca
plo g ′ = (a + b + c) · (a + b + c) · (a + b + c) para entender a utilidade da forma
pdm, observe a tabela 3, que ´ uma tabela verdade da fun¸˜o g e de cada um
e ca
dos maxtermos presentes nela.
a b c a+b+c a+b+c a+b+c g′
0 0 0 1 1 0 0
0 0 1 1 0 1 0
0 1 0 1 1 1 1
0 1 1 1 1 1 1
1 0 0 0 1 1 0
1 0 1 1 1 1 1
1 1 0 1 1 1 1
1 1 1 1 1 1 1
Tabela 3: tabela verdade da fun¸˜o g ′ = (a + b + c) · (a + b + c) · (a + b + c) e
ca
seus maxtermos.
Observa-se analisando a tabela que cada maxtermo s´ ´ 0 para um unico
o e ´
vetor de entrada e 1 para qualquer outra entrada. Pegando como exemplo o
maxtermo a + b + c, como se trata de uma soma, ele ´ 1 sempre que a = 1, que
e
b = 1 ou que c = 0 (pois c est´ barrado), logo ele s´ ´ 0 quando a = b = 0
a o e
e c = 1. Isto quer dizer que, enquanto cada mintermo representava uma linha
da tabela verdade com sa´ 1, cada maxtermo representa uma linha na tabela
ıda
verdade com sa´ 0.
ıda
E para unir diferentes maxtermos, faz-se o produto deles, pois assim os 0’s
se somam na f´rmula final. Da´ a forma ser o produto dos maxtermos. Fica
o ı
ent˜o f´cil descrever qualquer fun¸˜o como sdm ou pdm a partir de uma tabela
a a ca
verdade. Ou de uma equa¸˜o em uma das duas forma padr˜es, obter a tabela
ca o
verdade. A tabela 4 mostra tamb´m os 16 maxtermos equivalentes a cada
e
entrada poss´ com 4 vari´veis.
ıvel a
Exemplo 2:
Reanalisando as tabelas 2 e 3, ´ f´cil chegar nas equa¸oes das fun¸oes g na
e a c˜ c˜
forma pdm e g ′ na forma sdm:
g = (a + b + c)(a + b + c)(a + b + c)(a + b + c)(a + b + c) (1)
′
g = abc + abc + abc + abc + abc (2)
Exemplo 3:
Deseja-se implementar um circuito que acione uma sa´ f caso 2 ou mais de
ıda
suas 3 entradas A, B e C forem 1.
Resolu¸˜o (Usando Mintermos):
ca
O primeiro passo ´ montar a tabela verdade da fun¸ao f , vide tabela 5
e c˜
Analisando a tabela 5, podemos obter a equa¸ao de f na forma sdm.
c˜
f (A, B, C) = ABC + ABC + ABC + ABC (3)
11
12. a b c d mintermo maxtermo
0 0 0 0 abcd a+b+c+d
0 0 0 1 abcd a+b+c+d
0 0 1 0 abcd a+b+c+d
0 0 1 1 abcd a+b+c+d
0 1 0 0 abcd a+b+c+d
0 1 0 1 abcd a+b+c+d
0 1 1 0 abcd a+b+c+d
0 1 1 1 abcd a+b+c+d
1 0 0 0 abcd a+b+c+d
1 0 0 1 abcd a+b+c+d
1 0 1 0 abcd a+b+c+d
1 0 1 1 abcd a+b+c+d
1 1 0 0 abcd a+b+c+d
1 1 0 1 abcd a+b+c+d
1 1 1 0 abcd a+b+c+d
1 1 1 1 abcd a+b+c+d
Tabela 4: Mintermos e maxtermos equivalentes a cada um dos poss´
ıveis valores
de entrada de uma fun¸˜o de 4 vari´veis.
ca a
A B C f
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1
Tabela 5: Tabela verdade da fun¸˜o f .
ca
E ent˜o basta aplicar os postulados e teoremas cab´
a ıveis a equa¸ao 3 para
` c˜
12
13. minimizar a fun¸ao.
c˜
f (A, B, C) = ABC + ABC + ABC + ABC
AB (T 6)
= ABC + ABC + AB
AC+AB (T 7)
= ABC + AC +AB
BC+AC (T 7)
f (A, B, C) = BC + AC + AB (4)
Resolu¸˜o (Usando maxtermos):
ca
Reanalisando a tabela 5, obtemos a equa¸ao de f na forma pdm.
c˜
f (A, B, C) = (A + B + C)(A + B + C)(A + B + C)(A + B + C) (5)
E novamente aplicando os postulados e teoremas cab´
ıveis:
f (A, B, C) = (A + B + C)(A + B + C)(A + B + C)(A + B + C)
A+B (T 6)
= (A + B) (A + B + C)(A + B + C)
A+C (T 7)
= (A + B)(A + C) (A + B + C)
B+C (T 7)
f (A, B, C) = (A + B)(A + C)(B + C) (6)
´ a
E f´cil mostrar que a equa¸ao 6 ´ equivalente a 4. Para tanto basta aplicar
c˜ e `
repetidas vezes o postulado da distributividade (P5).
13