Boolean logic truth table
Given the variables p and q being both either true (1) or false (0), there are 16 possible outcomes combining them with an expression.
| Expression | p=1,q=1 | p=1,q=0 | p=0,q=1 | p=0,q=0 |
|---|---|---|---|---|
| 1 | 1 | 1 | 1 | 1 |
| p or q | 1 | 1 | 1 | 0 |
| p or not q | 1 | 1 | 0 | 1 |
| p | 1 | 1 | 0 | 0 |
| not p or q | 1 | 0 | 1 | 1 |
| q | 1 | 0 | 1 | 0 |
| not (p xor q) | 1 | 0 | 0 | 1 |
| p and q | 1 | 0 | 0 | 0 |
| not p or not q | 0 | 1 | 1 | 1 |
| p xor q | 0 | 1 | 1 | 0 |
| not q | 0 | 1 | 0 | 1 |
| not p and q | 0 | 1 | 0 | 0 |
| not p | 0 | 0 | 1 | 1 |
| p and not q | 0 | 0 | 1 | 0 |
| not p and not q | 0 | 0 | 0 | 1 |
| 0 | 0 | 0 | 0 | 0 |
Note that (not p or q) is equivalent to the expression (if p then q) or (p <= q)
(not(p xor q)) is equivalent to (if and only if p then q) or (p=q)
(p and not q) is equivalent to (p > q)
(p xor q) is equivalent to (p != q)
For expressions with more than two variables, the problem becomes soon complex. The problem, wether an expression with n boolean variables can be true with any combination of these variables hard to solve (see Boolean satisfiability problem).
