Lección 6: Las leyes de De Morgan
Cómo mover un NOT a través de AND y OR sin cambiar el significado: la negación de una conjunción da una disyunción de negaciones, y al revés. Cuatro pasos, nivel intermedio, unos doce minutos, que terminan en la forma normal negativa.
Lleva NOT a través de AND y OR correctamente: la negación de una conjunción da una disyunción de negaciones, y viceversa.
El primer paso niega una regla de puerta: NOT (has_key AND knows_code) es NOT has_key OR NOT knows_code, la puerta sigue cerrada cuando falta cualquiera de las dos cosas. El segundo niega un OR: NOT (member OR invited) es NOT member AND NOT invited, ni lo uno ni lo otro. El tercer paso es el desliz clásico, NOT A AND NOT B ofrecido como negación de A AND B, mostrado incorrecto en una fila concreta. El cuarto aplica las leyes repetidamente a NOT ((A OR B) AND C), llegando a NOT (A OR B) OR NOT C y después a (NOT A AND NOT B) OR NOT C, donde cada NOT está sobre una entrada.
La lección lleva cinco afirmaciones verificadas: las dos leyes, la no equivalencia del desliz, y los dos pasos de reescritura del ejemplo anidado. Los ejercicios te piden empujar NOT hacia dentro en dos expresiones, encontrar la asignación que expone el desliz, y clasificar NOT (A OR B) <-> (NOT A AND NOT B), que es una tautología porque la ley se cumple en todas las filas.
La forma normal negativa, el punto final del cuarto paso, es la primera etapa del conversor a formas normales del motor y de sus construcciones solo con NAND y solo con NOR; la página de la ley de De Morgan demuestra las dos identidades, y las páginas de errores sobre «NOT sobre AND» y «ni, ni» son las dos mitades por separado.
Haz esta lección de forma interactiva en la app
Pasos
1. NOT sobre AND
Una puerta se abre con la llave y el código. Permanece cerrada cuando eso no ocurre: NOT (has_key AND knows_code).
Según De Morgan, es lo mismo que NOT has_key OR NOT knows_code: la puerta sigue cerrada si falta cualquiera de las dos cosas. El AND se convierte en OR cuando el NOT pasa al interior.
stays_shut := NOT (has_key AND knows_code) · salidarewritten := NOT has_key OR NOT knows_code · salida has_key: la persona tiene la llave; knows_code: la persona conoce el código;
| # | has_key | knows_code | stays_shut | rewritten |
|---|---|---|---|---|
| 0 | FALSO | FALSO | VERDADERO | VERDADERO |
| 1 | FALSO | VERDADERO | VERDADERO | VERDADERO |
| 2 | VERDADERO | FALSO | VERDADERO | VERDADERO |
| 3 | VERDADERO | VERDADERO | FALSO | FALSO |
Compara stays_shut con rewritten: el verificador demuestra que son equivalentes.
equivalent stays_shut / rewritten · se cumple
2. NOT sobre OR
«Ni socia ni invitada» es NOT (member OR invited).
Segunda ley de De Morgan: equivale a NOT member AND NOT invited. El OR se convierte en AND: ni… ni significa que faltan las dos cosas.
neither := NOT (member OR invited) · salidaboth_missing := NOT member AND NOT invited · salida member: la persona es socia; invited: la persona tiene una invitación;
| # | member | invited | neither | both_missing |
|---|---|---|---|---|
| 0 | FALSO | FALSO | VERDADERO | VERDADERO |
| 1 | FALSO | VERDADERO | FALSO | FALSO |
| 2 | VERDADERO | FALSO | FALSO | FALSO |
| 3 | VERDADERO | VERDADERO | FALSO | FALSO |
Haz que neither valga TRUE. ¿En cuántas de las cuatro filas vale TRUE?
equivalent neither / both_missing · se cumple
3. El error clásico
Es tentador «repartir» el NOT sin cambiar el operador, pero NOT (A AND B) no es NOT A AND NOT B.
Difieren, por ejemplo, con A=TRUE, B=FALSE: la primera da TRUE y el error da FALSE. Siempre que metas un NOT hacia dentro, intercambia AND y OR.
correct := NOT (A AND B) · salidaslip := NOT A AND NOT B · salida | # | A | B | correct | slip |
|---|---|---|---|---|
| 0 | FALSO | FALSO | VERDADERO | VERDADERO |
| 1 | FALSO | VERDADERO | VERDADERO | FALSO |
| 2 | VERDADERO | FALSO | VERDADERO | FALSO |
| 3 | VERDADERO | VERDADERO | FALSO | FALSO |
Ajusta A=TRUE, B=FALSE y compara correct con slip.
not-equivalent correct / slip · se cumple
4. Llevar NOT hasta el fondo
Aplica las leyes repetidamente hasta llegar a la forma normal negativa, donde NOT afecta directamente a las entradas:
NOT ((A OR B) AND C) → NOT (A OR B) OR NOT C → (NOT A AND NOT B) OR NOT C.
Cada paso es una equivalencia, así que el resultado es equivalente al original, y Tangibool lo confirma con una comprobación exacta.
original := NOT ((A OR B) AND C) · salidamiddle := NOT (A OR B) OR NOT C · salidapushed_in := (NOT A AND NOT B) OR NOT C · salida | # | A | B | C | original | middle | pushed_in |
|---|---|---|---|---|---|---|
| 0 | FALSO | FALSO | FALSO | VERDADERO | VERDADERO | VERDADERO |
| 1 | FALSO | FALSO | VERDADERO | VERDADERO | VERDADERO | VERDADERO |
| 2 | FALSO | VERDADERO | FALSO | VERDADERO | VERDADERO | VERDADERO |
| 3 | FALSO | VERDADERO | VERDADERO | FALSO | FALSO | FALSO |
| 4 | VERDADERO | FALSO | FALSO | VERDADERO | VERDADERO | VERDADERO |
| 5 | VERDADERO | FALSO | VERDADERO | FALSO | FALSO | FALSO |
| 6 | VERDADERO | VERDADERO | FALSO | VERDADERO | VERDADERO | VERDADERO |
| 7 | VERDADERO | VERDADERO | VERDADERO | FALSO | FALSO | FALSO |
Compara original con pushed_in y luego prueba un paso intermedio propio.
equivalent original / middle · se cumpleequivalent original / pushed_in · se cumple
Ejercicios
- Reescribe
NOT (member OR invited)de modo queNOTsolo afecte a entradas individuales. (write-equivalent) - Lleva el
NOTdeNOT (A AND (B OR NOT C))hasta las entradas. (write-equivalent) - Demuestra que el error de verdad lo es: encuentra una asignación en la que
correctyslipdifieran. (find-assignment) - Clasifica
NOT (A OR B) <-> (NOT A AND NOT B). (classify)
Haz esta lección de forma interactiva en la app
Preguntas
¿Las leyes funcionan con tres o más operandos?
Sí: NOT (A AND B AND C) es NOT A OR NOT B OR NOT C, toda la cadena se invierte de una vez. El motor aplica la ley a la compuerta n-aria en un paso.
¿Para qué sirve la forma normal negativa?
Es la forma desde la que parte toda conversión a forma normal, y la forma en que una fórmula es más fácil de leer en voz alta: cada NOT se aplica a una entrada. El cuarto paso la produce a mano; el conversor lo hace por ti.
Relacionado
Leyes
Herramientas
Ejercicios
Véase también
- Leyes de De Morgan: (A·B)' = A' + B', con demostración y ejemplos
- NOT (A AND B) no es NOT A AND NOT B: el error de De Morgan
- «Ni A ni B» es NOT A AND NOT B
- De Morgan en la práctica: NOT (A AND B) reescrito y verificado
- El error de De Morgan: NOT (A AND B) frente a NOT A AND NOT B
- Forma normal negativa: definición, ejemplo y equivalente en inglés
- Lección 7: Leyes de simplificación
- Lección 10: Formas normales: FND, FNC, mintérminos y maxtérminos
Lecciones
Generado a partir del motor de Tangibool, semántica tangibool-semantics/1, motor 1.0.0, compilación . Cada tabla, mapa, simplificación y veredicto de estas páginas lo calculó el motor de Tangibool al compilar el sitio, y cada afirmación la volvió a comprobar el mismo verificador exacto que usa la app. Los límites se indican donde aplican. © 2026 Foreranger LTD.