Saltar al contenido

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

EscribisteCódigoPor qué se rechazaCorrección ofrecida
A == Bunsupported-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

Véase también

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.