# Formas canónicas (álgebra de Boole)

En Álgebra booleana, se conoce como término canónico de una función lógica a todo producto o suma en la cual aparecen todas las variables en su forma directa o inversa. Una Función lógica que está compuesta por operador lógico puede ser expresada en forma canónica usando los conceptos de minterm y maxterm. Todas las funciones lógicas son expresables en forma canónica, tanto como una "suma de minterms" como "producto de maxterms". Esto permite un mejor análisis para la simplificación de dichas funciones, lo que es de gran importancia para la minimización de circuitos digitales.
Una función booleana expresada como una disyunción lógica (OR) de minterms es usualmente conocida la "suma de productos", y su Dual de Morgan es el "producto de sumas", la cual es una función expresada como una conjunción lógica (AND) de maxterms.

## Mintérminos

Para una función booleana de $n$ variables ${x_{1},...x_{n}}$, un producto booleano en el que cada una de las $n$ variables aparece una sola vez (negada o sin negar) es llamado minitérmino. Es decir, un minitérmino es una expresión lógica de n variables consistente únicamente en el operador conjunción lógica (AND) y el operador complemento o negación (NOT).
Por ejemplo, $abc$, $ab'c$ y $abc'$ son ejemplos de minterms para una función booleana con las tres variables $a$, $b$ y $c$.

### Indexando minitérminos

* ${\begin{array}{|c|c l||c|c|c|}\hline n&m&&a&b&c\\\hline 0&m_{0}=&a'b'c'&0&0&0\\1&m_{1}=&a'b'c&0&0&1\\2&m_{2}=&a'bc'&0&1&0\\3&m_{3}=&a'bc&0&1&1\\4&m_{4}=&ab'c'&1&0&0\\5&m_{5}=&ab'c&1&0&1\\6&m_{6}=&abc'&1&1&0\\7&m_{7}=&abc&1&1&1\\\hline \end{array}}$
En general, uno asigna a cada mintermino (escribiendo las variables que lo componen en el mismo orden), un índice basado en el valor binario del mintermino.
Un término negado, como $a'$ es considerado como el número binario 0 y el término no negado $a$ es considerado como un 1.
Por ejemplo, se asociaría el número 6 con $abc'$, y nombraríamos la expresión con el nombre $m_{6}$. Entonces $m_{0}$ de tres variables es $a'b'c'$ y $m_{7}$ debería ser $abc$ al ser $111_{(2}$.
Se puede observar que cada minterm solo devuelve verdadero, (1), con una sola entrada de las posibles.
Por ejemplo, el minitérmino 5, $ab'c$ es verdadero solo cuando a y c son ciertos y b es falso - la entrada a = 1, b = 0, c = 1 da resultado 1.

### Función equivalente

* ${\begin{array}{|c||c|c||c|}\hline n&a&b&f(a,b)\\\hline 0&0&0&1\\1&0&1&0\\2&1&0&0\\3&1&1&1\\\hline \end{array}}$
Si tenemos una tabla de verdad de una función lógica: f(a,b), es posible escribir la función como "suma de productos". Por ejemplo, dada la tabla de verdad.
Observamos que las filas con resultado '1 son la primera y la cuarta, entonces podremos escribir f como la suma de los mintérminos: $f(a,b)=m_{0}+m_{3}$.
Si queremos verificar esto:
    $f(a,b)=m_{0}+m_{3}=(a'b')+(ab)$
tendremos que la tabla de verdad de la función, calculándola directamente, será la misma.
Esta expresión aplicada a interruptores sería el de la figura, se puede ver que hay dos ramas, en la superior dos interruptores inversos: a’ y b’ puestos en serie, lo que es equivalente a a’b’, en las inferiores directos: a y b también en serie que es equivalente a ab, estos dos circuitos puestos en paralelo resultan a’b’ + ab.

## Maxitérminos

Un maxitérmino es una expresión lógica de n variables que consiste únicamente en la disyunción lógica y el operador complemento o negación. Los maxterms son una expresión dual de los minitérminos. En vez de usar operaciones AND utilizamos operaciones OR y procedemos de forma similar.
Por ejemplo, los siguientes términos canónicos son maxitérminos:
    $a+b'+c$
    $a'+b+c$

### Dualización

* ${\begin{array}{|c|c l|c l||c|c|c|}\hline n&M&&m&&a&b&c\\\hline 0&M_{0}=&a+b+c&m_{0}=&a'b'c'&0&0&0\\1&M_{1}=&a+b+c'&m_{1}=&a'b'c&0&0&1\\2&M_{2}=&a+b'+c&m_{2}=&a'bc'&0&1&0\\3&M_{3}=&a+b'+c'&m_{3}=&a'bc&0&1&1\\4&M_{4}=&a'+b+c&m_{4}=&ab'c'&1&0&0\\5&M_{5}=&a'+b+c'&m_{5}=&ab'c&1&0&1\\6&M_{6}=&a'+b'+c&m_{6}=&abc'&1&1&0\\7&M_{7}=&a'+b'+c'&m_{7}=&abc&1&1&1\\\hline \end{array}}$
El complemento de un minterm es su respectivo maxitérmino. Esto puede ser fácilmente verificado usando la Ley de De Morgan. Por ejemplo:
    $m_{1}'=M_{1}$
    $(a'b)'=a+b'$

### Indexando maxitérminos

Para indexar maxitérminos lo haremos justo de la forma contraria a la que seguimos con los minterms. Se asigna a cada maxterm un índice basado en el complemento del número binario que representa (otra vez asegurándonos que las variables se escriben en el mismo orden, usualmente alfabético). Por ejemplo, para una función de tres variables f(a,b,c) podemos asignar $M_{6}$ (Maxitérmino 6) al maxitérmino: $a'+b'+c$. De forma similar $M_{0}$ de tres variables debería ser $a+b+c$ y $M_{7}$ es $a'+b'+c'$.
Se puede ver fácilmente que un maxitérmino sólo da como resultado un cero para una única entrada de la función lógica. Por ejemplo, el maxitérmino 5, $a'+b+c'$, es falso solo cuando a y c son ciertos y b es falso - la entrada a = 1, b = 0, c = 1 da como resultado un cero.

### Función equivalente

* ${\begin{array}{|c||c|c||c|}\hline n&a&b&f(a,b)\\\hline 0&0&0&1\\1&0&1&0\\2&1&0&0\\3&1&1&1\\\hline \end{array}}$
Si tenemos una tabla de verdad de una función lógica, f(a,b), es posible escribir la función como "producto de sumas". Por ejemplo, dada la tabla de verdad.
Observamos que las filas que tiene como salida un 0 son la segunda y la tercera, entonces podemos escribir f como un producto de maxitérminos $M_{1}M_{2}$.
Si queremos verificar esto:
    $f(a,b)=(a+b')(a'+b)$
tendremos que la tabla de verdad de la función, calculándola directamente, será la misma.
La aplicación en un circuito de interruptores, es el del esquema, donde se puede ver los dos interruptores superiores a y a', y los inferiores b' y b.
En primer lugar tenemos puestos en paralelo a y b', lo que sería a+b', y a continuación, a' y b en paralelo que sería a'+b, estos dos circuitos parciales puestos en serie son equivalentes a (a+b')(a'+b), las distintas combinaciones de a y b, corresponden, como se puede ver a la tabla de verdad.
Este circuito está cerrado solo en dos de las cuatro combinaciones posibles: a b con los interruptores en esta posición se conecta la entrada con la salida y a’ b’ que también cierra circuito, para las otras combinaciones el circuito está abierto.
* $Ent.\,$
* $Sal.\,$
Este circuito y el anterior son claramente diferentes, pero los dos corresponden a la misma tabla de verdad y por lo tanto equivalentes.
Aun partiendo de la misma expresión booleana, se pueden realizar distintas configuraciones equivalentes, así se puede ver en esta segunda figura.
Se puede demostrar la equivalencia, simplificando la función, partiendo de:
    $f(a,b)=(a+b')(a'+b)$
Realizando las multiplicaciones, tendremos:
    $f(a,b)=aa'+ab+b'a'+b'b$
Simplificando:
    $f(a,b)=ab+b'a'$
con lo que tenemos la función obtenida por minitérminos.