In mathematics and abstract algebra, a Boolean domain is a set consisting of exactly two elements whose interpretations include false and true. In logic, mathematics and theoretical computer science, a Boolean domain is usually written as {0, 1},[1][2][3][4][5] or [6][7]

The algebraic structure that naturally builds on a Boolean domain is the Boolean algebra with two elements. The initial object in the category of bounded lattices is a Boolean domain.

In computer science, a Boolean variable is a variable that takes values in some Boolean domain. Some programming languages feature reserved words or symbols for the elements of the Boolean domain, for example false and true. However, many programming languages do not have a Boolean data type in the strict sense. In C or BASIC, for example, falsity is represented by the number 0 and truth is represented by the number 1 or −1, and all variables that can take these values can also take any other numerical values.

Generalizations

edit

The Boolean domain {0, 1} can be replaced by the unit interval [0,1], in which case rather than only taking values 0 or 1, any value between and including 0 and 1 can be assumed. Algebraically, negation (NOT) is replaced with   conjunction (AND) is replaced with multiplication ( ), and disjunction (OR) is defined via De Morgan's law to be  .

Interpreting these values as logical truth values yields a multi-valued logic, which forms the basis for fuzzy logic and probabilistic logic. In these interpretations, a value is interpreted as the "degree" of truth – to what extent a proposition is true, or the probability that the proposition is true.

See also

edit

References

edit
  1. ^ van Dalen, Dirk (2004). Logic and Structure. Springer. p. 15.
  2. ^ Makinson, David (2008). Sets, Logic and Maths for Computing. Springer. p. 13. Bibcode:2008slmc.book.....M.
  3. ^ Boolos, George S.; Jeffrey, Richard C. (1980). Computability and Logic. Cambridge University Press. p. 99.
  4. ^ Mendelson, Elliott (1997). Introduction to Mathematical Logic (4 ed.). Chapman & Hall/CRC. p. 11.
  5. ^ Hehner, Eric C. R. (2010) [1993]. A Practical Theory of Programming. Springer. p. 3.
  6. ^ Parberry, Ian (1994). Circuit Complexity and Neural Networks. MIT Press. pp. 65. ISBN 978-0-262-16148-0.
  7. ^ Cortadella, Jordi; Kishinevsky, Michael; Kondratyev, Alex; Lavagno, Luciano; Yakovlev, Alex (2002). Logic Synthesis for Asynchronous Controllers and Interfaces. Springer Series in Advanced Microelectronics. Vol. 8. Springer-Verlag Berlin Heidelberg New York. p. 73. ISBN 3-540-43152-7. ISSN 1437-0387.

Further reading

edit