Sie sind auf Seite 1von 28

Captulo 1

lgebras de Boole.
1.1. lgebras de Boole

Comenzamos este curso estudiando una estructura algebraica conocida como lgebra de Boole. El nombre de la estructura se debe al matemtico britnico George Boole que vivi en el siglo XIX y que en su trabajo The Laws of Thought (Las leyes del pensamiento), publicado en 1854, present esta estructura. En este trabajo pone de maniesto la analoga existente entre los smbolos algebraicos y las maneras de representar formas lgicas. Sin embargo, la primera persona que intent combinar las matemticas y la lgica fue Leibniz (el que desarroll las base del clculo diferencial e integral a la par que Newton). l esperaba obtener la verdad o falsedad de cualquier armacin, en cualquier disciplina cientca, mediante operaciones algebraicas. Sin embargo, no obtuvo resultados relevantes. Posteriormente, y antes que Boole, Augustus de Morgan tambin busc una fusin entre el lgebra y la lgica. En el trabajo que hemos mencionado (y cuyo ttulo completo es Una investigacin de las leyes del pensamiento en las que se basan las teoras matemticas de la lgica y las probabilidades), Boole transform la lgica en un tipo de lgebra (lgebra de Boole). Segn el propio autor: El propsito de este tratado es investigar las leyes fundamentales de la mente mediante las que se lleva a cabo el razonamiento, expresarlas en el lenguaje simblico del Clculo y, sobre estos cimientos, establecer la ciencia de la lgica y construir su mtodo... Vamos pues a estudiar brevemente esta estructura.

1.1.1.

Generalidades sobre lgebras de Boole

Denicin 1. Sea B un conjunto. Decimos que B tiene estructura de lgebra de Boole si en B tenemos denidas dos operaciones, y tales que: Para cualesquiera x, y, z B , x (y z ) = (x y ) z ; x (y z ) = (x y ) z (Asociatividad). Para cualesquiera x, y B , x y = y x; x y = y x (Conmutatividad). Para cualesquiera x, y, z B , x (y z ) = (x y ) (x z ); x (y z ) = (x y ) (x z ) (Distributividad). Existen 0, 1 B tales que para cualquier x B , x 0 = x y x 1 = x (Elementos neutros). Para cada x B existe x B tal que x x = 1 y x x = 0 (Complementario). Veamos algunos ejemplos de lgebras de Boole. Ejemplo 1.1.1. 1. Sea X un conjunto. Entonces el conjunto P (X ) tiene estructura de lgebra de Boole. Las operaciones y son en este caso la unin y la interseccin respectivamente. Los elementos 0 y 1 son y X . 1

LGEBRAS DE BOOLE 2. Sea B = {0, 1}. Este conjunto tiene estructura de lgebra de Boole. Las operaciones y vienen descritas en las siguientes tablas: 0 1 mientras que 0 = 1 y 1 = 0. Si X = {a}, compara las lgebras de Boole P (X ) y B. 3. Consideramos ahora el conjunto Bn = {(x1 , x2 , , xn ) : xi B}. Este conjunto tiene tambin estructura de lgebra de Boole. Las operaciones y vienen dadas por: (x1 , x2 , , xn ) (y1 , y2 , , yn ) = (x1 y1 , x2 y2 , , xn yn ) (x1 , x2 , , xn ) (y1 , y2 , , yn ) = (x1 y1 , x2 y2 , , xn yn ) Los elementos cero y uno vinen dados por 0 = (0, 0, , 0) y 1 = (1, 1, , 1), mientras que el complementario por (x1 , x2 , , xn ) = (x1 , x2 , , xn ). Por ejemplo, en B3 se tiene que (0, 1, 0) (1, 1, 0) = (1, 1, 0), (1, 1, 0) (1, 0, 1) = (1, 0, 0), (0, 1, 1) = (1, 0, 0). 4. El conjunto de los divisores de 30, es decir, {1, 2, 3, 5, 6, 10, 15, 30} con las operaciones x y = mcm(x, y ) y x y = mcd(x, y ) es un lgebra de Boole. Los elementos cero y uno son, en este caso, 1 y 30, y el complementario de un elemento x, el nmero 30 x . El conjunto D(20) = {1, 2, 4, 5, 10, 20}, con las operaciones anteriores, no es un lgebra de Boole. Un motivo podra ser que no existe x D(20) tal que mcd(2,x) = 1 y mcm(2, 20) = 20. 5. Consideramos en el conjunto D = {0, a, b, c, 1} las siguientes operaciones: 0 a b c 1 0 0 a b c 1 a b a b a 1 1 b 1 1 1 1 c c 1 1 c 1 1 1 1 1 1 1 0 a b c 1 0 0 0 0 0 0 a b 0 0 a 0 0 b 0 0 a b c 0 0 0 c c 1 0 a b c 1 0 0 1 1 1 1 0 1 0 0 0 1 0 1

El conjunto D, con estas operaciones, no es un lgebra de Boole. Podemos verlo, por ejemplo, comprobando que: a (b c) = a 0 = a; (a b) (a c) = 1 1 = 1

El resto de axiomas que denen un lgebra de Boole si se satisfacen en este conjunto D. Observaciones: Los smbolos que hemos utilizado para las operaciones de un lgebra de Boole, aunque estn bastante extendidos no son los nicos que se emplean. Veamos algunas notaciones diferentes. 1. Para los smbolos y , es bastante usual emplear los smbolos + y . En tal caso, las dos propiedades distributivas quedaran x (y + z ) = (x y )+(x z ) y x +(y z ) = (x + y ) (x + z ). 2. Para representar el complementario de un elemento x, en lugar de x tambin es frecuente utilizar la notacin x o x. 3. Otra notacin para las operaciones x y , x y , x bastante extendida es x OR y , x AND y y NOT x. En tal caso, los elementos distinguidos 0 y 1 pueden ser denotados como F y V (o F y T , si se trata de un texto ingls).
Departamento de lgebra

1.1. lgebras de Boole Propiedades: Supongamos que B es un lgebra de Boole, y x, y, z elementos de B . Entonces: 1. x x = x; x x = x (Idempotencia). 2. x 1 = 1; x 0 = 0 (Dominacin). 3. x (x y ) = x; x (x y ) = x (Absorcin). 4. xy =xz xy =xz = y = z (Propiedad cancelativa).

5. x = x (Doble complementario). 6. x (x y ) = x y ; x (x y ) = x y . 7. x y = x y ; x y = x y (Leyes de De Morgan). 8. Son equivalentes: a) b) c) d) xy xy xy xy = y. = x. = 1. = 0.

Vamos a hacer una demostracin de estas propiedades. Para ello, usaremos, bien igualdades que tenemos en la denicin de lgebra de Boole, bien propiedades que ya hemos demostrado. 1. x = x 0 = x (x x) = (x x) (x x) = (x x) 1 = x x. x = x 1 = x (x x) = (x x) (x x) = (x x) 0 = x x. 2. x 1 = x (x x) = (x x) x = x x = 1. x 0 = x (x x) = (x x) x = x x = 0. 3. x = x 1 = x (y y ) = (x y ) (x y ) = (x y ) (x y ) (x y ) = [x (y y )] (x y ) = (x 1) (x y ) = x (x y ) x = x 0 = x (y y ) = (x y ) (x y ) = (x y ) (x y ) (x y ) = [x (y y )] (x y ) = (x 0) (x y ) = x (x y ) 4. y = y (x y ) = y (x z ) = (y x) (y z ) = (z x) (z y ) = z (x y ) = z (x z ) = z . 5. 1=xx=xx 0=xx=xx = x = x.

6. x (x y ) = (x x) (x y ) = 1 (x y ) = x y . x (x y ) = (x x) (x y ) = 0 (x y ) = x y . 7. (x y ) (x y ) = (x y x) (x y y ) = (1 y ) (x 1) = 1 1 = 1 = (x y ) (x y ) (x y ) (x y ) = (x x y ) (y x y ) = (0 y ) (x 0) = 0 0 = 0 = (x y ) (x y ) (x y ) (x y ) = (x x y ) (y x y ) = (1 y ) (x 1) = 1 1 = 1 = (x y ) (x y ) (x y ) (x y ) = (x y x) (x y y ) = (0 y ) (x 0) = 0 0 = 0 = (x y ) (x y ) = x y = xy . = x y = xy .

8. a) = b) x = x 0 = x (y y ) = (x y ) (x y ) = y (x y ) = y x = x y . b) = c) 1 = x x = x (x y ) = x (x y ) = x y . c) = d) 0 = 1 = x y = x y . d) = a) y = y 0 = y (y x) = y x = x y .

Observacin: En la denicin de lgebra de Boole, el axioma quinto nos dice que para cada elemento x existe otro elemento x que satisface dos propiedades: x x = 1 y x x = 0. El axioma no nos dice que no pueda haber ms elementos que cumplan esa propiedad. Ahora, con la propiedad cancelativa (que acabamos de demostrar) podemos ver que slo puede haber un elemento satisfaciendo estas dos propiedades. Esto permite ponerle nombre a este elemento, y el nombre que elegimos es el de el complemento de x (si pudiera haber ms de un elemento con esta propiedad, en lugar de hablar del el complemento de x habra que decir "un complemento de x"). En el ejemplo 1.1.1 denimos dos operaciones en el conjunto D = {0, a, b, c, 1} y vimos como este conjunto no es un lgebra de Boole. Podemos ver como el elemento a tiene dos complementos, ya que b es un complemento de a (a b = 1; a b = 0) y c tambin (a c = 1; a c = 0). Es claro entonces que en este conjunto, no es cierta la propiedad cancelativa tal y como la hemos visto aqu.
Jess Garca Miranda

LGEBRAS DE BOOLE Si nos jamos en los axiomas que denen a un lgebra de Boole, as como en estas propiedades que hemos deducido de los axiomas, podemos apreciar que normalmente van por parejas. Esto se conoce como principio de dualidad.
4

Principio de dualidad. Dado un enunciado en un lgebra de Boole, el enunciado que resulta de intercambiar los smbolos y , as como 0 y 1 se conoce como enunciado dual. Si un teorema es cierto para lgebras de Boole, entonces su teorema dual tambin lo es. Por ejemplo, el enunciado dual de x 1 = 1 es x 0 = 0. Puesto que x 1 = 1 es cierto en cualquier lgebra de Boole, su dual tambin lo es. El enunciado dual de la ley x y = x y es x y = x y . Al ser cierto uno de ellos, lo es automticamente el otro. A partir de dos (o ms) lgebras de Boole, podemos obtener una nueva lgebra de Boole sin ms que realizar el producto cartesiano. Proposicin 1.1.1. Sean (B1 , 1 , 1 ) y (B2 , 2 , 2 ) dos lgebras de Boole. Entonces el conjunto B1 B2 con las operaciones (x, y ) (x , y ) = (x 1 x , y 2 y ); tiene estructura de lgebra de Boole. Este lgebra de Boole se conoce como lgebra de Boole producto de las lgebras B1 y B2 . Fcilmente puedes ser generalizado a un producto de tres o ms lgebras de Boole. La demostracin de esta proposicin es totalmente rutinaria. Ejemplo 1.1.2. En el ejemplo 1.1.1 vimos que B = {0, 1} es un lgebra de Boole. Si hacemos el lgebra producto de el lgebra B consigo misma, obtenemos el lgebra de Boole B2 , que tambin estudiamos en el mismo ejemplo. De hecho, vimos que el conjunto Bn tiene estructura de lgebra de Boole. Una estructura de lgebra de Boole en un conjunto B determina un orden en este conjunto. Teorema 1.1.1. Sea (B, , ) un lgebra de Boole. Denimos en B la siguiente relacin: x y si, y slo si, x y = y Esta relacin es una relacin de orden en B . Adems, dados dos elementos x, y B se tiene que sup{x, y } = x y e inf{x, y } = x y . Y este conjunto ordenado tiene mximo y mnimo, que son 1 y 0 respectivamente. Nota: La propiedad nmero 8 que hemos visto nos dice que cualquiera de las siguientes tres deniciones habran valido para denir el orden en B . x y si, y slo si, x y = x. x y si, y slo si, x y = 1. x y si, y slo si, x y = 0. Y en cualquiera de los casos habramos denido la misma relacin que hemos dado en el teorema. Ejemplo 1.1.3. Vamos a ver cul es el orden que se induce en las lgebras de Boole estudiadas en el ejemplo 1.1.1.
Departamento de lgebra

(x, y ) (x , y ) = (x 1 x , y 2 y )

1.1. lgebras de Boole 5 1. El primer ejemplo que tenemos es el lgebra de Boole P (X ), donde X es un conjunto cualquiera. El orden viene dado por: A B si, y slo si, A B = B y esto signica que A B . Es decir, el orden inducido por la estructura de lgebra de Boole es el orden dado por la inclusin. 2. El segundo ejemplo es el lgebra de Boole B. Puesto que 0 1 = 1, el orden es 0 1. 3. El tercer ejemplo es Bn . Aqu podemos ver que el orden viene dado por: (x1 , x2 , , xn ) (y1 , y2 , , yn ) si, y slo si, x1 y1 , x2 y2 , , xn yn es decir, el orden producto. 4. En el ejemplo de los divisores de 30 el orden sera x y si, y slo si, mcm(x, y ) = y , lo cual ocurre cuando y es mltiplo de x. Es decir, el orden es el dado por la divisibilidad.
Demostracin: Vamos a dar una demostracin del teorema 1.1.1. Para esto, hemos de demostrar varias cosas: La relacin denida es una relacin de orden. Esto a su vez requiere demostrar tres pequeos apartados: La relacin es reexiva (para todo x B se tiene que x x). Dado x B se tiene que x x = x, luego x x. La relacin es antisimtrica (si x y e y x entonces x = y ). Si x y e y x se tiene que x y = y y que y x = x. Por tanto, x = y . La relacin es transitiva (si x y e y z entonces x z ). Si x y entonces x y = y , y si y z entonces y z = z . En tal caso, x z = x (y z ) = (x y ) z = y z = z , luego x z . El supremo del conjunto {x, y } es x y . Esto, a su vez, lo dividimos en varias etapas. x y es cota superior de x e y . Dicho de otra forma, x x y e y x y . - x (x y ) = (x x) y = x y , es decir, x x y . - y (x y ) = (y y ) x = y x = x y , es decir, y x y . x y es la menor de las cotas superiores. Es decir, si z fuera una cota superior de x e y entonces x y z . Dicho de otra forma, hemos de ver que si x z e y z , entonces (x y ) z = z . Pero si x z = z e y z = z se tiene que (x y ) z = x (y z ) = x z = z . El nmo del conjunto {x, y } es x y . Esto se demuestra de forma anloga al apartado precedente, pero usando una denicin equivalente de orden (x y si, y slo si, x y = x). El mximo del conjunto B es 1, y el mnimo del conjunto B es 0. Esto es lo mismo que demostrar que para cualquier x B se tiene que x 1 y que 0 x, es decir, x 1 = 1 y 0 x = x, lo cual sabemos que es cierto.

Observaciones: Este ltimo teorema nos dice que todo lgebra de Boole es un conjunto ordenado. Por tanto, todo lo que tenemos para conjuntos ordenados lo podemos trasladar ahora a este contexto de lgebras de Boole. Es ms, el orden determina completamente la estructura del lgebra de Boole, pues a partir de la relacin de orden podemos obtener las operaciones y (tenemos que x y = sup{x, y } y x y = inf{x, y }, como hemos visto). Esto no signica que todo conjunto ordenado (X, ) sea un lgebra de Boole. Por ejemplo, hemos visto que el conjunto de los divisores de 20, con el orden dado por la divisibilidad no es un lgebra de Boole. Para que un conjunto ordenado sea lgebra de Boole, deben satisfacerse algunas condiciones adicionales. Estas condiciones seran las siguientes:
Jess Garca Miranda

LGEBRAS DE BOOLE - El conjunto X tiene mximo (que llamaremos 1) y mnimo (que llamaremos 0). - Dados x, y X , el conjunto {x, y } tiene supremo (denotado como x y ) e nmo (denotado como x y ). - Las operaciones supremo e nmo son distributivas una con respecto a la otra. - Cualquier elemento x X tiene un complemento (es decir, un elemento y X tal que x y = 1 y x y = 0).

Una forma de representar un conjunto ordenado nito es a travs de su diagrama de Hasse. Vamos a dar a continuacin el diagrama de Hasse de algunas lgebras de Boole. Ejemplo 1.1.4. 1. Vamos a dibujar el diagrama de Hasse de las lgebras B, B2 y B3 .

0 B

(1, 1)  ???  ??  ?  (1, 0) (0, 1) ??  ??  ??   (0, 0) B2

(1, 1, 1)  ??? ??   ?  (1, 1, 0) (1, 0, 1) (0, 1, 1) ??  ??  ?? ?  ? ???      ? (1, 0, 0) (0, 1, 0) (0, 0, 1) ?? ??  ??    (0, 0, 0) B3

2. A continuacin, dibujamos los diagramas de Hasse de las lgebras de Boole P (X ) para X = {1}, {1, 2}, {1, 2, 3}.

{1}

P ({1})

{1, 2}  ???  ??   ?  {1} {2} ??  ??  ??  ?  P ({1, 2})

{1, 2, 3} ?? ??   ??   {1, 2} {1, 3} {2, 3} ??  ??  ? ??   ? ??  ?  ? {1} {2} {3} ??  ??  ??  ?  P ({1, 2, 3})

3. Tomamos ahora los nmeros n = 2, 6, 30 y hacemos el diagrama de Hasse del conjunto de los divisores de n.
Departamento de lgebra

1.1. lgebras de Boole 30 ?  ???  ??  ?  10 ? 15 6? ??  ??  ?? ?   ?? ??  ?  ? 3 5 2? ??  ??  ??  ?  1 D(30)

1 D(2)

6?  ???  ??  ??    2? 3 ??  ??  ??  ?  1 D(6)

4. Las operaciones y denidas en el conjunto D = {0, a, b, c, 1}, aunque no dan estructura de lgebra de Boole al conjunto D s dan un orden en este conjunto. El diagrama de Hasse de este conjunto ordenado sera: 1?  ???  ??  ??   a/ c b //   //  //   //  //   //  /  0 Este conjunto ordenado se conoce como el diamante. Es otro ejemplo de un conjunto ordenado que no determina un lgebra de Boole. 5. Vamos a tomar dos lgebras de Boole, con 2 y 4 elementos. Estas son B1 = {, +} y B2 = {0, A, B, AB }. Los diagramas de Hasse de estas dos lgebras de Boole son semejantes a los de B y B2 . Hacemos el producto cartesiano de ambas lgebras de Boole, y dibujamos su diagrama de Hasse. AB + ?? ??   ??   ?   B+ A+? AB ??  ??  ?? ?  ?? ??  ?  ? 0+ A? B ??   ??  ??   0 Lo que nos resulta son los 8 grupos sanguneos que tenemos las personas. El orden, en este caso, signica poder donar As, por ejemplo, el grupo 0 es el donante universal, pues puede dar a cualquier persona, mientras que el grupo AB + es el receptor universal, pues puede recibir sangre de cualquier donante sano. Proponemos aqu un sencillo ejercicio. Ejercicio 1.1.1. Sea B un lgebra de Boole, y sean x, y, z B tales que x y . Demuestra que xz y z y que x z y z .
Jess Garca Miranda

LGEBRAS DE BOOLE En los ejemplos que acabamos de ver, podemos apreciar el parecido entre las lgebras de Boole B, P ({1}) y D(2), as como entre B2 , P ({1, 2}) y D(6) o entre B3 , P ({1, 2, 3}) y D(30). De hecho, podemos ver que son iguales excepto en el nombre de los elementos. Todo lo que digamos para el lgebra B3 vale tanto para P ({1, 2, 3} como para D(30). Estas lgebras de Boole se dice que son isomorfas
8
Si B y B son dos lgebras de Boole, un isomorsmo entre ambas es una aplicacin biyectiva f : B1 B2 tal que f (x y ) = f (x) f (y ) y f (x y ) = f (x) f (y ). Dos lgebras de Boole se dicen isomorfas si hay un isomorsmo entre ellas. En el ejemplo anterior hemos visto que las lgebras de Boole B, P ({1}) y D(2) son isomorfas. Tambin son isomorfas B2 , P ({1, 2}) y D(6), o las lgebras B3 , P ({1, 2, 3}) y D(30). Por ejemplo, un isomorsmo entre las lgebras B3 y D(30) podra ser la aplicacin f : B3 D(30) dada por f (x, y, z ) = 2x 3y 5z .

Esto que ocurre en estos ejemplos, es general. Si B es un lgebra de Boole nita (con un nmero nito de elementos), entonces el nmero de elementos de B es una potencia de 2. Por tanto, |B | = 2n para algn n N. En tal caso, B es isomorfa al lgebra de Boole Bn , o al lgebra P ({1, 2, , n}) (o P (X ) con X un conjunto cualquiera con n elementos), o D(m), donde m es un nmero que es producto de n primos distintos. Esto ltimo vamos a darlo con ms precisin. Para eso, vamos a introducir algunos conceptos elementales. En lo que sigue, cuando hablemos de un lgebra de Boole, daremos por sobreentendida la relacin de orden que denimos en el enunciado del teorema 1.1.1. Denicin 2. Sea B un lgebra de Boole y x B . Se dice que x es un tomo si x es un elemento minimal de B \ {0}. Nota: Si (X, ) es un conjunto ordenado que tiene mnimo (que llamaremos 0), podemos tambin denir los tomos de X como los elementos minimales del conjunto X \ {0}. Ejemplo 1.1.5. Si X es un conjunto, los tomos del lgebra de Boole P (X ) son los subconjuntos unitarios. Los tomos del lgebra de Boole Bn son aquellos que tienen todas las coordenadas nulas salvo una. En el lgebra de Boole D(30) los tomos son los divisores primos de 30. El concepto dual de tomo es el de cotomo. Dene dicho concepto, y calcula los cotomos de las lgebras de Boole que hemos visto hasta el momento. Teorema 1.1.2. Sea B un lgebra de Boole nita, y x B \ {0}. Entonces, x se expresa de forma nica como supremo de tomos. Antes de demostrar el teorema, veamos el siguiente lema: Lema 1.1.1. Sea B un lgebra de Boole nita y x B \ {0}. Entonces existe a B , tomo, y tal que a x.
Demostracin: Basta tomar el conjunto Ax = {y B : 0 < y x}, que es distinto del vaco (pues x es un elemento suyo). Se tiene que un elemento minimal de Ax (que existe por ser Ax nito) es un tomo de B .

Dado cualquier elemento x B \ {0}, denotaremos por Ax al conjunto de todos los tomos de B que son menores o iguales que x. Ejemplo 1.1.6. 1. Dada el lgebra de Boole B5 , y el elemento x = (0, 1, 1, 0, 1) B5 , el conjunto Ax es igual a {(0, 1, 0, 0, 0); (0, 0, 1, 0, 0); (0, 0, 0, 0, 1)}. Es decir, todos los tomos que son menores o iguales que x.
Departamento de lgebra

1.1. lgebras de Boole 9 2. En el lgebra de Boole D(2310), tomamos x = 110. Entonces Ax = {2, 5, 11}, es decir, los divisores primos de x.
Demostracin: (teorema 1.1.2) Supongamos que Ax = {a1 , a2 , . . . , am }. Sea entonces z = a1 a2 . . . am . Comprobemos que z = x. Puesto que ai x se tiene que z x (pues z = sup{a1 , a2 , , am }). Supongamos que z = x. Por ser z x se tiene que z x = 1. Si z x = 0, tendramos que x = z = z , lo cual estamos suponiendo que no es cierto. Por tanto, z x = 0. Sea a un tomo menor o igual que z x. Entonces, a x, luego a = ai para algn i. Supongamos que a = a1 . En ese caso, se tiene que: 0 = z z = z (a1 am ) a (a1 am ) = (a a1 ) (a a2 ) (a am ) = a1 , lo cual no es posible. Deducimos por tanto que z = x, es decir, x se expresa como supremo de tomos. Supongamos ahora que podemos expresar x como supremo de tomos de la forma x = b1 bk . Entonces bi x, luego bi Ax . Por tanto, {b1 , , bk } Ax . Si la inclusin fuera estricta, debera haber un elemento en Ax que no perteneciera a {b1 , , bk }. Supongamos que este elemento es am . Entonces: am = x am = (b1 b2 bk ) am = (b1 am ) (b2 am ) (bk am ) = 0 0 0 = 0.

Este teorema nos dice que si B es un lgebra de Boole nita, y X = {a1 , . . . , an } son sus tomos (es decir, X = A1 ) entonces los elementos de B son:

B=
xA

x : A P (X ) ,

donde se ha empleado la notacin 0 =


x

x.

Vemos entonces que B tiene tantos elementos como P (X ). Por tanto, el nmero de elementos de B es 2n , donde n es el nmero de tomos. Es ms, tenemos que las lgebras de Boole B , Bn y P (X ) son isomorfas. A continuacin damos explcitamente cul sera el isomorsmo f : P (X ) B y su inverso f 1 : B P (X ). P (X ) A Nota: Para lgebras de Boole no nitas, el resultado no es cierto. Como ejemplo, tomamos la siguiente lgebra de Boole. Sea I el conjunto de todos los intervalos reales de la forma [a, b), de la forma (, b) o [a, +). Sea B el conjunto de todas las uniones nitas de elementos de I . Entonces B es un lgebra de Boole (con las operaciones unin e interseccin). Este lgebra de Boole, por ejemplo, no tiene tomos. Veamos a continuacin que nos dice el teorema anterior en algunos de los ejemplos de lgebras de Boole que hemos ido estudiando. Ejemplo 1.1.7.
Jess Garca Miranda
f

B x
xA

B x

P (X ) Ax

f 1

10

LGEBRAS DE BOOLE 1. Consideramos el lgebra de Boole B3 . (1, 1, 1) ?? ??   ??   (1, 1, 0) (1, 0, 1) (0, 1, 1) ??  ??  ?? ?   ?? ?  ?  ? (1, 0, 0) (0, 1, 0) (0, 0, 1) ??  ??  ??   (0, 0, 0) Vemos que los tomos son (1, 0, 0), (0, 1, 0) y (0, 0, 1). Si tomamos cualquier elemento distinto de (0, 0, 0), por ejemplo, (1, 0, 1) podemos comprobar fcilmente que se puede expresar como supremo de tomos. En este caso, (1, 0, 1) = (1, 0, 0) (0, 0, 1). Con cualquier otro elemento podramos hacer lo mismo. 2. Sean ahora los conjuntos ordenados D(120) y D(210), cuyos diagramas de Hasse son: D(120) 120 OO OOO ooo o OOO o o o OOO oo o o O o 24 ? 40 60 j j j j ? j ?? jjjjj  ???  ???jjjjjj j ? ??  j  j j ??  jjjjjj ??? jjjj ???  j  j j j  j jj jj j 8 ggg o 30 o 12 gggg 20 gg ooo ooo ggggg ggggo g g o o g g g g o g g o gggg oo gggg oog o o ooo g ggg ggggg o g g o g g o o g g o g g g 10 4? 6g j 15 ??  ??? jjjjjjj ??? jjjjjj   ?? ?  j j ?  j j ?  j j j j ?  ?? ?  j j ??  ?? jjj ? jjjjjj  j jjjj j j 3 2 OOO 5 o OOO ooo OOO ooo o OOO o OO ooooo 1 jj 210?TTT jjjj  ??? TTTTTTT j j j TTTT j ??  TTTT jjjj ?  T jjjj j W W W g g g ggg 42 WWWWg o 70 WWWWWWW oo 105 OOO o 30 WWWWg g g W W g g o o W W g g W W o o W WWWWW ggggg oW O o W oW oo gggg Wg WWWWWoooo WWWWWWWWWooooo WWWWWWWWW OOOOO ooo gggggggg ggg g o g WWWWW OO W W g o o o W W g g WWWWW WWWWW g o O WWW o ooo ooo ggggg W W ggggg o go g g W W W W O g g 21 10 WWWWW 15 6 OO 14 WWWWW 35 WWWWW g g g g o o o g gg WWW WWW OOO WWWW ooo Wo Wo ggggg ggggo WWW WWWWW g g ooo ooo o g g OOO WWWWWW g g o o g g W o o o WWWo o gggggg WWWWWW gggggg o WWW OOO o oo W W g g WW WW WWWWW oWo WWWWW ooooo WWWWW OO ooooo o o ggggg ggggg WW o g g g g 3? 5 2 TTTTT jjjj 7 ??  TTTT jjjj ??  TTTT j j  j  TTTT ?? jj ? jjjjjj TTTT j j 1

D(210)

Los tomos del primer conjunto ordenado seran los elementos 2, 3, 5. Si tomamos por ejemplo el elemento 30 vemos que podemos ponerlo como supremo de tomos, pues 30 = 2 3 5. Pero, por ejemplo, si tomamos x = 20 vemos que no podemos ponerlo como supremo de tomos. Los tomos que son menores que 20 son 2 y 5, y como podemos comprobar, 2 5 = 10 = 20.
Departamento de lgebra

1.1. lgebras de Boole 11 Por tanto, aqu hay elementos que no se pueden poner como supremo de tomos. Esto nos dice que D(120) no es un lgebra de Boole. Los tomos del segundo conjunto son 2, 3, 5, 7. Podemos tomar cualquier elemento distinto de 1, y comprobar que puede expresarse como supremo de tomos. Por ejemplo: 42 = 2 3 7, 35 = 5 7, 105 = 3 5 7. El conjunto de los divisores de 210 es un lgebra de Boole. 3. En el conjunto D = {0, a, b, c, 1} los tomos son a, b y c. Aqu todo elemento salvo el cero se puede escribir como supremo de tomos. Sin embargo, la forma de escribirlo no es nica. Por ejemplo, se tiene que 1 = a b = a c = b c = a b c. Es decir, hemos encontrado cuatro formas distintas de escribir 1 como supremo de tomos. El teorema 1.1.2 tiene su enunciado dual, que dice que si B es un lgebra de Boole nita, y x B es un elemento distinto de 1, entonces x se expresa de forma nica como nmo de cotomos. Toma algunos ejemplos de lgebras de Boole (por ejemplo, B4 , P ({1, 2, 3, 4, 5}) o D(2310). Calcula sus cotomos. Elige algunos elementos de estas lgebras de Boole y trata de expresarlos como nmo de cotomos.

1.1.2.

Funciones y expresiones booleanas

En esta seccin vamos a estudiar las funciones booleanas en n variables. Veremos que el conjunto de estas funciones tiene estructura de lgebra de Boole. Identicaremos los tomos de este lgebra de Boole, a los que llamaremos minterm (o minitrminos). El teorema 1.1.2, aplicado a este lgebra de Boole nos dar la denominada forma normal cannica disyuntiva de una funcin booleana, y tendremos una expresin para cada funcin booleana. Posteriormente estudiaremos como simplicar esta expresin. Nota importante: En lo que sigue, vamos a cambiar la notacin que hemos empleado para lgebras de Boole. En lugar de denotar a las operaciones booleanas como y , las denotaremos como + y (mantenemos la misma notacin para el complementario). Si escribimos las tablas de estas operaciones para el lgebra de Boole B, tenemos (ver ejemplo 1.1.1): + 0 1 0 0 1 1 1 1 0 1 0 0 0 1 0 1

Y hemos de tener cuidado en no confundirlas con las operaciones suma y producto en Z2 . Para el producto no hay problema, pues el producto en el anillo Z2 coincide con el producto booleano en B, pero para la suma ambas operaciones dieren. En Z2 , el resultado de 1 + 1 es 0, mientras que en el lgebra de Boole B, tenemos que 1 + 1 = 1. Por tanto, cuando estemos hablando de la operacin +, debe quedar claro si nos referimos a la suma booleana o a la suma algebraica. Para referirnos al producto booleano tambin emplearemos la yuxtaposicin. Comenzamos deniendo las funciones booleanas. Denicin 3. Una funcin booleana con n variables es una aplicacin f : Bn B. Denotaremos por Fn al conjunto de las funciones booleanas con n variables. Es decir: Fn = {f : Bn B Ejemplo 1.1.8. 1. La aplicacin f : B B dada por f (0) = 1; f (1) = 0 es una funcin booleana en 1 variable (es decir, un elemento de F1 . Esta aplicacin responde a la expresin f (x) = x.
Jess Garca Miranda

f es aplicacin}.

12

LGEBRAS DE BOOLE 2. Sea f : B2 B la aplicacin f (x, y ) = x + y . Entonces f es una aplicacin booleana en 2 variables (f F2 ). Esta aplicacin, elemento a elemento es: (0, 0) 0, (1, 0) 1, (0, 1) 1, (1, 1) 1.

Denicin 4. Dadas f, g : Bn B (es decir, f, g Fn ), denimos las funciones f + g : Bn B y f g : Bn B como sigue: f + g (x1 , . . . , xn ) = f (x1 , . . . , xn ) + g (x1 , . . . xn ), f g (x1 , . . . , xn ) = f (x1 , . . . , xn ) g (x1 , . . . xn ). Es fcil comprobar que estas operaciones convierten a Fn en un lgebra de Boole. Las funciones constantes cero y uno son los dos elementos neutros, mientras que el complementario de una funcin f : Bn B viene dado por la funcin f : Bn B f (x1 , x2 , , xn ) = f (x1 , x2 , , xn ). El orden que se deduce de esta estructura de lgebra de Boole viene dado por f g (para f, g Fn ) si f (x1 , x2 , . . . , xn ) g (x1 , x2 , . . . xn ) para todo (x1 , x2 , . . . , xn ) Bn . Los tomos de este lgebra de Boole son las aplicaciones que valen 1 en un elemento de Bn , y 0 en el resto. Puesto que en Bn hay 2n elementos, tenemos que Fn tiene 2n tomos, lo que nos dice que Fn tiene n 22 elementos. Ejemplo 1.1.9. 1. El lgebra F1 tiene 22 = 4 elementos. stos son: 00 10 00 11 01 10 01 1 1.

Los tomos son las aplicaciones segunda y tercera. 2. El lgebra F2 tiene 4 tomos, y por tanto 16 elementos. Los tomos son: (0, 0) 1 (1, 0) 0 (0, 1) 0 (1, 1) 0 (0, 0) 0 (1, 0) 1 (0, 1) 0 (1, 1) 0 (0, 0) 0 (1, 0) 0 (0, 1) 1 (1, 1) 0 (0, 0) 0 (1, 0) 0 (0, 1) 0 (1, 1) 1.

1.1.3.

Expresiones booleanas

Denicin 5. Sea S un conjunto. Se denen las expresiones booleanas sobre el conjunto S de forma recursiva como sigue: 1. Si x S {0, 1} entonces x es una expresin booleana. 2. Si e1 , e2 son expresiones booleanas, entonces tambin lo son e1 + e2 , e1 e2 y e1 . A las expresiones booleanas que sean elementos de S , o complementos suyos, los denominaremos literales. Ejemplo 1.1.10. Si S = {x, y, z } son expresiones booleanas x, x + z , x y , 1. Son literales, x, z , z .
Departamento de lgebra

1.1. lgebras de Boole 13 Supongamos que tenemos un conjunto S con n elementos, es decir, S = {x1 , x2 , . . . , xn }. A cada elemento de S le vamos a asignar un elemento de Fn . Concretamente, al elemento xi le asignamos la funcin xi : Bn B dada por xi (a1 , . . . , ai , . . . , an ) = ai . De esta forma, a cada expresin booleana sobre el conjunto S le podemos hacer corresponder una funcin Bn B. Por ejemplo, si S = {x, y, z } y consideramos la expresin booleana x + (y z ), le corresponde la funcin booleana (0, 0, 0) 0 + (1 0) = 0, (0, 0, 1) 0 + (1 1) = 1, (0, 1, 0) 0 + (0 0) = 0, (0, 1, 1) 0 + (0 1) = 0, (1, 0, 0) 1 + (1 0) = 1, (1, 0, 1) 1 + (1 1) = 1, (1, 1, 0) 1 + (0 0) = 1, (1, 1, 1) 1 + (0 1) = 1. Puesto que cada expresin booleana determina una funcin booleana, podremos referirnos a las funciones mencionando las expresiones que las representan. As, la funcin que acabamos de ver podra denirse como f (x, y, z ) = x + (y z ). Ahora, para calcular la imagen de un elemento de B3 basta sustituir en la expresin booleana x, y y z por los valores en los que queremos evaluar, y efectuar las operaciones en el lgebra de Boole B. Por ejemplo f (0, 0, 1) = 0 + (0 1) = 0 + (1 1) = 0 + 1 = 1. Ntese que en el Ejemplo 1.1.8 ya se ha empleado esta forma de denir una funcin booleana. Denicin 6. Dos expresiones booleanas son equivalentes si las correspondientes funciones booleanas son iguales. Si e1 e e2 son expresiones booleanas equivalentes emplearemos el smbolo e1 = e2 . Ejemplo 1.1.11. Las expresiones booleanas x y y x + y son equivalentes. Tambin lo son las expresiones x + y + x y y 1. A continuacin vamos a dar una tabla de expresiones equivalentes. Proposicin 1.1.2. Sean e1 , e2 y e3 tres expresiones booleanas en n variables. Entonces: 1. e1 + (e2 + e3 ) = (e1 + e2 ) + e3 e1 (e2 e3 ) = (e1 e2 ) e3 2. e1 + e2 = e2 + e1 e1 e2 = e2 e1 3. e1 + e1 = e1 e1 e1 = e1 4. e1 (e2 + e3 ) = e1 e2 + e1 e3 e1 + (e2 e3 ) = (e1 + e2 ) (e1 + e3 ) 5. e1 + e2 = e1 e2 e1 e2 = e1 + e2 6. e1 + e1 = 1 e1 e1 = 0 7. e1 + 1 = 1 e1 0 = 0 8. e1 + 0 = e1 e1 1 = e1 9. 1 = 0 0=1 Denicin 7. Un minterm en n variables es el producto de n literales, cada uno con una variable diferente. Ejemplo 1.1.12. Si S = {x, y, z }, entonces son minterm x y z , x y z , x y z . No son minterm x y , x y y ni x z x. Lema 1.1.2. Sea m un minterm en n variables. Entonces m determina una funcin booleana f : Bn B que vale 1 en un elemento de Bn y 0 en el resto. A esta funcin booleana la llamaremos tambin minterm. Ejemplo 1.1.13. Sea f : B2 B la funcin booleana dada por f (x, y ) = x y . Claramente x y es un minterm. Se tiene que f (1, 0) = 1, mientras que f (0, 0) = f (0, 1) = f (1, 1) = 0. Corolario 1.1.1. Los minterm son los tomos del lgebra Fn . Corolario 1.1.2. Toda funcin booleana se expresa de forma nica (salvo el orden) como suma (supremo) de minterm.
Jess Garca Miranda

LGEBRAS DE BOOLE La expresin de una funcin booleana como suma de minterm recibe el nombre de forma normal disyuntiva. Para hallar la forma normal disyuntiva de una funcin booleana podemos emplear dos mtodos. El primero consiste en evaluar la funcin en todos los elementos de Bn , y observar en cuales de ellos toma el valor 1. Cada uno de esos elementos se corresponde con un minterm. El segundo consiste en, a partir de una expresin booleana que nos dena a f , utilizar las equivalencias dadas en la proposicin 1.1.2 para transformar la expresin en una suma de minterm.
14

Ejemplo 1.1.14. Dada la funcin booleana f : B2 B dada por f (x, y ) = x + y , vamos a expresarla como suma de minterm. 1. Si queremos emplear el primer mtodo, evaluamos la funcin en los cuatro elementos de B2 . Nos queda: f (0, 0) = 0 + 0 = 0 f (0, 1) = 0 + 1 = 1 f (1, 0) = 1 + 0 = 1 f (1, 1) = 1 + 1 = 1

El elemento (0, 1) se corresponde con el minterm x y , el (1, 0) con x y mientras que (1, 1) se corresponde con x y . Por tanto tenemos que f (x, y ) = x y + x y + x y . 2. Empleamos ahora el segundo mtodo. En este caso f (x, y ) =x+y =x1+1y = x(y + y ) + (x + x)y = xy + xy + xy + xy = xy + xy + xy + xy = xy + xy + xy (equivalencias 8 y 2) (equivalencia 6) (equivalencias 4 y 2) (equivalencia 2) (equivalencia 3).

Cada elemento de Bn es una secuencia de n dgitos ceros o unos. Es por tanto, la expresin en binario de un nmero entre 0 y 2n 1. Por otra parte, a cada elemento de Bn le corresponde un minterm (aqul para el que toma el valor 1). Vemos entonces que cada minterm est determinado por un nmero comprendido entre 0 y 2n 1. Denotaremos por el minterm a, donde 0 a 2n1 , y lo representaremos como m(a) o ma , al minterm determinado por el nmero a siguiendo el criterio anterior. Por ejemplo, el minterm x y z t toma el valor 1 en (1, 1, 0, 0). Puesto que 12 = (1100)2 tenemos que x y z t es el minterm 12, o dicho de otra forma, x y z t = m12 = m(12). Ejemplo 1.1.15. 1. En un ejemplo anterior hemos expresado la funcin booleana f : B2 B dada por f (x, y ) = x + y como suma de minterms, obtenindose que f (x, y ) = x y + x y + x y . Empleando la notacin recin introducida nos quedara f (x, y ) = m3 + m2 + m1 , o si preferimos f (x, y ) = m1 + m2 + m3 . Tambin se suele emplear la notacin f (x, y ) = m(1, 2, 3). 2. Vamos a escribir los 16 elementos del lgebra de Boole F2 : x 0 0 1 1 y 0 1 0 1 f0 0 0 0 0 f1 0 0 0 1 f2 0 0 1 0 f3 0 0 1 1 f4 0 1 0 0 f5 0 1 0 1 f6 0 1 1 0 f7 0 1 1 1 f8 1 0 0 0 f9 1 0 0 1 f10 1 0 1 0 f11 1 0 1 1 f12 1 1 0 0 f13 1 1 0 1 f14 1 1 1 0 f15 1 1 1 1

Y vemos como: - f0 = 0. - f1 = m3 , es decir, f1 (x, y ) = x y . - f2 = m2 , es decir, f2 (x, y ) = x y .


Departamento de lgebra

1.1. lgebras de Boole - f3 = m2 + m3 , es decir, f3 (x, y ) = x y + x y = x. - f4 = m1 , es decir, f4 (x, y ) = x y . - f5 = m1 + m3 , es decir, f5 (x, y ) = x y + x y = y . - f6 = m1 + m2 , es decir, f6 (x, y ) = x y + x y . - f7 = m1 + m2 + m3 , es decir, f7 (x, y ) = x y + x y + x y = x + y . - f8 = m0 , es decir, f8 (x, y ) = x y . - f9 = m0 + m3 , es decir, f9 (x, y ) = x y + x y . - f10 = m0 + m2 , es decir, f10 (x, y ) = x y + x y = y . - f11 = m0 + m2 + m3 , es decir, f11 (x, y ) = x y + x y + x y = x + y . - f12 = m0 + m1 , es decir, f12 (x, y ) = x y + x y = x. - f13 = m0 + m1 + m3 , es decir, f13 (x, y ) = x y + x y + x y = x + y . - f14 = m0 + m1 + m2 , es decir, f13 (x, y ) = x y + x y + x y = x + y . - f15 = 1 = m0 + m1 + m2 + m3 .

15

El resultado dual de que toda funcin booleana se expresa de forma nica como suma de minterm, es que toda funcin booleana se expresa de forma nica como producto de maxterm. Un maxtern en n variables es una suma de n literales en los que no aparece ninguna variable repetida. Se corresponde con una funcin booleana que toma el valor 1 en todos los elementos de Bn salvo en uno. De forma anloga a como hemos hecho con los minterm, identicaremos un maxterm con el nico elemento de Bn que se aplica en el cero. Si este elemento es la expresin binaria del nmero a, el maxterm ser denotado como Ma . De los 16 elementos de F2 , son maxterm las funciones f7 , f11 , f13 y f14 . Con la notacin que acabamos de introducir tenemos que f7 = M0 , f11 = M1 , f13 = M2 y f14 = M3 . Se denomina forma cannica conjuntiva de una funcin booleana a la expresin de esta como producto de Maxterm. Por ejemplo, la forma cannica conjuntiva de la funcin f5 es f5 = M0 M2 = (x + y ) (x + y ). Ejemplo 1.1.16. Sea f : B4 B la funcin denida como f (x, y, z, t) = x y (z t) + (z + t)(x + y ). Vamos a calcular su forma cannica conjuntiva y disyuntiva. Podemos hacerlo de varias formas. 1. Transformando la expresin que dene a f . f (x, y, z, t) = = = = = x y (z t) + (z + t)(x + y ) x y (z + t) + z + t + x + y xyz + xyt + zt + xy x y z (t + t) + x y (z + z )t + (x + x)(y + y )z t + x y (z + z )(t + t) x y z t + x y z t + x y z t + x y z t + x y z t + x y z t + x y z t + x y z t+ +x y z t + x y z t + x y z t + x y z t

Y por tanto, f = m11 + m10 + m10 + m8 + m13 + m9 + m5 + m1 + m11 + m9 + m10 + m8 = m1 + m5 + m8 + m9 + m10 + m11 + m13 . Una vez calculada la expresin de f como suma de minterm, es fcil calcular su expresin como producto de maxterm, y tendramos que f = M0 M2 M3 M4 M6 M7 M12 M14 M15 . 2. Obteniendo la tabla de la funcin f .
Jess Garca Miranda

16

LGEBRAS DE BOOLE x 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 y 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 z 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 t 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 zt 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 zt 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 xy 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 x y ( z t) 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 z+t 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 x+y 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 (z + t)(x + y ) (z + t)(x + y ) f 1 0 0 0 1 1 1 0 0 1 0 0 1 0 0 0 1 1 1 0 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 1 1 0 0 0 1 1 1 0 0 1 0 0

Y a partir de la tabla, jndonos en los unos de la ltima columna tenemos los minterm que aparecen en la expresin de f (y que coinciden con los obtenidos anteriormente), y jndonos en los ceros de esa columna obtenemos los maxterm.

1.1.4.

Puertas lgicas

Las funciones booleanas nos proporcionan un modelo matemtico para el diseo de circuitos de dispositivos electrnicos. Fue Claude Shannon (el padre de la teora de la informacin) quien en 1938, en su tesis doctoral, demostr como el lgebra de Boole poda ser empleada en el anlisis de los circuitos digitales. Las entradas y/o salidas de estos circuitos podemos verlas como elementos del conjunto B = {0, 1}. Los elementos bsicos de estos circuitos se llaman puertas lgicas. Cada puerta implementa una operacin booleana. Aqu emplearemos tres tipos de puertas lgicas, cada una correspondiente a cada una de las siguientes operaciones booleanas: suma, producto y complementario. Estas puertas las combinaremos para disear circuitos que realicen una serie de tareas. La salida de los circuitos que estudiemos no depender del estado del circuito, sino nicamente de los datos de entrada. Dicho de otra forma, nuestros circuitos no tienen memoria. Los circuitos as construidos se denominan circuitos combinacionales. Como hemos dicho, vamos a emplear tres puertas lgicas. stas son: La puerta NOT (tambin llamada inversor) que tiene como entrada el valor de una variable booleana y produce como salida el complementario de dicho valor. Para una puerta NOT emplearemos el siguiente smbolo. x x

La puerta AND que tiene como entrada el valor de dos o ms variables booleanas, y como salida el producto de stas. Las entradas se muestran a la izquierda y la salida a la derecha. Emplearemos el siguiente smbolo para esta puerta. x y xy

La puerta OR tiene como entrada el valor de dos o ms variables booleanas, y como salida la suma de stas. La representaremos mediante el siguiente smbolo. x y
. . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . .. . ..

x+y

Vamos a ver cmo combinar estas puertas para desarrollar diferentes circuitos. Ejemplo 1.1.17. Comenzamos diseando un circuito con dos entradas y que produzca la salida x y + x y .
Departamento de lgebra

x x y

1.1. lgebras de Boole xy xy


. . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . ..

17

xy + xy

Ntese que puesto que x y + x y = (x + x)y = 1 y = y podra haberse diseado un circuito mucho ms simple que tuviera el mismo efecto. A continuacin vamos a disear un circuito que, introducidos dos nmeros en binario nos devuelve su suma. Para esto, comenzamos en primer lugar diseando un circuito que, dados dos dgitos binarios nos devuelva la suma. Puesto que los posibles resultados de la suma son 0, 1 y 10 necesitamos un circuito que tenga dos salidas. Denotaremos el bit de la derecha como s (suma) y el de la izquierda como a (acarreo). Se tiene entonces que s = x y + x y = (x + y )x y mientras que a = x y . Un circuito podra ser entonces: x
. . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . ..

x+y xy xy

s a

Denominaremos a este circuito como suma parcial. Construyamos ahora un circuito que nos sume dos dgitos binarios ms el posible acarreo de una suma anterior. Podemos ver fcilmente que esto es equivalente a sumar tres dgitos binarios x, y y z . El resultado ser, como antes una salida doble. A las dos salidas las denotaremos de la misma forma que en el caso anterior: s y a. Para obtener la salida s, obtenemos la suma de x e y , y al resultado le sumamos z . Puede verse entonces que un circuito que nos da la suma de tres dgitos sera: z y x
suma parcial a1 suma parcial a2

s2

s
. . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . ..

s1

x y 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1

z 0 1 0 1 0 1 0 1

s1 0 1 1 0 0 1 1 0

a1 0 0 0 1 0 0 0 1

s2 0 1 1 0 1 0 0 1

a2 0 0 0 0 0 1 1 0

s a 0 0 1 0 1 0 0 1 1 0 0 1 0 1 1 1

a1 + a2 0 0 0 1 0 1 1 1

pues como podemos apreciar, s = s2 y a = a1 + a2 . Denotaremos a este circuito como suma total. Veamos ahora como calcular la suma de dos nmeros entre 0 y 7. Supongamos que estos nmeros se escriben en binario como x2 x1 x0 e y2 y1 y0 . Su suma, escrita en binario es s3 s2 s1 s0 .

x0 y0 x1 y1 x2 y2

suma parcial suma total suma total

s0 s1 s2 s3

Jess Garca Miranda

18

LGEBRAS DE BOOLE

1.1.5.

Optimizacin de funciones booleanas

Hemos visto en la subseccin anterior como a partir de la representacin de una funcin booleana en n variables haciendo uso de una expresin booleana podemos disear un circuito que nos devuelva el resultado de aplicar la funcin a las n variables. Puesto que cualquier funcin booleana puede expresarse como suma de minterm, podemos disear cualquier circuito empleando las tres puertas NOT, OR y AND. Sin embargo, la expresin de una funcin como suma de minterm no es en general la ms apropiada pues requiere de muchas operaciones, lo que se traduce en la necesidad de emplear gran cantidad de puertas. As, por ejemplo, los siguientes circuitos producen el mismo efecto sobre las entrada x, y . x
. . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..

x y

. . . . . . . . . . . .

.. . . . . . . . . . . . . . . . . . . . . . . . . . . ..

y pues el primer circuito responde a la funcin x y + x y + x y , mientras que el segundo a x + y , que vimos anteriormente que son iguales. Lo que pretendemos es, a partir de una expresin de suma de minterm, transformarla en otra expresin equivalente con menos sumandos y menor productos en los sumandos. Vamos a estudiar dos mtodos para este propsito. Por una parte, los mapas de Karnaugh, y por otra parte el mtodo de Quine-McCluskey. Referente al primero, decir que es un mtodo eciente para funciones de no ms de cuatro variables, mientras que puede utilizarse hasta funciones de seis variables. En cuanto al segundo, aunque realiza la optimizacin de forma automtica, y podra implementarse como un programa informtico, el algoritmo, para un nmero grande de variables booleanas, es computacionalmente muy costoso. Mapas de Karnaugh Vamos a comenzar con un ejemplo. Supongamos que tenemos la funcin booleana f : B4 B siguiente: f (x, y, z, t) = x y z t + x y z t + x y z t + x y z t + x y z t + x y z t que podemos apreciar que est en forma normal disyuntiva. Sin embargo, vemos que tiene una expresin muy larga, lo que requiere muchos clculos para evaluar la funcin. Nuestro propsito es simplicar la expresin con la que calcular f . Nos jamos en los sumandos primero y ltimo, es decir, x y z t y x y z t, y nos damos cuenta que la nica diferencia estriba en que el primer sumando tiene al literal x, mientras que el segundo tiene al literal x. Con esto, podemos agrupar estos dos sumandos: x y z t + x y z t = (x + x) y z t = 1 y z t = y z t Por lo que la expresin de f se ve reducida, al sustituir el primer y ltimo sumandos por y z t. Es decir, tenemos f (x, y, z, t) = y z t + x y z t + x y z t + x y z t + x y z t Hacemos ahora lo mismo con el tercero y el ltimo: x y z t + x y z t = (x + x) y z t = y z t, luego nos queda: f (x, y, z, t) = y z t + x y z t + y z t + x y z t Y repetimos con el segundo y el ltimo: x y z t + x y z t = (x + x) y z t = 1 y z t = y z t, con lo que tenemos: f (x, y, z, t) = y z t + y z t + y z t
Departamento de lgebra

1.1. lgebras de Boole 19 Y ahora, dado que el primer y segundo sumando se diferencian nicamente en un literal podemos repetir el proceso: y z t + y z t = y (z + z ) t = y t. De esta forma, la expresin de f nos queda: f (x, y, z, t) = y t + y z t Notemos que si en la expresin f (x, y, z, t) = y z t + y z t + y z t duplicamos el primer sumando, es decir, la escribimos como f (x, y, z, t) = y z t + y z t + y z t + y z t podemos agrupar el primer sumando con el tercero y el segundo con el cuarto, con lo que nos quedara f (x, y, z, t) = y t + z t que es una expresin mucho ms reducida que la que tenamos al principio. Sin embargo, dejarlo todo a nuestra habilidad para encontrar que trminos agrupar, y que trminos duplicar para simplicar la expresin no es prctico, y puede resultar engorroso. Vamos a buscar un mtodo que nos resuelva este problema de forma ms sencilla. Una primera forma es mediante los diagramas o mapas de Karnaugh. Si analizamos con ms detalle el ejemplo que acabamos de resolver, vemos que lo que hay que hacer es encontrar minitrminos que se diferencien nicamente en un literal. En tal caso, los dos minterm quedan reducidos a un nico trmino (que no es un minterm pues falta alguna variable). Para esto, vamos a dibujar los minterm de forma que dos minterm que se diferencien en un literal sean adyacentes. Un mapa de Karnaugh para una funcin booleana de dos, tres o cuatro variables es precisamente eso: una tabla con tantas celdas como posibles minterm (4 para dos variables, 8 para tres variables y 16 para cuatro variables) de forma que cada celda va asociada a un minterm, y dos celdas adyacentes se diferencian nicamente en un literal, as como dos celdas opuestas en una la o una columna. xy xy xy xy x y y x z z xy xy xy xy zt zt zt zt Por ejemplo, en el mapa correspondiente a 4 variables, las cuatro celdas adyacentes a x y z t son: por la derecha, x y z t, por arriba, x y z t, por la izquierda, x y z t y por abajo, x y z t. Vemos como cada una de estas celdas se diferencia de x y z t en slo un literal (x x en la primera, t t en la segunda, y y en la tercera y z z en la cuarta). Vemos tambin como las celdas opuestas de la misma la se diferencian tambin en slo un literal (en la segunda la, estas celdas opuestas son x y z t y x y z t), as como las celdas opuestas de una columna. Si ahora tenemos una funcin booleana en dos, tres o cuatro variables, su mapa de Karnaugh consiste en la tabla antes descrita, en la que se han destacado aquellas celdas correspondientes a los minterm que aparecen en la forma normal disyuntiva de la funcin. Nosotros aqu las marcaremos con un 1. Ejemplo 1.1.18. Vamos a dibujar los mapas de Karnaugh de las funciones booleanas: f (x, y ) = x y + x y ; f (x, y, z ) = (x + y )(y z ) + y z ; f (x, y, z, t) = x y z t + x y z t + x y z t + x y z t + x y z t + x y z t + x y z t. x y y 1 x 1 xy + xy

Jess Garca Miranda

20

LGEBRAS DE BOOLE xy z z xy zt zt zt zt 1 xy xy 1 1 xyzt + xyzt + xyzt + xyzt + xyzt + xyzt + xyzt 1 1 1 1 1 1 xy 1 xy xy 1 1 xy 1 (x + y )(y z ) + y z 1

Ahora, vamos a dibujar el mapa de Karnaugh de la funcin que ha iniciado esta seccin, es decir, f (x, y, z, t) = x y z t + x y z t + x y z t + x y z t + x y z t + x y z t y vamos a ver cmo podemos aprovechar el mapa para simplicar la funcin, basndonos en lo que hemos hecho previamente. El mapa de Karnaugh correspondiente a la funcin f es: xy zt zt zt zt Las casillas correspondientes a los minterm x y z t y x y z t son adyacentes. Las agrupamos, con lo que tendramos xy zt zt zt zt Y esas dos casillas nos dan lugar al trmino y z t, que son los literales comunes a ambas.
Departamento de lgebra

xy

xy

xy

1 1 1

1 1 1

xy

xy

xy

1 1 1

1 1 1

1.1. lgebras de Boole 21 Las casillas correspondientes a los trminos x y z t y x y z t no son adyacentes, pero se encuentran el lugares opuestos de la misma la. Nos podemos imaginar que el diagrama est unido por los extremos, en cuyo caso s seran adyacentes. Por tanto, las agrupamos tambin.

xy zt zt zt zt 1

xy

xy

xy

1 1

1 1 1

Y el trmino que nos queda es y z t. Repetimos lo mismo con los minterm x y z t y x y z t.

xy zt zt zt zt 1

xy

xy

xy

1 1

1 1 1

Observamos ahora que los dos grupos centrales tambin son adyacentes, luego los agrupamos en uno solo

xy zt zt zt zt 1

xy

xy

xy

1 1

1 1 1

Y ahora podemos volver a utilizar el grupo y z t para agruparlo con y z t, que son tambin adyacentes:
Jess Garca Miranda

22

LGEBRAS DE BOOLE xy zt zt zt zt 1 1 1 1 1 1 xy xy xy

Y nos quedan nicamente dos grupos, que se corresponden con los trminos y t (el cuadrado central) y z t (la tercera la). Por tanto, tenemos que f (x, y, z, t) = y t + z t. En denitiva, todo este proceso trata de formar grupos, lo ms grandes posible, y cuyo tamao sea una potencia de 2. Estos grupos podran ser un rectngulo 2 1 (o 1 2), un cuadrado 2 2, una la, una columna o un rectngulo 2 4 (o 4 2). Cada grupo se corresponde con un trmino en el que slo intervienen los literales comunes a todos los minitrminos que forman el grupo. A la hora de formar grupos hay que tener en cuenta que el extremo derecho est unido con el izquierdo, y que el extremo superior est unido al inferior. Este ejemplo nos dice cmo hemos de proceder. Una vez dibujado el mapa de Karnaugh de una funcin booleana, se buscan los 1 que aparezcan en celdas adyacentes (u opuestas en una misma la o columna). Dos de estas celdas se transforman en un nico producto en el que ha desaparecido el literal en que dieren. As, en el ejemplo del mapa de Karnaugh para la funcin de dos variables, tenemos dos "unos" adyacentes, situados en las celdas x y y x y . Estas dos celdas dan lugar a un producto en el que desaparece el literal diferente (x, x), quedando entonces la expresin booleana y . Lo nico que estamos haciendo, como ya hemos visto, es la transformacin x y + x y = (x + x)y = 1 y = y , donde se ha empleado la propiedad distributiva, la denicin de complementario y de 1. De la misma forma, si encontramos cuatro "unos" adyacentes, formando, bien un cuadrado, bien una lnea (la o columna), podemos sustituirlos por un solo producto en el que se eliminan los dos litereles que dieren en esas cuatro celdas. El objetivo es tratar de agrupar los "unos" en el menor nmero posible de bloques, y de mayor tamao. El tamao tiene que ser una potencia de 2, por lo que podran ser rectngulos 1 2 o 2 1, cuadrados 2 2, las (es decir, rectngulos 4 1), columnas (es decir, rectngulos 1 4) o rectngulos 2 4 o 4 2. Las celdas opuestas en una la o en una columna se consideran adyacentes. Vamos a optimizar las dos funciones que hemos representado mediante mapas de Karnaugh en el ejemplo anterior. En primer lugar consideramos la funcin f : B3 B dada por f (x, y, z ) = (x + y )(y z )+ y z. Su mapa de Karnaugh es: xy z z 1 1 1 xy xy 1 1 xy 1 1

y vemos que podemos agrupar en 3 bloques, lo que da lugar a tres sumandos, que son x y , x y z y x. Es decir, f (x, y, z ) = x y + x y z + x. Vemos tambin que podemos hacer otras agrupaciones en 3 bloques. Por ejemplo,
Departamento de lgebra

xy z z 1 1

xy

xy 1

1.1. lgebras de Boole xy xy 1 1 z z 1 1

23

xy

xy 1

xy 1 1

que dan lugar a las expresiones f (x, y, z ) = x y + x z + x o a f (x, y, z ) = x y + z + x. Sin embargo, no olvidemos que tambin se consideran adyacentes las celdas opuestas de una misma la. Podemos entonces agrupar en los siguientes bloques: xy z z 1 1 1 xy xy 1 1 xy 1 1

lo que da lugar a la expresin f (x, y, z ) = x + y + z . Podemos apreciar como en todas las optimizaciones obtenidas hemos obtenido tres sumandos. Sin embargo, esta ltima parece mejor, pues es la que tiene menos productos en cada sumando. Esto viene de haber obtenido los bloques ms grandes. Por ltimo, vamos a optimizar las funciones booleanas f, g : B4 B dadas por f (x, y, z, t) = x y z t + x y z t + x y z t + x y z t + x y z t + x y z t + x y z t g (x, y, z, t) = x y z t + x y z t + x y z t + x y z t Para esto, agrupamos los "unos" de sus mapas de Karnaugh por bloques: xy zt zt zt zt 1 xy xy 1 1 1 1 1 1 xy zt zt zt zt 1 1 xy 1 xy xy xy 1

lo que da lugar a las expresiones f (x, y, z, t) = x y + x z + y z t y g (x, y, z, t) = y t. Mtodo de Quine - McCluskey Acabamos de ver cmo los mapas de Karnaugh nos ayudan a minimizar el desarrollo de una funcin booleana como suma de productos. Sin embargo, este mtodo se basa en la visualizacin de la funcin en un diagrama, y es poco eciente para funciones de ms de cuatro variables. Sera conveniente tener un proceso que pudiera automatizarse. El mtodo de Quine-McCluskey se ajusta a esta condicin. El mtodo consta de dos partes. En una primera, se determinan que trminos son candidatos a que aparezcan en un desarrollo minimal. En la segunda se seleccionan de estos candidatos los que intervienen en dicho desarrollo. Describamos a continuacin el mtodo. Sabemos que cada minterm en n variables va unido a una secuencia de n bits. Lo primero que vamos a hacer es, dada una funcin booleana como suma de minterm, ordenar las cadenas de bits en una columna, agrupando aquellas en los que aparecen igual cantidad de "unos".
Jess Garca Miranda

LGEBRAS DE BOOLE Comparamos las cadenas de un grupo con las del grupo inmediatamente inferior. Si encontramos dos cadenas que dieren nicamente en un bit, las marcamos y, en una columna situada a la derecha, representamos estas dos cadenas por una nueva en la que sustituimos el bit diferente por . Si aparecieran dos cadenas iguales, se deja nicamente una. Una vez realizadas todas las comparaciones posibles, nos vamos a la nueva columna que hemos obtenido y repetimos el proceso. Se contina as hasta que no podamos obtener una nueva columna. Se seleccionan aquellas cadenas que no hayan sido marcadas. Veamos esto con dos ejemplos:
24

Ejemplo 1.1.19. 1. Comenzamos con la funcin booleana con la que iniciamos el apartado de los mapas de Karnaugh, es decir: f (x, y, z, t) = x y z t + x y z t + x y z t + x y z t + x y z t + x y z t Las seis cadenas de bits son 1111, 0101, 1011, 1101, 0011 y 0111. Formamos la tabla, y vamos comparando: 1111 1111 1011 1011 1101 1101 0111 0111 0101 0101 0011 0011 1111 1011 1101 0111 0101 0011 1 11 1111 1011 1101 0111 0101 0011 1 11 11 1 1111 1 11 1011 11 1 1101 111 0111 0101 0011

1111 1 11 1 11 1111 1 11 1111 1 11 1011 11 1 11 1 1011 11 1 1011 11 1 1101 111 111 1101 111 1101 111 0111 011 011 0111 011 0111 011 0101 101 0101 101 0101 101 0011 01 1 0011 0011 01 1 0 11

Y con esto terminamos todas las comparaciones de la primera columna. Vamos a la segunda. 1111 1 11 1111 1011 11 1 1011 1101 111 1101 0111 011 0111 0101 101 0101 0011 01 1 0011 0 11 1 11 11 1111 1 11 11 11 1 1011 11 1 1 1 111 1101 111 011 011 0111 101 0101 101 01 1 0011 01 1 0 11 0 11

1111 1 11 11 1111 1 11 11 1011 11 1 1 1 1011 11 1 1 1 1101 111 1101 111 0111 011 0111 011 0101 101 0101 101 0011 01 1 0011 01 1 0 11 0 11 Notemos como en las dos ltimas comparaciones no se ha aadido ningn elemento a la tercera columna, pues los que resultaban ya estaban all.
Departamento de lgebra

1.1. lgebras de Boole 25 Y con esto se termina esta primera etapa. Ahora, nos jamos en las cadenas que no estn marcadas, que en este caso son las dos de la ltima columna. La cadena 11 se corresponde con el trmino z t, mientras que la cadena 1 1 se corresponde con el trmino y t. Por tanto, tenemos que f (x, y, z, t) = z t + y t. 2. Tomamos ahora la funcin booleana dada por la expresin x y z + x y z + x y z + x y z + x y z Cada minterm lo representamos ahora mediante una cadena de tres dgitos binarios. Estos son 111, 011, 001, 000 y 101. Ordenamos las cadenas en una columna, situando en primer lugar la que tiene 3 "unos", a continuacin las que tienen 2 "unos" y as sucesivamente. 111 011 101 001 000 Comparamos la cadena del primer nivel con las de segundo. Resulta que hay 2 de las que se diferencia en un nico dgito. Sustituimos este dgito por , luego nos queda 11 y 1 1. Comparamos las cadenas del segundo y tercer nivel, y vemos que 101 y 001 se diferencian en un nico dgito. Esto da lugar a la cadena 01. Por ltimo, comparamos la del tercer nivel con el cuarto, lo que nos da 00. Ordenamos todos estos datos en una nueva columna y todas las cadenas de esta columna que han intervenido en alguna de la segunda las marcamos. 111 011 101 001 000 Repetimos aqu el proceso con la segunda columna 111 011 101 001 000 11 11 01 01 00 1 11 11 01 01 00

Las cadenas a seleccionar son entonces las no marcadas, es decir, 1 y 00, que se corresponden con los trminos z y x y .

La segunda parte de este mtodo consiste en encontrar, de todos los productos booleanos, el menor conjunto de ellos que represente a la expresin booleana dada. Para ello, hacemos una tabla en la que, en el eje horizontal situamos los minterm que nos denan la expresin booleana, mientras que en el eje vertical situamos los productos booleanos que hemos seleccionado en la primera parte. A continuacin sealamos las celdas que se correspondan con un producto booleano y un minterm con la condicin de que todos los literales que intervienen en el producto booleano tambin se encuentren en el minterm. Una vez hecho esto, elegimos la menor cantidad de productos booleanos de forma que uniendo las celdas que estn sealadas en sus las podamos completar una la completa de la tabla. De haber varias posibles elecciones, nos quedamos con aquellas en que los productos booleanos tengan la menor cantidad posible de literales. Ejemplo 1.1.20.
Jess Garca Miranda

26

LGEBRAS DE BOOLE 1. En el primer caso que hemos analizado en el ejemplo anterior, nos quedara la siguiente tabla: xyzt X X xyzt X xyzt X xyzt X xyzt X xyzt X X

zt yt

Nos jamos en la columna del minterm x y z t, y vemos que slo una casilla, la correspondiente al trmino z t, est marcada. Esto signica que este trmino es necesario para la expresin de la funcin. Cuando esto ocurra, diremos que el trmino z t es un implicante primo esencial. De la misma forma, nos jamos en la columna del minterm x y z t y vemos que el trmino y t tambin nos hace falta (es decir, es un implicante primo esencial). Por tanto, no podemos simplicar ms la expresin booleana. 2. En el otro caso que analizamos en el ejemplo anterior, la tabla nos quedara como sigue: xyz X xyz X xyz X xyz X X xyz X

z xy

Al ver esta tabla, vemos que los dos trminos z y x y son implicantes primos esenciales. Despus de todo esto deducimos que: xyz + xyz + xyz + xyz + xyz = xy + z 3. Veamos a continuacin un ejemplo completo. Dada la expresin booleana x y z t + x y z t + x y z t + x y z t + x y z t + x y z t + x y z t vamos a tratar de encontrar una expresin ptima mediante el mtodo de Quine-McCluskey. Las cadenas de bits correspondientes a cada uno de los minterm son 0111, 0101, 1010, 0011, 0001, 0111 y 0010. A partir de ellas construimos la tabla:
a b a c d e b f g d c f e g

0111 0101 1010 0011 1000 0001 0010

1 2 2

01-1 0-11 0-01 10-0 -010 00-1 001-

0- -1

A la izquierda de cada una de las cadenas marcadas hemos colocado unas letras (columna de la izquierda) o nmeros (columna central) que nos indican cada cadena con cual se empareja para formar una cadena en la columna que tiene ms a la derecha. A partir de aqu seleccionamos las cadenas que no estn marcadas, que se corresponden con los productos x y t; y z t; x y z ; x t. Esto nos da la siguiente tabla: xyzt xyzt X xyzt X X xy zt xyzt xyzt xyzt X X X X

xyt yzt xyz xt

X X

A partir de la tabla, encontramos dos implicantes primos esenciales, que son x y t (basta jarnos en la primera columna) y x t (basta jarnos en la segunda columna). Por tanto, en la expresin simplicada de f estos dos trminos tienen que estar. Estos dos trminos cubren 6 de los 7 minterm de la funcin f . El nico que queda sin cubrir es x y z t. Puesto que este puede ser cubierto con cualquiera de los otros dos trminos, y ambos tienen
Departamento de lgebra

1.1. lgebras de Boole 27 el mismo nmero de literales, podemos elegir cualquiera de los dos. En este caso se ve muy claro, pero si no lo que habra que hacer es eliminar de la tabla las las correspondientes a estos dos trminos, y las columnas de los minterm que cubren. xyzt X X

yzt xyz

y vemos que eligiendo cualquiera de los dos, podemos tener cubiertos todos los minterms. Por tanto, f (x, y, z, t) = x y t + x t + y z t = x y t + x t + x y z Si para optimizar esta expresin booleana empleramos los mapas de Karnaugh tendramos dos formas diferentes de agrupar las celdas con "unos": xy zt zt zt zt 1 1 1 1 1 1 xy xy xy 1 zt zt zt zt 1 1 1 1 1 1 xy xy xy xy 1

lo que nos da las dos expresiones que acabamos de ver.

1.1.6.

Conjuntos funcionalmente completos

En secciones precedentes hemos visto cmo a partir de tres puertas lgicas, las puertas AND, OR y NOT, podemos disear circuitos lgicos correspondientes a cualquier funcin booleana, y en la seccin anterior hemos estudiado cmo minimizar el nmero de puertas necesarias para disear tales circuitos. Sin embargo, para construir tales circuitos es necesario emplear tres tipos de puertas lgicas diferentes. En esta seccin vamos a intentar construir cualquier circuito lgico empleando menos puertas diferentes, aunque sea a costa de aumentar el nmero de stas. Comenzamos reduciendo el nmero de puertas distintas necesarias a 2. Proposicin 1.1.3. Las puertas lgicas OR y NOT, o las puertas lgicas AND y NOT son sucientes para la construccin de cualquier circuito lgico. Demostracin: Para ver que las puertas OR y NOT son sucientes, basta comprobar que xy = x + y , lo que nos dice que podemos construir una puerta AND usando las puertas OR y NOT. Esta puerta podra quedar como sigue: x y
. . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . ..

xy

Y por tanto, usando nicamente puertas OR y NOT podemos construir cualquier circuito. De la misma forma, y puesto que x + y = xy se puede ver que usando nicamente las puetas AND y NOT se puede disear cualquier circuito.

Jess Garca Miranda

LGEBRAS DE BOOLE Denicin 8. Sean x, y variables booleanas. Se denen las funciones booleanas y como sigue: x y = x y, x y = x + y.
28

Es decir: 0 0 = 1, 0 0 = 1, 0 1 = 1, 0 1 = 0, 1 0 = 1, 1 0 = 0, 1 1 = 0. 1 1 = 0.

Estos operadores se denotan como NAND (NOT AND) y NOR (NOT OR) respectivamente. Podemos ver que se corresponden con las funciones f14 y f8 tal y como las vimos en el ejemplo ??. Proposicin 1.1.4. Cualquier funcin booleana se puede expresar usando nicamente el operador NAND (resp. NOR). Demostracin: Para comprobar esto, escribimos en primer lugar: x = x x = x x, x + y = x y = x y = (x x) (y y ), es decir, los operadores NOT y OR pueden expresarse utilizando nicamente NAND. La Proposicin 1.1.3 nos dice que cualquier funcn booleana la podemos expresar nicamente con el operador NAND. De la misma forma, puesto que x = x x y x y = (x x) (y y ) deducimos que el operador NOR es suciente para expresar cualquier funcin booleana. . Las puertas correspondientes NAND y NOR se suelen representar como sigue: x y xy x y
. . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . ..

xy

Cualquiera de los circuitos que vimos en la Seccin 3.3.4, o cualquier otro que se nos ocurra podemos ahora disearlo usando nicamente la puerta NAND (o la puerta NOR). Esta puerta se construye de forma sencilla con transistores, tanto con la tecnologa de semiconductores como con las tcnicas ms recientes de fabricacin de microcircuitos.

Departamento de lgebra

Das könnte Ihnen auch gefallen