El doble igual (==) compara valores; para equivalencia lógica usa ↔
== compara dos valores en un programa y devuelve un booleano. Entre dos fórmulas booleanas calcula el bicondicional; como afirmación de que dos fórmulas son equivalentes es otra cosa completamente distinta. El analizador rechaza A == B y ofrece <->.
El diagnóstico registrado abajo: == no es un operador de expresión; usa <-> cuando los dos lados deben tener el mismo valor, o el espacio de comparación para comparar dos fórmulas. La distinción es la que importa. A <-> B es una fórmula con tabla de verdad, VERDADERA en las dos filas en que A y B coinciden. «F es equivalente a G» es una afirmación sobre dos tablas, verdadera cuando coinciden en todas las filas, y es un veredicto que da el comprobador de equivalencia, con un contraejemplo cuando falla.
En código las dos cosas coinciden solo por casualidad: (a == b) entre dos booleanos es el bicondicional de los dos valores en ese momento, no una demostración sobre las funciones que los produjeron. Una prueba unitaria que afirma f(x) == g(x) para un x comprueba una fila; el comprobador de equivalencia las comprueba todas.
Python añade encima una trampa de precedencia, not a == b, que el analizador también rechaza; el error sobre precedencia la cubre. El error sobre el distinto cubre !=, que entre booleanos es el o exclusivo.
Lo que dice el analizador
| Escribiste | Código | Por qué se rechaza | Corrección ofrecida |
|---|---|---|---|
| A == B | unsupported-operator | `==` is not an expression operator. Use `<->` when both sides must have the same value, or the Compare workbench to compare two formulas. | Replace with <-> |
El error habitual
Introducir NOT (A AND B) == NOT A OR NOT B para probar De Morgan. El analizador lo rechaza; la herramienta adecuada es el comprobador de equivalencia con una fórmula a cada lado, que demuestra la ley en las cuatro filas.
Preguntas
¿A <-> B es siempre VERDADERO cuando A y B son fórmulas equivalentes?
Sí: si dos fórmulas tienen la misma tabla, su bicondicional es VERDADERO en todas las filas, una tautología. Ese es el puente entre el operador y el veredicto, y la comprobación de tautología sobre F <-> G es otra forma de hacer la misma pregunta.
¿Y el === de JavaScript?
Lo mismo: igualdad estricta de dos valores. Tradúcelo a <-> cuando los dos lados son fórmulas booleanas, y recuerda que compara valores, no funciones.
Relacionado
Herramientas
- Comprobador de equivalencia lógica: dos expresiones, veredicto exacto, contraejemplo
- Generador de tablas de verdad: cualquier expresión booleana, hasta 12 variables, con columnas intermedias
Véase también
- Bicondicional (↔, si y solo si): tabla de verdad y ejemplos
- «=» no es un operador booleano: usa ↔ o compara las fórmulas
- != entre booleanos es XOR
- La precedencia cambia entre lenguajes: not a == b en Python
- Equivalencia lógica: definición, ejemplo y equivalente en inglés
- Comprobador de equivalencia lógica: dos expresiones, veredicto exacto, contraejemplo
- Operadores booleanos en Python: and, or, not, precedencia y errores comunes
- Operadores lógicos en JavaScript: &&, ||, !, truthiness y precedencia
Errores comunes
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.