Introdução à Álgebra de Boole 1 Introdução Em 1854, George Boole, um matemático inglês, inventou um sistema algébrico de dois valores, cujo resultado da sua evolução até aos dias de hoje se dá o nome de álgebra de Boole ou álgebra booleana, para dar expressão... às leis fundamentais do raciocínio numa linguagem simbólica na área Cálculo matemático. Usando este sistema, qualquer filósofo, matemático ou extraterrestre com boas capacidades de raciocínio lógico 1 poderiam formular proposições verdadeiras ou falsas e combiná-las de modo a criar novas proposições, determinando a veracidade ou falsidade destas últimas através do conhecimento das primeiras. Por exemplo, se chegássemos à conclusão que um aluno que prepara os trabalhos práticos de Tecnologia dos Computadores em casa ou vai às aulas teóricas de Tecnologia dos Computadores e estuda é inteligente e que um aluno que seja inteligente tira sempre boas notas a Tecnologia dos Computadores, poderíamos responder a questões como O que é necessário para tirar boas notas a Tecnologia dos Computadores?. Quase cem anos mais tarde, um investigador dos laboratórios Bell, Claude E. Shannon, mostrou como se podia adaptar a álgebra de Boole para analisar e descrever circuitos digitais (nessa altura um pouco mais primitivos que hoje em dia). Nas tecnologias da actualidade, uma série de realidades físicas complementares 2 voltagem HIGH ou LOW 3, luz acesa ou apagada, circuito fechado ou circuito aberto, fusível intacto ou queimado são representados por uma variável lógica, podendo cada membro de cada par corresponder a um de dois valores nesse par: logicamente falso ou verdadeiro, numericamente 0 ou 1. O texto que se segue serve para fornecer uma referência de estudo para esta álgebra, resumindo as leis que a regem e apresentando uma série de exercícios para treino. 1 Talvez o Mr Spock? 2 Ou seja, mutuamente exclusivas e contrárias entre si. 3 Obviamente, em português ALTA ou BAIXA. 1
2 Os Axiomas Os axiomas (ou postulados) de um sistema matemático são um conjunto mínimo de definições básicas que são assumidas à partida como sendo sempre verdadeiras, e a partir das quais qualquer informação adicional sobre esse sistema pode ser derivada. Os primeiros dois axiomas da álgebra booleana estabelecem a abstracção digital 4, apresentados no conjunto de equações que se seguem: X = 0, se X 1 (1a) X = 1, se X 0 (1b) Note-se que estes axiomas formam um par, e a única diferença entre (1a) e (1b) reside na troca dos valores 0 e 1. O segundo par de axiomas definem o complemento de uma variável lógica: X = 0, se X = 1 (2a) X = 1, se X = 0 (2b) Note-se que, mais uma vez, se verifica a mesma diferença entre o par de postulados. Por fim, temos três pares de axiomas que definem as outras duas operações básicas desta álgebra, a soma lógica, ou porta OU ou porta OR em termos de realização em circuitos digitais, e o produto lógico, ou porta E ou porta AND nos mesmos termos de há pouco (ver figura 1 na página seguinte): 0 0 = 0 (3a) 1 + 1 = 1 (3b) 1 1 = 1 (4a) 0 + 0 = 0 (4b) 4 Esta por sua vez engloba os princípios da não-contradição (um valor lógico de uma afirmação não pode ser simultaneamente 0 e 1) e do 3 o excluído (não é possível qualquer outro valor lógico que não seja 0 ou 1). 2
0 1 = 1 0 = 0 (5a) 1 + 0 = 0 + 1 = 1 (5b) O fenómeno que permite agrupar os axiomas em pares, a que se dá o nome de dualidade, mantém-se: para obter as equações (b) a partir das (a) ou vice-versa, basta trocar os + pelos e complementar os valores e/ou variáveis. A grande vantagem é: com esta regra, a quantidade de estudo reduz-se para metade... Lógico, não é? Figura 1: Símbolos para as três portas lógicas básicas (da esquerda para a direita: porta AND, porta OR, porta NOT). 3 Os Teoremas Os teoremas matemáticos são afirmações que se provam ser sempre verdadeiras, recorrendo-se para o efeito aos axiomas disponíveis. A seguir apresentam-se os teoremas (com os seus duais, exceptuando o teorema (9), cujo dual é redundante) de uma variável: X 1 = X (Elemento neutro) (6a) X + 0 = X (Elemento neutro dual) (6b) X 0 = 0 (Elemento absorvente) (7a) X + 1 = 1 (Elemento absorvente dual) (7b) X X = X (Idempotência) (8a) X + X = X (Idempotência dual) (8b) X = X (Involução) (9) 3
X X = 0 (Complementos) (10a) X + X = 1 (Complementos dual) (10b) A seguir, apresentam-se os teoremas de 2 ou mais variáveis e os seus duais. X Y = Y X (Propr. comutativa) (11a) X + Y = Y + X (Propr. comutativa dual) (11b) (X Y ) Z = X (Y Z) (Propr. associativa) (12a) (X + Y ) + Z = X + (Y + Z) (Propr. associativa dual) (12b) X Y + X Z = X (Y + Z) (Propr. distributiva) (13a) (X + Y ) (X + Z) = X + Y Z (Propr. distributiva dual) (13b) X + X Y = X (Absorção) (14a) X (X + Y ) = X (Absorção dual) (14b) X Y + X Y = X (Adjacência) (15a) (X + Y ) (X + Y ) = X (Adjacência dual) (15b) X + XY = X + Y (Termo menor) (16a) X (X + Y ) = X Y (Factor menor) (16b) X Y + X Z + Y Z = X Y + X Z (Termo incluído) (17a) (X + Y ) (X + Z) (Y + Z) = (X + Y ) (X + Y ) (Factor incluído) (17b) 4
X 1 X 2... X n = X 1 + X 2 +... + X n (Lei de De Morgan) (18a) X 1 + X 2 +... + X n = X 1 X 2... X n (Lei de De Morgan dual) (18b) Esta última lei (equações (18)) é tão importante (veja-se que é uma demonstração explícita da dualidade) que foram criadas duas portas especificamente devido a ela, representadas na figura 2. Figura 2: Símbolos para as portas NAND (respeitante ao primeiro membro da equação (18a)) e NOR (correspondendo ao primeiro membro da equação (18b)). Problemas I 1. Para fazer uma primeira selecção de ingresso de engenheiros numa determinada empresa, é necessário um dos seguintes conjuntos de requisitos: Possuir título académico e dois anos de experiência em actividade similar à pretendida. Possuir cinco anos de experiência e viver na mesma localidade. Ser recomendado pela direcção da empresa. Em todos os casos, será preciso possuir viatura própria. Escreva a expressão lógica que efectue automaticamente a selecção, construindo em seguida o circuito lógica que o implementa na prática (adaptado de [1]). 2. Simplifique a expressão F = (A + B + C) (D + E) + (A + B + C) (D + E). 3. Dada a função F (X, Y, Z) = X Z +Z (X +X Y ), descubra a sua representação mais simplificada. 4. Simplifique a expressão que se segue: A B + A B C + A B C D + A B C D E + A B C D E F 5. Qual a representação mais simplificada da expressão que se segue? A C + A B A + A B C A + B B C + B A 5
6. Qual a representação mais simplificada da expressão seguinte? A A B B A B 7. Como simplificaria de forma máxima a expressão seguinte? A + C + A B (A + C) 4 Funções lógicas Existem 3 maneiras possíveis de representar uma função lógica: 1. Através de uma tabela de verdade. 2. Através de uma soma de MINTERMOS, ou forma canónica de soma de produtos, ou soma canónica. 3. Através de um produto de MAXTERMOS, ou forma canónica de produto de somas, ou produto canónico. Cada uma destas representações fornece exactamente a mesma informação: dada qualquer uma delas, podem-se conseguir as restantes duas através de processos de derivação directos. Para demonstrar claramente esta afirmação veja-se a tabela que se segue, onde está apresentada uma tabela de verdade genérica para três variáveis, com os MINTERMOS e MAXTERMOS correspondentes a cada linha. X Y Z F MINTERMO MAXTERMO 0 0 0 F (0, 0, 0) X Y Z X + Y + Z 0 0 1 F (0, 0, 1) X Y Z X + Y + Z 0 1 0 F (0, 1, 0) X Y Z X + Y + Z 0 1 1 F (0, 1, 1) X Y Z X + Y + Z 1 0 0 F (1, 0, 0) X Y Z X + Y + Z 1 0 1 F (1, 0, 1) X Y Z X + Y + Z 1 1 0 F (1, 1, 0) X Y Z X + Y + Z 1 1 1 F (1, 1, 1) X Y Z X + Y + Z Tabela 1: Tabela de verdade com MINTERMOS e MAXTERMOS. 6
X Y Z F 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 0 Tabela 2: Tabela de verdade para o exercício II-3. Problemas II 1. Mostre como o teorema do elemento neutro pode ajudar a entender o método de construção das formas canónicas de funções lógicas. 2. Que propriedade fundamental da lógica de Boole explica o facto de se poder usar qualquer das formas canónicas para representar a mesma função? 3. Atente a tabela 2: (a) Represente a função na sua forma canónica de soma de produtos. (b) Represente a função na sua forma canónica de produto de MAXTERMOS. (c) Mostre que são equivalentes. (d) Simplifique a soma de MINTERMOS o mais possível. (e) Desenhe o circuito lógico que implementa F. Referências Bibliográficas [1] Padilla, A. J. G. Sistemas Digitais. McGraw-Hill, 1993. [2] Wakerly, J. F. Digital Design Principles and Practices, 2nd ed. Prentice Hall, 1994. 7