Truth value

Source: Wikipedia, the free encyclopedia.

In logic and mathematics, a truth value, sometimes called a logical value, is a value indicating the relation of a proposition to truth, which in classical logic has only two possible values (true or false).[1][2] Truth values are used in computing as well as various types of logic.

Computing

In some programming languages, any

zero, the empty string, empty lists, and null are treated as false, and strings with content (like "abc"), other numbers, and objects evaluate to true. Sometimes these classes of expressions are called falsy and truthy. For example, in Lisp, nil, the empty list, is treated as false, and all other values are treated as true. In C
, the number 0 or 0.0 is false, and all other values are treated as true.

In

−0 and false[3] are sometimes called falsy (of which the complement is truthy) to distinguish between strictly type-checked and coerced Booleans (see also: JavaScript syntax#Type conversion).[4] As opposed to Python, empty containers (Arrays, Maps, Sets) are considered truthy. Languages such as PHP
also use this approach.

Classical logic

··
true conjunction
¬
··
false disjunction
Negation interchanges
true with false and
conjunction with disjunction.

In

dual with respect to negation, which is expressed by De Morgan's laws
:

¬(pq) ⇔ ¬p ∨ ¬q
¬(pq) ⇔ ¬p ∧ ¬q

Propositional variables become variables in the Boolean domain. Assigning values for propositional variables is referred to as valuation.

Intuitionistic and constructive logic

Whereas in classical logic truth values form a

constructive mathematics, the truth values form a Heyting algebra
. Such truth values may express various aspects of validity, including locality, temporality, or computational content.

For example, one may use the open sets of a topological space as intuitionistic truth values, in which case the truth value of a formula expresses where the formula holds, not whether it holds.

In realizability truth values are sets of programs, which can be understood as computational evidence of validity of a formula. For example, the truth value of the statement "for every number there is a prime larger than it" is the set of all programs that take as input a number , and output a prime larger than .

In category theory, truth values appear as the elements of the subobject classifier. In particular, in a topos every formula of higher-order logic may be assigned a truth value in the subobject classifier.

Even though a Heyting algebra may have many elements, this should not be understood as there being truth values that are neither true nor false, because intuitionistic logic proves ("it is not the case that is neither true nor false").[5]

In intuitionistic type theory, the Curry-Howard correspondence exhibits an equivalence of propositions and types, according to which validity is equivalent to inhabitation of a type.

For other notions of intuitionistic truth values, see the Brouwer–Heyting–Kolmogorov interpretation and Intuitionistic logic § Semantics.

Multi-valued logic

degrees of truth
.

Algebraic semantics

Not all

necessary truth
of formulae.

But even non-truth-valuational logics can associate values with logical formulae, as is done in algebraic semantics. The algebraic semantics of intuitionistic logic is given in terms of Heyting algebras, compared to Boolean algebra semantics of classical propositional calculus.

See also

References

  1. ^ Shramko, Yaroslav; Wansing, Heinrich. "Truth Values". In Zalta, Edward N. (ed.). Stanford Encyclopedia of Philosophy.
  2. ^ "Truth value". Lexico UK English Dictionary. Oxford University Press. n.d.
  3. ^ "ECMAScript Language Specification" (PDF). p. 43. Archived from the original (PDF) on 2015-04-12. Retrieved 2011-03-12.
  4. ^ "The Elements of JavaScript Style". Douglas Crockford. Archived from the original on 17 March 2011. Retrieved 5 March 2011.
  5. ^ Proof that intuitionistic logic has no third truth value, Glivenko 1928