Una entrada sin asignar no es FALSO: asignaciones incompletas
Una entrada sin valor no es FALSO. Evaluar A AND B con A = VERDADERO y B sin asignar no da ningún valor, y el motor dice qué entrada falta en lugar de adivinar.
La evaluación de abajo asigna A = VERDADERO y deja fuera a B. El resultado se informa como incompleto, con B en la lista de entradas sin valor, y no se da ningún valor de salida. Una herramienta que pusiera B a FALSO por defecto habría devuelto FALSO y habría parecido terminada; una que la pusiera a VERDADERO habría devuelto VERDADERO. Las dos habrían inventado datos.
El motor tampoco llega a una respuesta por cortocircuito. FALSE AND B podría decidirse sin B, y algunos evaluadores lo dirían; la regla del motor es que se exige una asignación completa antes de informar de cualquier valor, para que el resultado de una regla nunca dependa de qué entradas se rellenaron primero. Las comprobaciones se ejecutan solo sobre asignaciones completas, que es lo que hace de una tabla de verdad una tabla.
El patrón importa en formularios y en APIs: una casilla sin marcar, un campo ausente y una columna NULL son todos «sin valor», y tratarlos como FALSO es una decisión que la regla debe tomar explícitamente, con una entrada como consent_given cuya ausencia es un FALSO por definición, no por accidente. El error de SQL sobre NULL es el mismo punto en otro lenguaje.
Evaluación incompleta
A AND B con A = TRUE y B sin asignar: resultado sin valor (asignación incompleta); entradas sin valor: B.
El error habitual
Suponer que una entrada que nadie fijó es FALSO. En el modelo no tiene valor; en un formulario puede significar «no preguntado»; en una base de datos es NULL. Convierte el valor por defecto en una regla enunciada, y el informe de asignación incompleta del motor deja de aparecer por la razón correcta.
Preguntas
¿El motor evalúa alguna vez con una asignación parcial?
Informa de la evaluación como incompleta y nombra las entradas que faltan; no produce ningún valor de salida. La exportación a Python se comporta igual y lanza un error ante una entrada ausente.
¿Cómo modelo una entrada opcional?
Con dos entradas, una que dice si el valor se conoce y otra que da el valor, por ejemplo banned_known AND NOT banned. Cada combinación es entonces una fila completa y las comprobaciones la cubren.
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
- NULL no es FALSO: la lógica trivaluada de SQL
- Operadores booleanos en Python: and, or, not, precedencia y errores comunes
- Compuerta NOT (inversor): tabla de verdad, símbolo y el operador NOT
- VERDADERO y FALSO (1 y 0): las constantes de la lógica booleana
- Tabla de verdad: definición, ejemplo y equivalente en inglés
- Lista de revisión de reglas de decisión (para analistas y revisores)
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.