![Truth table](https://www.english.nina.az/wikipedia/image/aHR0cHM6Ly91cGxvYWQud2lraW1lZGlhLm9yZy93aWtpcGVkaWEvY29tbW9ucy90aHVtYi83Lzc1L011bHRpcGxleGVyXzQtdG8tMS5zdmcvMTYwMHB4LU11bHRpcGxleGVyXzQtdG8tMS5zdmcucG5n.png )
A truth table is a mathematical table used in logic—specifically in connection with Boolean algebra, Boolean functions, and propositional calculus—which sets out the functional values of logical expressions on each of their functional arguments, that is, for each combination of values taken by their logical variables. In particular, truth tables can be used to show whether a propositional expression is true for all legitimate input values, that is, logically valid.
A truth table has one column for each input variable (for example, A and B), and one final column showing all of the possible results of the logical operation that the table represents (for example, A XOR B). Each row of the truth table contains one possible configuration of the input variables (for instance, A=true, B=false), and the result of the operation for those values.
A truth table is a structured representation that presents all possible combinations of truth values for the input variables of a Boolean function and their corresponding output values. A function f from A to F is a special relation, a subset of A×F, which simply means that f can be listed as a list of input-output pairs. Clearly, for the Boolean functions, the output belongs to a binary set, i.e. F = {0, 1}. For an n-ary Boolean function, the inputs come from a domain that is itself a Cartesian product of binary sets corresponding to the input Boolean variables. For example for a binary function, f(A, B), the domain of f is A×B, which can be listed as: A×B = {(A = 0, B = 0), (A = 0, B = 1), (A = 1, B = 0), (A = 1, B = 1)}. Each element in the domain represents a combination of input values for the variables A and B. These combinations now can be combined with the output of the function corresponding to that combination, thus forming the set of input-output pairs as a special relation that is a subset of A×F. For a relation to be a function, the special requirement is that each element of the domain of the function must be mapped to one and only one member of the codomain. Thus, the function f itself can be listed as: f = {((0, 0), f0), ((0, 1), f1), ((1, 0), f2), ((1, 1), f3)}, where f0, f1, f2, and f3 are each Boolean, 0 or 1, values as members of the codomain {0, 1}, as the outputs corresponding to the member of the domain, respectively. Rather than a list (set) given above, the truth table then presents these input-output pairs in a tabular format, in which each row corresponds to a member of the domain paired with its corresponding output value, 0 or 1. Of course, for the Boolean functions, we do not have to list all the members of the domain with their images in the codomain; we can simply list the mappings that map the member to "1", because all the others will have to be mapped to "0" automatically (that leads us to the minterms idea).
Ludwig Wittgenstein is generally credited with inventing and popularizing the truth table in his Tractatus Logico-Philosophicus, which was completed in 1918 and published in 1921. Such a system was also independently proposed in 1921 by Emil Leon Post.
History
Irving Anellis's research shows that C.S. Peirce appears to be the earliest logician (in 1883) to devise a truth table matrix.
From the summary of Anellis's paper:
In 1997, John Shosky discovered, on the verso of a page of the typed transcript of Bertrand Russell's 1912 lecture on "The Philosophy of Logical Atomism" truth table matrices. The matrix for negation is Russell's, alongside of which is the matrix for material implication in the hand of Ludwig Wittgenstein. It is shown that an unpublished manuscript identified as composed by Peirce in 1893 includes a truth table matrix that is equivalent to the matrix for material implication discovered by John Shosky. An unpublished manuscript by Peirce identified as having been composed in 1883–84 in connection with the composition of Peirce's "On the Algebra of Logic: A Contribution to the Philosophy of Notation" that appeared in the American Journal of Mathematics in 1885 includes an example of an indirect truth table for the conditional.
Applications
Truth tables can be used to prove many other logical equivalences. For example, consider the following truth table:
T | T | F | T | T |
T | F | F | F | F |
F | T | T | T | T |
F | F | T | T | T |
This demonstrates the fact that is logically equivalent to
.
Truth table for most commonly used logical operators
Here is a truth table that gives definitions of the 7 most commonly used out of the 16 possible truth functions of two Boolean variables P and Q:
P | Q | |||||||
---|---|---|---|---|---|---|---|---|
T | T | T | T | F | T | T | T | T |
T | F | F | T | T | F | F | T | F |
F | T | F | T | T | F | T | F | F |
F | F | F | F | F | T | T | T | T |
P | Q | |||||||
AND (conjunction) | OR (disjunction) | XOR (exclusive or) | XNOR (exclusive nor) | conditional "if-then" | conditional "if" | biconditional "if-and-only-if" | ||
where T means true and F means false |
Condensed truth tables for binary operators
For binary operators, a condensed form of truth table is also used, where the row headings and the column headings specify the operands and the table cells specify the result. For example, Boolean logic uses this condensed truth table notation:
|
|
This notation is useful especially if the operations are commutative, although one can additionally specify that the rows are the first operand and the columns are the second operand. This condensed notation is particularly useful in discussing multi-valued extensions of logic, as it significantly cuts down on combinatoric explosion of the number of rows otherwise needed. It also provides for quickly recognizable characteristic "shape" of the distribution of the values in the table which can assist the reader in grasping the rules more quickly.
Truth tables in digital logic
Truth tables are also used to specify the function of hardware look-up tables (LUTs) in digital logic circuitry. For an n-input LUT, the truth table will have 2^n values (or rows in the above tabular format), completely specifying a Boolean function for the LUT. By representing each Boolean value as a bit in a binary number, truth table values can be efficiently encoded as integer values in electronic design automation (EDA) software. For example, a 32-bit integer can encode the truth table for a LUT with up to 5 inputs.
When using an integer representation of a truth table, the output value of the LUT can be obtained by calculating a bit index k based on the input values of the LUT, in which case the LUT's output value is the kth bit of the integer. For example, to evaluate the output value of a LUT given an array of n Boolean input values, the bit index of the truth table's output value can be computed as follows: if the ith input is true, let , else let
. Then the kth bit of the binary representation of the truth table is the LUT's output value, where
.
Truth tables are a simple and straightforward way to encode Boolean functions, however given the exponential growth in size as the number of inputs increase, they are not suitable for functions with a large number of inputs. Other representations which are more memory efficient are text equations and binary decision diagrams.
Applications of truth tables in digital electronics
In digital electronics and computer science (fields of applied logic engineering and mathematics), truth tables can be used to reduce basic Boolean operations to simple correlations of inputs to outputs, without the use of logic gates or code. For example, a binary addition can be represented with the truth table:
T | T | T | F |
T | F | F | T |
F | T | F | T |
F | F | F | F |
where A is the first operand, B is the second operand, C is the carry digit, and R is the result.
This truth table is read left to right:
- Value pair (A, B) equals value pair (C, R).
- Or for this example, A plus B equal result R, with the Carry C.
This table does not describe the logic operations necessary to implement this operation, rather it simply specifies the function of inputs to output values.
With respect to the result, this example may be arithmetically viewed as modulo 2 binary addition, and as logically equivalent to the exclusive-or (exclusive disjunction) binary logic operation.
In this case it can be used for only very simple inputs and outputs, such as 1s and 0s. However, if the number of types of values one can have on the inputs increases, the size of the truth table will increase.
For instance, in an addition operation, one needs two operands, A and B. Each can have one of two values, zero or one. The number of combinations of these two values is 2×2, or four. So the result is four possible outputs of C and R. If one were to use base 3, the size would increase to 3×3, or nine possible outputs.
The first "addition" example above is called a half-adder. A full-adder is when the carry from the previous operation is provided as input to the next adder. Thus, a truth table of eight rows would be needed to describe a full adder's logic:
A B C* | C R 0 0 0 | 0 0 0 1 0 | 0 1 1 0 0 | 0 1 1 1 0 | 1 0 0 0 1 | 0 1 0 1 1 | 1 0 1 0 1 | 1 0 1 1 1 | 1 1 Same as previous, but.. C* = Carry from previous adder
Methods of writing truth tables
Regarding the guide columns to the left of a table, which represent propositional variables, different authors have different recommendations about how to fill them in, although this is of no logical significance.
Alternating method
Lee Archie, a professor at Lander University, recommends this procedure, which is commonly followed in published truth-tables:
- Write out the number of variables (corresponding to the number of statements) in alphabetical order.
- The number of lines needed is 2n where n is the number of variables. (E. g., with three variables, 23 = 8).
- Start in the right-hand column and alternate T's and F's until you run out of lines.
- Then move left to the next column and alternate pairs of T's and F's until you run out of lines.
- Then continue to the next left-hand column and double the numbers of T's and F's until completed.
This method results in truth-tables such as the following table for "P ⊃ (Q ∨ R ⊃ (R ⊃ ¬P))", produced by Stephen Cole Kleene:
P | Q | R | P ⊃ (Q ∨ R ⊃ (R ⊃ ¬P)) |
---|---|---|---|
t | t | t | f |
t | t | f | t |
t | f | t | f |
t | f | f | t |
f | t | t | t |
f | t | f | t |
f | f | t | t |
f | f | f | t |
Combinatorial method
Colin Howson, on the other hand, believes that "it is a good practical rule" to do the following:
to start with all Ts, then all the ways (three) two Ts can be combined with one F, then all the ways (three) one T can be combined with two Fs, and then finish with all Fs. If a compound is built up from n distinct sentence letters, its truth table will have 2n rows, since there are two ways of assigning T or F to the first letter, and for each of these there will be two ways of assigning T or F to the second, and for each of these there will be two ways of assigning T or F to the third, and so on, giving 2.2.2. …, n times, which is equal to 2n.
This results in truth tables like this table "showing that (A→C)∧(B→C) and (A∨B)→C are truth-functionally equivalent", modeled after a table produced by Howson:
A | B | C | (A → C) ∧ (B → C) | (A ∨ B) → C |
---|---|---|---|---|
T | T | T | T | T |
T | T | F | F | F |
T | F | T | T | T |
F | T | T | T | T |
F | F | T | T | T |
F | T | F | F | F |
T | F | F | F | F |
F | F | F | T | T |
Size of truth tables
If there are n input variables then there are 2n possible combinations of their truth values. A given function may produce true or false for each combination so the number of different functions of n variables is the double exponential 22n.
n | 2n | 22n | |
---|---|---|---|
0 | 1 | 2 | |
1 | 2 | 4 | |
2 | 4 | 16 | |
3 | 8 | 256 | |
4 | 16 | 65,536 | |
5 | 32 | 4,294,967,296 | ≈ 4.3×109 |
6 | 64 | 18,446,744,073,709,551,616 | ≈ 1.8×1019 |
7 | 128 | 340,282,366,920,938,463,463,374,607,431,768,211,456 | ≈ 3.4×1038 |
8 | 256 | 115,792,089,237,316,195,423,570,985,008,687,907,853,269,984,665,640,564,039,457,584,007,913,129,639,936 | ≈ 1.2×1077 |
Truth tables for functions of three or more variables are rarely given.
Function Tables
It can be useful to have the output of a truth table expressed as a function of some variable values, instead of just a literal truth or false value. These may be called "function tables" to differentiate them from the more general "truth tables". For example, one value, , may be used with an XOR gate to conditionally invert another value,
. In other words, when
is false, the output is
, and when
is true, the output is
. The function table for this would look like:
F | |
T |
Similarly, a 4-to-1 multiplexer with select imputs and
, data inputs
,
,
and
, and output
(as displayed in the image) would have this function table:
![image](https://www.english.nina.az/wikipedia/image/aHR0cHM6Ly93d3cuZW5nbGlzaC5uaW5hLmF6L3dpa2lwZWRpYS9pbWFnZS9hSFIwY0hNNkx5OTFjR3h2WVdRdWQybHJhVzFsWkdsaExtOXlaeTkzYVd0cGNHVmthV0V2WTI5dGJXOXVjeTkwYUhWdFlpODNMemMxTDAxMWJIUnBjR3hsZUdWeVh6UXRkRzh0TVM1emRtY3ZNakl3Y0hndFRYVnNkR2x3YkdWNFpYSmZOQzEwYnkweExuTjJaeTV3Ym1jPS5wbmc=.png)
F | F | |
F | T | |
T | F | |
T | T |
Sentential operator truth tables
Overview table
Here is an extended truth table giving definitions of all sixteen possible truth functions of two Boolean variables p and q:
p q F0 NOR1 ↚2 ¬p3 NIMPLY4 ¬q5 XOR6 NAND7 AND8 XNOR9 q10 IMPLY11 p12 ←13 OR14 T15 T T F F F F F F F F T T T T T T T T T F F F F F T T T T F F F F T T T T F T F F T T F F T T F F T T F F T T F F F T F T F T F T F T F T F T F T Com ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ Assoc ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ Adj F0 NOR1 ↛4 ¬q5 ↚2 ¬p3 XOR6 NAND7 AND8 XNOR9 p12 ←13 q10 →11 OR14 T15 Neg T15 OR14 ←13 p12 IMPLY11 q10 XNOR9 AND8 NAND7 XOR6 ¬q5 NIMPLY4 ¬p3 ↚2 NOR1 F0 Dual T15 NAND7 →11 ¬p3 ←13 ¬q5 XNOR9 NOR1 OR14 XOR6 q10 ↚2 p12 ↛4 AND8 F0 L id F F T T T,F T F R id F F T T T,F T F
where
- T = true.
- F = false.
- The superscripts 0 to 15 is the number resulting from reading the four truth values as a binary number with F = 0 and T = 1.
- The Com row indicates whether an operator, op, is commutative - P op Q = Q op P.
- The Assoc row indicates whether an operator, op, is associative - (P op Q) op R = P op (Q op R).
- The Adj row shows the operator op2 such that P op Q = Q op2 P.
- The Neg row shows the operator op2 such that P op Q = ¬(P op2 Q).
- The Dual row shows the dual operation obtained by interchanging T with F, and AND with OR.
- The L id row shows the operator's left identities if it has any - values I such that I op Q = Q.
- The R id row shows the operator's right identities if it has any - values I such that P op I = P.
Wittgenstein table
In proposition 5.101 of the Tractatus Logico-Philosophicus,Wittgenstein listed the table above as follows:
Truthvalues Operator Operation name Tractatus 0 (F F F F)(p, q) ⊥ false Opq Contradiction p and not p; and q and not q 1 (F F F T)(p, q) NOR p ↓ q Xpq Logical NOR neither p nor q 2 (F F T F)(p, q) ↚ p ↚ q Mpq Converse nonimplication q and not p 3 (F F T T)(p, q) ¬p, ~p ¬p Np, Fpq Negation not p 4 (F T F F)(p, q) ↛ p ↛ q Lpq Material nonimplication p and not q 5 (F T F T)(p, q) ¬q, ~q ¬q Nq, Gpq Negation not q 6 (F T T F)(p, q) XOR p ⊕ q Jpq Exclusive disjunction p or q, but not both 7 (F T T T)(p, q) NAND p ↑ q Dpq Logical NAND not both p and q 8 (T F F F)(p, q) AND p ∧ q Kpq Logical conjunction p and q 9 (T F F T)(p, q) XNOR p iff q Epq Logical biconditional if p then q; and if q then p 10 (T F T F)(p, q) q q Hpq Projection function q 11 (T F T T)(p, q) p → q if p then q Cpq Material implication if p then q 12 (T T F F)(p, q) p p Ipq Projection function p 13 (T T F T)(p, q) p ← q if q then p Bpq Converse implication if q then p 14 (T T T F)(p, q) OR p ∨ q Apq Logical disjunction p or q 15 (T T T T)(p, q) ⊤ true Vpq Tautology if p then p; and if q then q
The truth table represented by each row is obtained by appending the sequence given in Truthvaluesrow to the table
p T T F F q T F T F
For example, the table
p T T F F q T F T F 11 T F T T
represents the truth table for Material implication. Logical operators can also be visualized using Venn diagrams.
Nullary operations
There are 2 nullary operations:
- Always true
- Never true, unary falsum
Logical true
The output value is always true, because this operator has zero operands and therefore no input values
p | T |
---|---|
T | T |
F | T |
Logical false
The output value is never true: that is, always false, because this operator has zero operands and therefore no input values
p | F |
---|---|
T | F |
F | F |
Unary operations
There are 2 unary operations:
- Unary identity
- Unary negation
Logical identity
Logical identity is an operation on one logical value p, for which the output value remains p.
The truth table for the logical identity operator is as follows:
p | p |
---|---|
T | T |
F | F |
Logical negation
Logical negation is an operation on one logical value, typically the value of a proposition, that produces a value of true if its operand is false and a value of false if its operand is true.
The truth table for NOT p (also written as ¬p, Np, Fpq, or ~p) is as follows:
p | ¬p |
---|---|
T | F |
F | T |
Binary operations
There are 16 possible truth functions of two binary variables, each operator has its own name.
Logical conjunction (AND)
Logical conjunction is an operation on two logical values, typically the values of two propositions, that produces a value of true if both of its operands are true.
The truth table for p AND q (also written as p ∧ q, Kpq, p & q, or p q) is as follows:
p | q | p ∧ q |
---|---|---|
T | T | T |
T | F | F |
F | T | F |
F | F | F |
In ordinary language terms, if both p and q are true, then the conjunction p ∧ q is true. For all other assignments of logical values to p and to q the conjunction p ∧ q is false.
It can also be said that if p, then p ∧ q is q, otherwise p ∧ q is p.
Logical disjunction (OR)
Logical disjunction is an operation on two logical values, typically the values of two propositions, that produces a value of true if at least one of its operands is true.
The truth table for p OR q (also written as p ∨ q, Apq, p || q, or p + q) is as follows:
p | q | p ∨ q |
---|---|---|
T | T | T |
T | F | T |
F | T | T |
F | F | F |
Stated in English, if p, then p ∨ q is p, otherwise p ∨ q is q.
Logical implication
Logical implication and the material conditional are both associated with an operation on two logical values, typically the values of two propositions, which produces a value of false if the first operand is true and the second operand is false, and a value of true otherwise.
The truth table associated with the logical implication p implies q (symbolized as p ⇒ q, or more rarely Cpq) is as follows:
p | q | p ⇒ q |
---|---|---|
T | T | T |
T | F | F |
F | T | T |
F | F | T |
The truth table associated with the material conditional if p then q (symbolized as p → q) is as follows:
p | q | p → q |
---|---|---|
T | T | T |
T | F | F |
F | T | T |
F | F | T |
p ⇒ q and p → q are equivalent to ¬p ∨ q.
Logical equality
Logical equality (also known as biconditional or exclusive nor) is an operation on two logical values, typically the values of two propositions, that produces a value of true if both operands are false or both operands are true.
The truth table for p XNOR q (also written as p ↔ q, Epq, p = q, or p ≡ q) is as follows:
p | q | p ↔ q |
---|---|---|
T | T | T |
T | F | F |
F | T | F |
F | F | T |
So p EQ q is true if p and q have the same truth value (both true or both false), and false if they have different truth values.
Exclusive disjunction
Exclusive disjunction is an operation on two logical values, typically the values of two propositions, that produces a value of true if one but not both of its operands is true.
The truth table for p XOR q (also written as Jpq, or p ⊕ q) is as follows:
p | q | p ⊕ q |
---|---|---|
T | T | F |
T | F | T |
F | T | T |
F | F | F |
For two propositions, XOR can also be written as (p ∧ ¬q) ∨ (¬p ∧ q).
Logical NAND
The logical NAND is an operation on two logical values, typically the values of two propositions, that produces a value of false if both of its operands are true. In other words, it produces a value of true if at least one of its operands is false.
The truth table for p NAND q (also written as p ↑ q, Dpq, or p | q) is as follows:
p | q | p ↑ q |
---|---|---|
T | T | F |
T | F | T |
F | T | T |
F | F | T |
It is frequently useful to express a logical operation as a compound operation, that is, as an operation that is built up or composed from other operations. Many such compositions are possible, depending on the operations that are taken as basic or "primitive" and the operations that are taken as composite or "derivative".
In the case of logical NAND, it is clearly expressible as a compound of NOT and AND.
The negation of a conjunction: ¬(p ∧ q), and the disjunction of negations: (¬p) ∨ (¬q) can be tabulated as follows:
p | q | p ∧ q | ¬(p ∧ q) | ¬p | ¬q | (¬p) ∨ (¬q) |
---|---|---|---|---|---|---|
T | T | T | F | F | F | F |
T | F | F | T | F | T | T |
F | T | F | T | T | F | T |
F | F | F | T | T | T | T |
Logical NOR
The logical NOR is an operation on two logical values, typically the values of two propositions, that produces a value of true if both of its operands are false. In other words, it produces a value of false if at least one of its operands is true. ↓ is also known as the Peirce arrow after its inventor, Charles Sanders Peirce, and is a Sole sufficient operator.
The truth table for p NOR q (also written as p ↓ q, or Xpq) is as follows:
p | q | p ↓ q |
---|---|---|
T | T | F |
T | F | F |
F | T | F |
F | F | T |
The negation of a disjunction ¬(p ∨ q), and the conjunction of negations (¬p) ∧ (¬q) can be tabulated as follows:
p | q | p ∨ q | ¬(p ∨ q) | ¬p | ¬q | (¬p) ∧ (¬q) |
---|---|---|---|---|---|---|
T | T | T | F | F | F | F |
T | F | T | F | F | T | F |
F | T | T | F | T | F | F |
F | F | F | T | T | T | T |
Inspection of the tabular derivations for NAND and NOR, under each assignment of logical values to the functional arguments p and q, produces the identical patterns of functional values for ¬(p ∧ q) as for (¬p) ∨ (¬q), and for ¬(p ∨ q) as for (¬p) ∧ (¬q). Thus the first and second expressions in each pair are logically equivalent, and may be substituted for each other in all contexts that pertain solely to their logical values.
This equivalence is one of De Morgan's laws.
See also
- Boolean domain
- Boolean-valued function
- Espresso heuristic logic minimizer
- Excitation table
- State-transition table
- First-order logic
- Functional completeness
- Karnaugh maps
- Logic gate
- Logical connective
- Logical graph
- Mathematical table
- Method of analytic tableaux
- Propositional calculus
- Truth function
- Decision table
Notes
- Information about notation may be found in (Bocheński 1959), (Enderton 2001), and (Quine 1982).
- The operators here with equal left and right identities (XOR, AND, XNOR, and OR) are also commutative monoids because they are also associative. While this distinction may be irrelevant in a simple discussion of logic, it can be quite important in more advanced mathematics. For example, in category theory an enriched category is described as a base category enriched over a monoid, and any of these operators can be used for enrichment.
- Wittgenstein used a different mapping. In proposition 5.101 of the Tractatus one has to append Truthvaluesrow to the table
p T F T F q T T F F
This explains why Tractatusrow in the table given here does not point to the same Truthvaluesrow as in the Tractatus.
References
- Enderton 2001
- von Wright, Georg Henrik (1955). "Ludwig Wittgenstein, A Biographical Sketch". The Philosophical Review. 64 (4): 527–545 (p. 532, note 9). doi:10.2307/2182631. JSTOR 2182631.
- Post, Emil (July 1921). "Introduction to a general theory of elementary propositions". American Journal of Mathematics. 43 (3): 163–185. doi:10.2307/2370324. hdl:2027/uiuo.ark:/13960/t9j450f7q. JSTOR 2370324.
- Anellis, Irving H. (2012). "Peirce's Truth-functional Analysis and the Origin of the Truth Table". History and Philosophy of Logic. 33: 87–97. doi:10.1080/01445340.2011.621702. S2CID 170654885.
- "How to Construct a Truth Table". philosophy.lander.edu. Retrieved 2024-04-05.
- Howson, Colin (1997). Logic with trees: an introduction to symbolic logic. London; New York: Routledge. p. 10. ISBN 978-0-415-13342-5.
- Kleene, Stephen Cole (2013). Mathematical Logic. Dover Books on Mathematics. Courier Corporation. p. 11. ISBN 9780486317076.
- Mano, M. Morris; Ciletti, Michael (2018-07-13). Digital Design, Global Edition (6th ed.). Pearson Education, Limited. ISBN 9781292231167.
- Wittgenstein, Ludwig (1922). Tractatus Logico-Philosophicus (PDF). Proposition 5.101.
Works cited
- Bocheński, Józef Maria (1959). A Précis of Mathematical Logic. Translated by Bird, Otto. D. Reidel. doi:10.1007/978-94-017-0592-9. ISBN 978-94-017-0592-9.
- Enderton, H. (2001). A Mathematical Introduction to Logic (2nd ed.). Harcourt Academic Press. ISBN 0-12-238452-0.
- Quine, W.V. (1982). Methods of Logic (4th ed.). Harvard University Press. ISBN 978-0-674-57175-4.
External links
![image](https://www.english.nina.az/wikipedia/image/aHR0cHM6Ly93d3cuZW5nbGlzaC5uaW5hLmF6L3dpa2lwZWRpYS9pbWFnZS9hSFIwY0hNNkx5OTFjR3h2WVdRdWQybHJhVzFsWkdsaExtOXlaeTkzYVd0cGNHVmthV0V2Wlc0dmRHaDFiV0l2TkM4MFlTOURiMjF0YjI1ekxXeHZaMjh1YzNabkx6TXdjSGd0UTI5dGJXOXVjeTFzYjJkdkxuTjJaeTV3Ym1jPS5wbmc=.png)
- "Truth table", Encyclopedia of Mathematics, EMS Press, 2001 [1994]
- Truth Tables, Tautologies, and Logical Equivalence
- Converting truth tables into Boolean expressions
A truth table is a mathematical table used in logic specifically in connection with Boolean algebra Boolean functions and propositional calculus which sets out the functional values of logical expressions on each of their functional arguments that is for each combination of values taken by their logical variables In particular truth tables can be used to show whether a propositional expression is true for all legitimate input values that is logically valid A truth table has one column for each input variable for example A and B and one final column showing all of the possible results of the logical operation that the table represents for example A XOR B Each row of the truth table contains one possible configuration of the input variables for instance A true B false and the result of the operation for those values A truth table is a structured representation that presents all possible combinations of truth values for the input variables of a Boolean function and their corresponding output values A function f from A to F is a special relation a subset of A F which simply means that f can be listed as a list of input output pairs Clearly for the Boolean functions the output belongs to a binary set i e F 0 1 For an n ary Boolean function the inputs come from a domain that is itself a Cartesian product of binary sets corresponding to the input Boolean variables For example for a binary function f A B the domain of f is A B which can be listed as A B A 0 B 0 A 0 B 1 A 1 B 0 A 1 B 1 Each element in the domain represents a combination of input values for the variables A and B These combinations now can be combined with the output of the function corresponding to that combination thus forming the set of input output pairs as a special relation that is a subset of A F For a relation to be a function the special requirement is that each element of the domain of the function must be mapped to one and only one member of the codomain Thus the function f itself can be listed as f 0 0 f0 0 1 f1 1 0 f2 1 1 f3 where f0 f1 f2 and f3 are each Boolean 0 or 1 values as members of the codomain 0 1 as the outputs corresponding to the member of the domain respectively Rather than a list set given above the truth table then presents these input output pairs in a tabular format in which each row corresponds to a member of the domain paired with its corresponding output value 0 or 1 Of course for the Boolean functions we do not have to list all the members of the domain with their images in the codomain we can simply list the mappings that map the member to 1 because all the others will have to be mapped to 0 automatically that leads us to the minterms idea Ludwig Wittgenstein is generally credited with inventing and popularizing the truth table in his Tractatus Logico Philosophicus which was completed in 1918 and published in 1921 Such a system was also independently proposed in 1921 by Emil Leon Post HistoryIrving Anellis s research shows that C S Peirce appears to be the earliest logician in 1883 to devise a truth table matrix From the summary of Anellis s paper In 1997 John Shosky discovered on the verso of a page of the typed transcript of Bertrand Russell s 1912 lecture on The Philosophy of Logical Atomism truth table matrices The matrix for negation is Russell s alongside of which is the matrix for material implication in the hand of Ludwig Wittgenstein It is shown that an unpublished manuscript identified as composed by Peirce in 1893 includes a truth table matrix that is equivalent to the matrix for material implication discovered by John Shosky An unpublished manuscript by Peirce identified as having been composed in 1883 84 in connection with the composition of Peirce s On the Algebra of Logic A Contribution to the Philosophy of Notation that appeared in the American Journal of Mathematics in 1885 includes an example of an indirect truth table for the conditional ApplicationsTruth tables can be used to prove many other logical equivalences For example consider the following truth table p q p q displaystyle p Rightarrow q equiv lnot p lor q p displaystyle p q displaystyle q p displaystyle lnot p p q displaystyle lnot p lor q p q displaystyle p Rightarrow q T T F T TT F F F FF T T T TF F T T T This demonstrates the fact that p q displaystyle p Rightarrow q is logically equivalent to p q displaystyle lnot p lor q Truth table for most commonly used logical operators Here is a truth table that gives definitions of the 7 most commonly used out of the 16 possible truth functions of two Boolean variables P and Q P Q P Q displaystyle P land Q P Q displaystyle P lor Q P Q displaystyle P underline lor Q P Q displaystyle P underline land Q P Q displaystyle P Rightarrow Q P Q displaystyle P Leftarrow Q P Q displaystyle P Leftrightarrow Q T T T T F T T T TT F F T T F F T FF T F T T F T F FF F F F F T T T TP Q P Q displaystyle P land Q P Q displaystyle P lor Q P Q displaystyle P underline lor Q P Q displaystyle P underline land Q P Q displaystyle P Rightarrow Q P Q displaystyle P Leftarrow Q P Q displaystyle P Leftrightarrow Q AND conjunction OR disjunction XOR exclusive or XNOR exclusive nor conditional if then conditional if biconditional if and only if where T means true and F means falseCondensed truth tables for binary operators For binary operators a condensed form of truth table is also used where the row headings and the column headings specify the operands and the table cells specify the result For example Boolean logic uses this condensed truth table notation T FT T FF F F T FT T TF T F This notation is useful especially if the operations are commutative although one can additionally specify that the rows are the first operand and the columns are the second operand This condensed notation is particularly useful in discussing multi valued extensions of logic as it significantly cuts down on combinatoric explosion of the number of rows otherwise needed It also provides for quickly recognizable characteristic shape of the distribution of the values in the table which can assist the reader in grasping the rules more quickly Truth tables in digital logic Truth tables are also used to specify the function of hardware look up tables LUTs in digital logic circuitry For an n input LUT the truth table will have 2 n values or rows in the above tabular format completely specifying a Boolean function for the LUT By representing each Boolean value as a bit in a binary number truth table values can be efficiently encoded as integer values in electronic design automation EDA software For example a 32 bit integer can encode the truth table for a LUT with up to 5 inputs When using an integer representation of a truth table the output value of the LUT can be obtained by calculating a bit index k based on the input values of the LUT in which case the LUT s output value is the kth bit of the integer For example to evaluate the output value of a LUT given an array of n Boolean input values the bit index of the truth table s output value can be computed as follows if the ith input is true let Vi 1 displaystyle V i 1 else let Vi 0 displaystyle V i 0 Then the kth bit of the binary representation of the truth table is the LUT s output value where k V0 20 V1 21 V2 22 Vn 2n displaystyle k V 0 times 2 0 V 1 times 2 1 V 2 times 2 2 dots V n times 2 n Truth tables are a simple and straightforward way to encode Boolean functions however given the exponential growth in size as the number of inputs increase they are not suitable for functions with a large number of inputs Other representations which are more memory efficient are text equations and binary decision diagrams Applications of truth tables in digital electronics In digital electronics and computer science fields of applied logic engineering and mathematics truth tables can be used to reduce basic Boolean operations to simple correlations of inputs to outputs without the use of logic gates or code For example a binary addition can be represented with the truth table Binary addition A displaystyle A B displaystyle B C displaystyle C R displaystyle R T T T FT F F TF T F TF F F F where A is the first operand B is the second operand C is the carry digit and R is the result This truth table is read left to right Value pair A B equals value pair C R Or for this example A plus B equal result R with the Carry C This table does not describe the logic operations necessary to implement this operation rather it simply specifies the function of inputs to output values With respect to the result this example may be arithmetically viewed as modulo 2 binary addition and as logically equivalent to the exclusive or exclusive disjunction binary logic operation In this case it can be used for only very simple inputs and outputs such as 1s and 0s However if the number of types of values one can have on the inputs increases the size of the truth table will increase For instance in an addition operation one needs two operands A and B Each can have one of two values zero or one The number of combinations of these two values is 2 2 or four So the result is four possible outputs of C and R If one were to use base 3 the size would increase to 3 3 or nine possible outputs The first addition example above is called a half adder A full adder is when the carry from the previous operation is provided as input to the next adder Thus a truth table of eight rows would be needed to describe a full adder s logic A B C C R 0 0 0 0 0 0 1 0 0 1 1 0 0 0 1 1 1 0 1 0 0 0 1 0 1 0 1 1 1 0 1 0 1 1 0 1 1 1 1 1 Same as previous but C Carry from previous adderMethods of writing truth tablesRegarding the guide columns to the left of a table which represent propositional variables different authors have different recommendations about how to fill them in although this is of no logical significance Alternating method Lee Archie a professor at Lander University recommends this procedure which is commonly followed in published truth tables Write out the number of variables corresponding to the number of statements in alphabetical order The number of lines needed is 2n where n is the number of variables E g with three variables 23 8 Start in the right hand column and alternate T s and F s until you run out of lines Then move left to the next column and alternate pairs of T s and F s until you run out of lines Then continue to the next left hand column and double the numbers of T s and F s until completed This method results in truth tables such as the following table for P Q R R P produced by Stephen Cole Kleene P Q R P Q R R P t t t ft t f tt f t ft f f tf t t tf t f tf f t tf f f tCombinatorial method Colin Howson on the other hand believes that it is a good practical rule to do the following to start with all Ts then all the ways three two Ts can be combined with one F then all the ways three one T can be combined with two Fs and then finish with all Fs If a compound is built up from n distinct sentence letters its truth table will have 2n rows since there are two ways of assigning T or F to the first letter and for each of these there will be two ways of assigning T or F to the second and for each of these there will be two ways of assigning T or F to the third and so on giving 2 2 2 n times which is equal to 2n This results in truth tables like this table showing that A C B C and A B C are truth functionally equivalent modeled after a table produced by Howson A B C A C B C A B CT T T T TT T F F FT F T T TF T T T TF F T T TF T F F FT F F F FF F F T TSize of truth tablesIf there are n input variables then there are 2n possible combinations of their truth values A given function may produce true or false for each combination so the number of different functions of n variables is the double exponential 22n n 2n 22n0 1 21 2 42 4 163 8 2564 16 65 5365 32 4 294 967 296 4 3 1096 64 18 446 744 073 709 551 616 1 8 10197 128 340 282 366 920 938 463 463 374 607 431 768 211 456 3 4 10388 256 115 792 089 237 316 195 423 570 985 008 687 907 853 269 984 665 640 564 039 457 584 007 913 129 639 936 1 2 1077 Truth tables for functions of three or more variables are rarely given Function TablesIt can be useful to have the output of a truth table expressed as a function of some variable values instead of just a literal truth or false value These may be called function tables to differentiate them from the more general truth tables For example one value G displaystyle G may be used with an XOR gate to conditionally invert another value X displaystyle X In other words when G displaystyle G is false the output is X displaystyle X and when G displaystyle G is true the output is X displaystyle lnot X The function table for this would look like G displaystyle G G X displaystyle G underline lor X F X displaystyle X T X displaystyle lnot X Similarly a 4 to 1 multiplexer with select imputs S0 displaystyle S 0 and S1 displaystyle S 1 data inputs A displaystyle A B displaystyle B C displaystyle C and D displaystyle D and output Z displaystyle Z as displayed in the image would have this function table 4 to 1 multiplexerS1 displaystyle S 1 S0 displaystyle S 0 Z displaystyle Z F F A displaystyle A F T B displaystyle B T F C displaystyle C T T D displaystyle D Sentential operator truth tablesOverview table Here is an extended truth table giving definitions of all sixteen possible truth functions of two Boolean variables p and q p q F0 NOR1 2 p3 NIMPLY4 q5 XOR6 NAND7 AND8 XNOR9 q10 IMPLY11 p12 13 OR14 T15T T F F F F F F F F T T T T T T T TT F F F F F T T T T F F F F T T T TF T F F T T F F T T F F T T F F T TF F F T F T F T F T F T F T F T F TCom Assoc Adj F0 NOR1 4 q5 2 p3 XOR6 NAND7 AND8 XNOR9 p12 13 q10 11 OR14 T15Neg T15 OR14 13 p12 IMPLY11 q10 XNOR9 AND8 NAND7 XOR6 q5 NIMPLY4 p3 2 NOR1 F0Dual T15 NAND7 11 p3 13 q5 XNOR9 NOR1 OR14 XOR6 q10 2 p12 4 AND8 F0L id F F T T T F T FR id F F T T T F T F where T true F false The superscripts 0 to 15 is the number resulting from reading the four truth values as a binary number with F 0 and T 1 The Com row indicates whether an operator op is commutative P op Q Q op P The Assoc row indicates whether an operator op is associative P op Q op R P op Q op R The Adj row shows the operator op2 such that P op Q Q op2 P The Neg row shows the operator op2 such that P op Q P op2 Q The Dual row shows the dual operation obtained by interchanging T with F and AND with OR The L id row shows the operator s left identities if it has any values I such that I op Q Q The R id row shows the operator s right identities if it has any values I such that P op I P Wittgenstein table In proposition 5 101 of the Tractatus Logico Philosophicus Wittgenstein listed the table above as follows Truthvalues Operator Operation name Tractatus0 F F F F p q false Opq Contradiction p and not p and q and not q1 F F F T p q NOR p q Xpq Logical NOR neither p nor q2 F F T F p q p q Mpq Converse nonimplication q and not p3 F F T T p q p p p Np Fpq Negation not p4 F T F F p q p q Lpq Material nonimplication p and not q5 F T F T p q q q q Nq Gpq Negation not q6 F T T F p q XOR p q Jpq Exclusive disjunction p or q but not both7 F T T T p q NAND p q Dpq Logical NAND not both p and q8 T F F F p q AND p q Kpq Logical conjunction p and q9 T F F T p q XNOR p iff q Epq Logical biconditional if p then q and if q then p10 T F T F p q q q Hpq Projection function q11 T F T T p q p q if p then q Cpq Material implication if p then q12 T T F F p q p p Ipq Projection function p13 T T F T p q p q if q then p Bpq Converse implication if q then p14 T T T F p q OR p q Apq Logical disjunction p or q15 T T T T p q true Vpq Tautology if p then p and if q then q The truth table represented by each row is obtained by appending the sequence given in Truthvaluesrow to the table p T T F Fq T F T F For example the table p T T F Fq T F T F11 T F T T represents the truth table for Material implication Logical operators can also be visualized using Venn diagrams Nullary operations There are 2 nullary operations Always true Never true unary falsumLogical true The output value is always true because this operator has zero operands and therefore no input values p TT TF TLogical false The output value is never true that is always false because this operator has zero operands and therefore no input values p FT FF FUnary operations There are 2 unary operations Unary identity Unary negationLogical identity Logical identity is an operation on one logical value p for which the output value remains p The truth table for the logical identity operator is as follows p pT TF FLogical negation Logical negation is an operation on one logical value typically the value of a proposition that produces a value of true if its operand is false and a value of false if its operand is true The truth table for NOT p also written as p Np Fpq or p is as follows p pT FF TBinary operations There are 16 possible truth functions of two binary variables each operator has its own name Logical conjunction AND Logical conjunction is an operation on two logical values typically the values of two propositions that produces a value of true if both of its operands are true The truth table for p AND q also written as p q Kpq p amp q or p displaystyle cdot q is as follows p q p qT T TT F FF T FF F F In ordinary language terms if both p and q are true then the conjunction p q is true For all other assignments of logical values to p and to q the conjunction p q is false It can also be said that if p then p q is q otherwise p q is p Logical disjunction OR Logical disjunction is an operation on two logical values typically the values of two propositions that produces a value of true if at least one of its operands is true The truth table for p OR q also written as p q Apq p q or p q is as follows p q p qT T TT F TF T TF F F Stated in English if p then p q is p otherwise p q is q Logical implication Logical implication and the material conditional are both associated with an operation on two logical values typically the values of two propositions which produces a value of false if the first operand is true and the second operand is false and a value of true otherwise The truth table associated with the logical implication p implies q symbolized as p q or more rarely Cpq is as follows p q p qT T TT F FF T TF F T The truth table associated with the material conditional if p then q symbolized as p q is as follows p q p qT T TT F FF T TF F T p q and p q are equivalent to p q Logical equality Logical equality also known as biconditional or exclusive nor is an operation on two logical values typically the values of two propositions that produces a value of true if both operands are false or both operands are true The truth table for p XNOR q also written as p q Epq p q or p q is as follows p q p qT T TT F FF T FF F T So p EQ q is true if p and q have the same truth value both true or both false and false if they have different truth values Exclusive disjunction Exclusive disjunction is an operation on two logical values typically the values of two propositions that produces a value of true if one but not both of its operands is true The truth table for p XOR q also written as Jpq or p q is as follows p q p qT T FT F TF T TF F F For two propositions XOR can also be written as p q p q Logical NAND The logical NAND is an operation on two logical values typically the values of two propositions that produces a value of false if both of its operands are true In other words it produces a value of true if at least one of its operands is false The truth table for p NAND q also written as p q Dpq or p q is as follows p q p qT T FT F TF T TF F T It is frequently useful to express a logical operation as a compound operation that is as an operation that is built up or composed from other operations Many such compositions are possible depending on the operations that are taken as basic or primitive and the operations that are taken as composite or derivative In the case of logical NAND it is clearly expressible as a compound of NOT and AND The negation of a conjunction p q and the disjunction of negations p q can be tabulated as follows p q p q p q p q p q T T T F F F FT F F T F T TF T F T T F TF F F T T T TLogical NOR The logical NOR is an operation on two logical values typically the values of two propositions that produces a value of true if both of its operands are false In other words it produces a value of false if at least one of its operands is true is also known as the Peirce arrow after its inventor Charles Sanders Peirce and is a Sole sufficient operator The truth table for p NOR q also written as p q or Xpq is as follows p q p qT T FT F FF T FF F T The negation of a disjunction p q and the conjunction of negations p q can be tabulated as follows p q p q p q p q p q T T T F F F FT F T F F T FF T T F T F FF F F T T T T Inspection of the tabular derivations for NAND and NOR under each assignment of logical values to the functional arguments p and q produces the identical patterns of functional values for p q as for p q and for p q as for p q Thus the first and second expressions in each pair are logically equivalent and may be substituted for each other in all contexts that pertain solely to their logical values This equivalence is one of De Morgan s laws See alsoPhilosophy portalPsychology portalBoolean domain Boolean valued function Espresso heuristic logic minimizer Excitation table State transition table First order logic Functional completeness Karnaugh maps Logic gate Logical connective Logical graph Mathematical table Method of analytic tableaux Propositional calculus Truth function Decision tableNotesInformation about notation may be found in Bochenski 1959 Enderton 2001 and Quine 1982 The operators here with equal left and right identities XOR AND XNOR and OR are also commutative monoids because they are also associative While this distinction may be irrelevant in a simple discussion of logic it can be quite important in more advanced mathematics For example in category theory an enriched category is described as a base category enriched over a monoid and any of these operators can be used for enrichment Wittgenstein used a different mapping In proposition 5 101 of the Tractatus one has to append Truthvaluesrow to the table p T F T Fq T T F F This explains why Tractatusrow in the table given here does not point to the same Truthvaluesrow as in the Tractatus ReferencesEnderton 2001 von Wright Georg Henrik 1955 Ludwig Wittgenstein A Biographical Sketch The Philosophical Review 64 4 527 545 p 532 note 9 doi 10 2307 2182631 JSTOR 2182631 Post Emil July 1921 Introduction to a general theory of elementary propositions American Journal of Mathematics 43 3 163 185 doi 10 2307 2370324 hdl 2027 uiuo ark 13960 t9j450f7q JSTOR 2370324 Anellis Irving H 2012 Peirce s Truth functional Analysis and the Origin of the Truth Table History and Philosophy of Logic 33 87 97 doi 10 1080 01445340 2011 621702 S2CID 170654885 How to Construct a Truth Table philosophy lander edu Retrieved 2024 04 05 Howson Colin 1997 Logic with trees an introduction to symbolic logic London New York Routledge p 10 ISBN 978 0 415 13342 5 Kleene Stephen Cole 2013 Mathematical Logic Dover Books on Mathematics Courier Corporation p 11 ISBN 9780486317076 Mano M Morris Ciletti Michael 2018 07 13 Digital Design Global Edition 6th ed Pearson Education Limited ISBN 9781292231167 Wittgenstein Ludwig 1922 Tractatus Logico Philosophicus PDF Proposition 5 101 Works cited Bochenski Jozef Maria 1959 A Precis of Mathematical Logic Translated by Bird Otto D Reidel doi 10 1007 978 94 017 0592 9 ISBN 978 94 017 0592 9 Enderton H 2001 A Mathematical Introduction to Logic 2nd ed Harcourt Academic Press ISBN 0 12 238452 0 Quine W V 1982 Methods of Logic 4th ed Harvard University Press ISBN 978 0 674 57175 4 External linksWikimedia Commons has media related to Truth tables Truth table Encyclopedia of Mathematics EMS Press 2001 1994 Truth Tables Tautologies and Logical Equivalence Converting truth tables into Boolean expressions