Você está na página 1de 13

Álgebra de Boole

João Paulo Cerquinho Cajueiro


19 de agosto de 2009

A álgebra de Boole foi desenvolvida por George Boole(1815–1864) em seu


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
conhecida apenas por matemáticos, sem encontrar uma utilidade prática. Foi,
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.

1 Postulados
Pensando em probabilidade, a idéia básica da álgebra booleana é de utilizar
conceitos de álgebra para expressar questões de probabilidade ou de lógica.
Neste sentido o número 1 expressa o conceito lógico de verdadeiro ou o conceito
probabilı́stico (ou melhor, de teoria de conjuntos) de todo o espaço amostral,
o 0 é o equivalente lógico de falso ou de conjunto nulo, a soma + equivale
ao ou lógico e a união (∪) de conjuntos e a multiplicação equivale a operação
lógica e e a intersecção (∩) de conjuntos. Os potulados são feitos de modo a
garantir esta equivalência.
Postulado 1 – Operações:
A álgebra de Boole tem um conjunto K de 2 ou mais valores e duas operações:
· 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
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:


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ı́sticas da álgebra de Boole não aparecem diretamente nos pos-
tulados, mas podem ser inferidas a partir deles. Muitas destas caracterı́sticas
serão úteis para nós, e abaixo descrevemos 10 teoremas, provados a partir dos
postulados (ou de teoremas já provados, o que dá no mesmo).
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
usando o teorema 1 como exemplo.
Teorema 1:
A soma ou o produto de um valor por ele mesmo é igual a ele mesmo.

(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


de soma por multiplicação e vice-versa e os 0’s por 1’s e vice-versa. Isto não é
uma coincidência, mas vem diretamente do fato de que os postulados tem esta
simetria. Em álgebra de Boole isto é chamado de dualidade. Diz-se então que
uma expressão é o dual da outra quando se trocam os · por + e vice-versa e os
0’s por 1’s e vice-versa.
Além disso, a simetria dos postulados garante que: se uma expressão f é
verdadeira, logo a expressão dual fd também é verdadeira. Por conta disto, para
todos os teoremas subsequentes que tenham expressões duais, só provaremaos
uma delas, já que o dual do teorema é automaticamente verdadeiro.

2
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 ,


mostrando a e a · b (lembrando que a multiplicação equivale à intersecção e a
soma à união). A figura 1 mostra justamente isto.
Teorema 5:

(a) a + a·b = a + b
(T5)
(b) a · (a + b) = a · b

3
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

possibilidades: a · b, a · b, a · b e a · b.

4
a·b a·b

Figura 3: Diagrama de Venn demonstrando o teorema T6.

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
a+b a·b

a·b a+b

Figura 5: Diagrama de Venn mostrando que a)a · b é o complemento de a + b e


que b)a + b é o complemento de a · b para provar as Leis de deMorgan (T8).

Prova: (a + b)a · b = a · a · b + b · a · b
Prova-se mostrando que a · b é o complemento de a+b:
=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

É possı́vel ainda aplicar o teorema repetidas vezes e provar que:

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
a·c

a·b

Figura 6: Diagrama de Venn demonstrando o teorema do consenso.

Teorema 10 – Expansão de Shannon3 :

(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ção e aplicar estas igualdades:

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


Podemos aplicar os postulados e teoremas da álgebra de Boole para simplificar
equações booleanas. Como estas equações serão ou são implementadas por um
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
desenvolvidos para facilitar o acesso.
Exemplo 1:
Minimize o circuito lógico mostrado na figura 7.

7
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.

b
z

Figura 7: Circuito do exemplo 1.

Resolução:
Pela análise do circuito obtemos z = abc+ac · ab. Aplicamos agora os postulados

8
e teoremas cabı́veis:

z(a, b, c) = abc + ac · |{z}


ab
T8

= abc + ac · (a + b)
| {z }
T3
= abc + ac(a + b)
| {z }
P5
= abc + |{z}
aca + |{z}
acb
P3 P3
aa · c + abc
= abc + |{z}
T1
= abc + ac + abc
| {z }
P3
= abc + abc +ac
| {z }
T6
= ab + ac
| {z }
P5
z(a, b, c) = a(b + c)

O circuito simplificado é mostrado na figura 8.


a

b z

Figura 8: Circuito simplificado do exemplo 1.

4 Formas canônicas
Há casos em que é necessário obter uma equação booleana a partir de uma ta-
bela verdade. Nestas situações são bastante úteis as formas canônicas (também
conhecidas de formas padrões) de soma de mintermos ou produto de maxtermos.
Obviamente para entendê-las precisamos primeiro saber o que são mintermos e
maxtermos. Vamos começar pela definição de mintermos e analisar a forma de
soma de mintermos.

Um mintermo é um produto não barrado de todas as variáveis da


função, sejam elas barradas ou não.

Considerando uma função de 4 variáveis, são exemplos de mintermos: abcd,


abcd e abcd.

9
Não são mintermos abc (pois não tem todas as variáveis), ab + cd (pois não é
um produto das 4 variáveis), ab(cd) (pois as variáveis tem que ser barradas uma
a uma) e nem abcdd (pois a variável d está repetida).
Um exemplo de função descrita na forma soma de mintermos (por sim-
plicidade referido por sdm- soma de mintermos) é a função de 3 variáveis
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
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.

Um mintermo, sendo um produto de todas as variáveis presentes, só pode


ser 1 em um único caso, o que é exemplificado na tabela. Além disso mintermos
diferentes representam um 1 em posições diferentes da tabela verdade, logo a
soma de mintermos indica qual das posições da tabela-verdade é 1. Com base
nisto, é possı́vel descrever qualquer função lógica no formato sdm.
Fica então fácil obter uma tabela verdade a partir de uma equação na forma
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
etrada for abc = 111; abc será 1 quando abc = 011 e assim por diante. Ou seja,
para uma variável não barrada num mintermo corresponde aquela variável ser
1 na tabela verdade e uma variável barrada corresponde a um 0.
A tabela 4 apresenta todos os mintermos de uma função de 4 variáveis junto
com a respectiva entrada que faz ele ser 1. Obviamente, com 2 variáveis temos
4 mintermos possı́veis (ab, ab, ab e ab), com 3 variáveis temos 8 mintermos
possı́veis, com 4 temos 16 e assim por diante.
É bastante usual se trabalhar com equações na forma sdm. Uma das ra-
zões para isso é que uma sdm é uma soma de produtos, obviamente, e estamos
acostumados a trabalhar com equações na forma de soma de produtos devido
às propriedades da álgebra convencional. Mas a álgebra de Boole abre a opor-
tunidade de trabalharmos com uma equação na forma produto de somas, o que
leva a uma forma padrão alternativa: a forma padrão produto de maxtermos
(ou pdm).

Um maxtermo é uma soma não barrada de todas as variáveis da


função, sejam elas barradas ou não.

Considerando uma função de 4 variáveis, são exemplos de maxtermos: 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

10
não é um produto das 4 variáveis), a + b + (c + d) (pois as variáveis tem que ser
barradas uma a uma) e nem a + b + c + d + d (pois a variável d está repetida).
Da mesma forma que fizemos com mintermos, vamos analisar a função exem-
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
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


seus maxtermos.

Observa-se analisando a tabela que cada maxtermo só é 0 para um único


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
b = 1 ou que c = 0 (pois c está barrado), logo ele só é 0 quando a = b = 0
e c = 1. Isto quer dizer que, enquanto cada mintermo representava uma linha
da tabela verdade com saı́da 1, cada maxtermo representa uma linha na tabela
verdade com saı́da 0.
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
então fácil descrever qualquer função como sdm ou pdm a partir de uma tabela
verdade. Ou de uma equação em uma das duas forma padrões, obter a tabela
verdade. A tabela 4 mostra também os 16 maxtermos equivalentes a cada
entrada possı́vel com 4 variáveis.
Exemplo 2:
Reanalisando as tabelas 2 e 3, é fácil chegar nas equações das funções g na
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ı́da f caso 2 ou mais de
suas 3 entradas A, B e C forem 1.
Resolução (Usando Mintermos):
O primeiro passo é montar a tabela verdade da função f , vide tabela 5
Analisando a tabela 5, podemos obter a equação de f na forma sdm.

f (A, B, C) = ABC + ABC + ABC + ABC (3)

11
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.

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 .

E então basta aplicar os postulados e teoremas cabı́veis à equação 3 para

12
minimizar a função.

f (A, B, C) = ABC + ABC + ABC + ABC


| {z }
AB (T 6)

= ABC + ABC + AB
| {z }
AC+AB (T 7)

= ABC + AC +AB
| {z }
BC+AC (T 7)

f (A, B, C) = BC + AC + AB (4)

Resolução (Usando maxtermos):


Reanalisando a tabela 5, obtemos a equação de f na forma pdm.

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)


| {z }
A+B (T 6)

= (A + B) (A + B + C)(A + B + C)
| {z }
A+C (T 7)

= (A + B)(A + C) (A + B + C)
| {z }
B+C (T 7)

f (A, B, C) = (A + B)(A + C)(B + C) (6)

É fácil mostrar que a equação 6 é equivalente à 4. Para tanto basta aplicar


repetidas vezes o postulado da distributividade (P5).

13

Você também pode gostar