En lógica y matemáticas , un valor de verdad , a veces llamado valor lógico , es un valor que indica la relación de una proposición con la verdad , que en la lógica clásica solo tiene dos valores posibles ( verdadero o falso ). [1] [2]
En algunos lenguajes de programación, cualquier expresión puede evaluarse en un contexto que espera un tipo de datos booleano . Normalmente (aunque esto varía según el lenguaje de programación) las expresiones como el número cero , la cadena vacía , las listas vacías y null se tratan como falsas, y las cadenas con contenido (como "abc"), otros números y objetos se evalúan como verdaderas. A veces, estas clases de expresiones se denominan falsy y truthy . Por ejemplo, en Lisp , nil , la lista vacía, se trata como falsa y todos los demás valores se tratan como verdaderos. En C , el número 0 o 0.0 es falso y todos los demás valores se tratan como verdaderos.
En JavaScript , la cadena vacía ( ""
), null
, undefined
, NaN, +0, −0 y false
[3] a veces se denominan falsy (cuyo complemento es truthy ) para distinguir entre booleanos con verificación de tipo estricta y booleanos forzados (consulte también: Sintaxis de JavaScript#Conversión de tipo ). [4] A diferencia de Python, los contenedores vacíos (matrices, mapas, conjuntos) se consideran verdaderos. Los lenguajes como PHP también utilizan este enfoque.
En la lógica clásica , con su semántica prevista, los valores de verdad son verdadero (denotado por 1 o el verum ⊤), y falso o falso (denotado por 0 o el falsum ⊥); es decir, la lógica clásica es una lógica de dos valores . Este conjunto de dos valores también se denomina dominio booleano . La semántica correspondiente de los conectivos lógicos son las funciones de verdad , cuyos valores se expresan en forma de tablas de verdad . El bicondicional lógico se convierte en la relación binaria de igualdad , y la negación se convierte en una biyección que permuta verdadero y falso. La conjunción y la disyunción son duales con respecto a la negación, que se expresa mediante las leyes de De Morgan :
Las variables proposicionales se convierten en variables en el dominio booleano. La asignación de valores a las variables proposicionales se denomina valoración .
Mientras que en la lógica clásica los valores de verdad forman un álgebra de Boole , en la lógica intuicionista y, de manera más general, en las matemáticas constructivas , los valores de verdad forman un álgebra de Heyting . Dichos valores de verdad pueden expresar diversos aspectos de la validez, incluida la localidad, la temporalidad o el contenido computacional.
Por ejemplo, se pueden utilizar los conjuntos abiertos de un espacio topológico como valores de verdad intuicionistas, en cuyo caso el valor de verdad de una fórmula expresa dónde se cumple la fórmula, no si se cumple o no.
En la realizabilidad, los valores de verdad son conjuntos de programas, que pueden entenderse como evidencia computacional de la validez de una fórmula. Por ejemplo, el valor de verdad de la afirmación "para cada número existe un primo mayor que él" es el conjunto de todos los programas que toman como entrada un número , y como salida un primo mayor que .
En la teoría de categorías , los valores de verdad aparecen como elementos del clasificador de subobjetos . En particular, en un topos, a cada fórmula de lógica de orden superior se le puede asignar un valor de verdad en el clasificador de subobjetos.
Aunque un álgebra de Heyting puede tener muchos elementos, esto no debe entenderse como que existan valores de verdad que no sean ni verdaderos ni falsos, porque la lógica intuicionista demuestra ("no es el caso que no sea ni verdadero ni falso"). [5]
En la teoría de tipos intuicionista , la correspondencia Curry-Howard exhibe una equivalencia de proposiciones y tipos, según la cual la validez es equivalente a la presencia de un tipo.
Para otras nociones de valores de verdad intuicionistas, véase la interpretación de Brouwer–Heyting–Kolmogorov y Lógica intuicionista § Semántica .
Las lógicas multivaluadas (como la lógica difusa y la lógica de relevancia ) permiten más de dos valores de verdad, que posiblemente contengan alguna estructura interna. Por ejemplo, en el intervalo unitario [0,1] dicha estructura es un orden total ; esto puede expresarse como la existencia de varios grados de verdad .
No todos los sistemas lógicos son veritativos en el sentido de que los conectores lógicos puedan interpretarse como funciones de verdad. Por ejemplo, la lógica intuicionista carece de un conjunto completo de valores de verdad porque su semántica, la interpretación de Brouwer-Heyting-Kolmogorov , se especifica en términos de condiciones de demostrabilidad y no directamente en términos de la verdad necesaria de las fórmulas.
Pero incluso las lógicas no valorativas de verdad pueden asociar valores con fórmulas lógicas, como se hace en la semántica algebraica . La semántica algebraica de la lógica intuicionista se da en términos de álgebras de Heyting , en comparación con la semántica del álgebra de Boole del cálculo proposicional clásico.