Boolean domain
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] {false, true}, {F, T},[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 datatype 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 respectively, and all variables that can take these values can also take any other numerical values.
Generalizations
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
Notes
- ↑ Dirk van Dalen, Logic and Structure. Springer (2004), page 15.
- ↑ David Makinson, Sets, Logic and Maths for Computing. Springer (2008), page 13.
- ↑ George S. Boolos and Richard C. Jeffrey, Computability and Logic. Cambridge University Press (1980), page 99.
- ↑ Elliott Mendelson, Introduction to Mathematical Logic (4th. ed.). Chapman & Hall/CRC (1997), page 11.
- ↑ Eric C. R. Hehner, A Practical Theory of Programming. Springer (1993, 2010), page 3.
- ↑ Ian Parberry (1994). Circuit Complexity and Neural Networks. MIT Press. p. 65. ISBN 978-0-262-16148-0.
- ↑ Jordi Cortadella; et al. (2002). Logic Synthesis for Asynchronous Controllers and Interfaces. Springer Science & Business Media. p. 73. ISBN 978-3-540-43152-7.