Boolean domain

From HandWiki
Short description: Concept in mathematical logic

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 [math]\displaystyle{ \mathbb{B}. }[/math][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, 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 [math]\displaystyle{ 1-x, }[/math] conjunction (AND) is replaced with multiplication ([math]\displaystyle{ xy }[/math]), and disjunction (OR) is defined via De Morgan's law to be [math]\displaystyle{ 1-(1-x)(1-y)=x+y-xy }[/math].

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

References

  1. Dirk van Dalen, Logic and Structure. Springer (2004), page 15.
  2. David Makinson, Sets, Logic and Maths for Computing. Springer (2008), page 13.
  3. George S. Boolos and Richard C. Jeffrey, Computability and Logic. Cambridge University Press (1980), page 99.
  4. Elliott Mendelson, Introduction to Mathematical Logic (4th. ed.). Chapman & Hall/CRC (1997), page 11.
  5. Eric C. R. Hehner, A Practical Theory of Programming. Springer (1993, 2010), page 3.
  6. Circuit Complexity and Neural Networks. MIT Press. 1994. pp. 65. ISBN 978-0-262-16148-0. https://archive.org/details/circuitcomplexit00parb. 
  7. Logic Synthesis for Asynchronous Controllers and Interfaces. Springer Science & Business Media. 2002. p. 73. ISBN 978-3-540-43152-7. https://archive.org/details/logicsynthesisfo0000unse/page/73. 

Further reading