Electrónica Digital · Tema 13

Álgebra booleana

De filas a reglas: seis postulados que reemplazan tablas enteras, verificados por fuerza bruta.

01 · Punto de partida

Tablas que caben en el bolsillo

A·1 = A vale para las 2 filas sin dibujarlas: los postulados comprimen infinitas tablas en reglas. Con 6 reglas + dualidad demostrás el resto (absorción, De Morgan) y simplificás circuitos enteros.

  • ¿Cuáles son las 6 reglas base?
  • ¿Qué es la dualidad y por qué regala teoremas?
  • ¿Cómo se verifica una identidad?
  • ¿Qué orden tienen las operaciones?

02 · Postulados

Las 6 + 3 de regalo

Huntington (más duales implícitos).
ReglaSumaProducto (dual)
IdentidadA+0 = AA·1 = A
DominanciaA+1 = 1A·0 = 0
ComplementoA+~A = 1A·~A = 0
ConmutativaA+B = B+AA·B = B·A
DistributivaA+(B·C) = (A+B)·(A+C)A·(B+C) = A·B+A·C

La distributiva “rara” (suma sobre producto) no existe en aritmética: en booleana sí. Verificarla por tabla convence más que creerla.

03 · Dualidad

Dos teoremas por uno

Intercambiá +/· y 0/1 en una identidad válida y obtenés otra válida gratis: A+A·B = A tiene por dual A·(A+B) = A (absorción doble). La mitad de la tabla anterior es dual de la otra mitad.

identidad → cambiar +/·, 0/1 →dual válido →mitad del trabajo

04 · Orden y notación

Quién opera primero

Orden
NOT, luego AND, luego OR (como −, ×, +): A+~A·B = A+(~A·B). Paréntesis mandan siempre.
Notación
Suma +, producto por yuxtaposición o ·, NOT con ~ o barra: A+B, AB, ~A. En código: ||, &&, !.
Involución
~~A = A: doble negación cancela (dos NOT en serie = cable con demora).
Idempotencia
A+A = A y A·A = A: repetir no suma. x+x en código duplica; en lógica repite.

05 · Reglas en código

Fuerza bruta contra la duda

Toda identidad se prueba en 2–4 filas: el verificador universal.

Python en tu navegador. Inventá tu identidad y sometela.

def vale_siempre(f, n=1):
    ok = all(f(*[(i >> (n-1-k)) & 1 for k in range(n)]) for i in range(2**n))
    print("vale siempre" if ok else "FALLA en alguna fila")
    return ok


vale_siempre(lambda a: (a or (not a)))
vale_siempre(lambda a: (a and (not a)) == 0)
vale_siempre(lambda a, b: (a or (a and b)) == a, n=2)

Las tres valen siempre (complemento y absorción). ¿Y A+(B·C) == (A+B)·(A+C)?

La distributiva rara

vale_siempre(lambda a, b, c: (a or (b and c)) == ((a or b) and (a or c)), n=3)
vale_siempre(lambda a: (not (not a)) == a)

06 · Analogía programador

Axiomas y refactors

  1. 1
    Postulados = axiomas testeados.

    Como los axiomas de un sistema de tipos: se asumen, todo lo demás se deriva y se testea.

  2. 2
    Absorción = simplificar ifs.

    if (a || (a && b)) → if (a): el linter lo hace; en silicio ahorra puertas.

  3. 3
    Dual = simetría.

    Como dualidad en optimización o De Morgan en conjuntos: una prueba, dos resultados.

07 · Exploración

Laboratorio: verificador

Elegí una identidad: el laboratorio la evalúa en todas sus filas y dicta veredicto.

LABORATORIO 13

Verificador

A+~A = 1 · 2/2 ✓

Filas2
Cumplen2/2
DualA·~A=0
VeredictoVale siempre ✓

A+~A=1: 2/2 filas.

Preguntas para explorar

  1. Probá A+A·B=A. ¿Filas? ¿Dual? ¿Por qué el dual también vale?
  2. ¿Qué identidad usa 2 variables y cuál 1? ¿Cuántas filas cada una?
  3. Inventá una falsa (ej. A+1=A) y pasala por vale_siempre(). ¿Qué fila falla?
Ver respuestas sugeridas
  1. 4 filas, dual A·(A+B)=A: vale por dualidad (teorema gratis del Tema 13).
  2. Absorción: 2 vars, 4 filas. Complemento/idempotencia: 1 var, 2 filas.
  3. Falla en A=0 (0+1=1≠0): una fila basta para voltear una “regla”.

08 · Comprensión

Confusiones frecuentes

«+ suma: 1+1 = 2 (o 0)»

1+1 = 1 en OR (idempotencia): el acarreo no existe acá. Sumar es otro circuito (Tema 23).

«Los postulados se demuestran»

Se asumen (son la base); lo demás se demuestra desde ellos. Pedir prueba de A+0=A es pedir demasiado.

«La distributiva rara es falsa»

La aritmética engaña: verificala por tabla (8 filas) y rendite. Booleana ≠ aritmética.

«AND antes que OR, siempre»

Sí por convención, pero el paréntesis explícito no cuesta y salva lectores (y vos en 6 meses).

09 · Práctica guiada

Ejercicios de reglas

Ejercicio 1: absorción a mano

Demostrá A+A·B = A factorizando (no por tabla) e indicá qué postulado usás en cada paso.

Ver solución razonada

A·1+A·B = A·(1+B) = A·1 = A (identidad, distributiva, dominancia, identidad). Cuatro pasos, cero tablas.

Ejercicio 2: duales

Escribí el dual de: A+~A=1; A·(A+B)=A; A+(B·C)=(A+B)·(A+C). Verificá uno con vale_siempre().

Ver solución

A·~A=0; A+A·B=A; A·(B+C)=A·B+A·C. El tercero es la distributiva “normal”: dualidad cierra el círculo.

Ejercicio 3: cazar la falsa

¿Vale (A+B)·(A+C) = A+(B·C)? ¿Y A·B+A·C = A·(B+C)? Una es teorema, la otra también: demostralas.

Ver solución

Ambas valen (son duales entre sí): la primera es la distributiva rara, la segunda la normal. Fuerza bruta de 8 filas.

10 · Síntesis

Ideas para recordar

  • 6 postulados + dualidad = todo lo demás.
  • A+(B·C) = (A+B)·(A+C) también vale.
  • Absorción e idempotencia simplifican ifs y puertas.
  • Verificar = 2–4 filas, siempre.
  • Orden: NOT, AND, OR; paréntesis explícitos.

Base axiomática lista. Ahora los teoremas famosos: en el próximo tema, De Morgan y más.