Truth table
Logical connectives  



Related concepts  
Applications  
Category  
A truth table is a
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,
). 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
Ludwig Wittgenstein is generally credited with inventing and popularizing the truth table in his Tractatus LogicoPhilosophicus, which was completed in 1918 and published in 1921.^{[2]} Such a system was also independently proposed in 1921 by Emil Leon Post.^{[3]}
History
From the summary of Anellis's paper:^{}[4]
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 Mathematicsin 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
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
"ifthen" 
conditional "if" 
biconditional "ifandonlyif"  
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,


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 multivalued 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
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
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 exclusiveor (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 halfadder. A fulladder 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
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^{[5]} 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.^{[6]}
Alternating method
Lee Archie, a professor at Lander University, recommends this procedure, which is commonly followed in published truthtables:
 Write out the number of variables (corresponding to the number of statements) in alphabetical order.
 The number of lines needed is 2^{n} where n is the number of variables. (E. g., with three variables, 2^{3} = 8).
 Start in the righthand 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 lefthand column and double the numbers of T's and F's until completed.^{[5]}
This method results in truthtables such as the following table for "P ⊃ (Q ∨ R ⊃ (R ⊃ ¬P))", produced by Stephen Cole Kleene:^{[7]}
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 2^{n} 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 2^{n}.^{[6]}
This results in truth tables like this table "showing that (A→C)∧(B→C) and (A∨B)→C are truthfunctionally equivalent", modeled after a table produced by Howson:^{[6]}
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 2^{n} 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 2^{2n}.
n  2^{n}  2^{2n}  

0  1  2  
1  2  4  
2  4  16  
3  8  256  
4  16  65,536  
5  32  4,294,967,296  ≈ 4.3×10^{9} 
6  64  18,446,744,073,709,551,616  ≈ 1.8×10^{19} 
7  128  340,282,366,920,938,463,463,374,607,431,768,211,456  ≈ 3.4×10^{38} 
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×10^{77} 
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".^{[8]} 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 4to1 multiplexer with select imputs and , data inputs , , and , and output (as displayed in the image) would have this function table:
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:^{[note 1]}
p q F^{0} NOR^{1} ↚^{2} ¬p^{3} NIMPLY^{4} ¬q^{5} XOR^{6}NAND^{7}AND^{8} XNOR^{9} q^{10}IMPLY^{11} p^{12}←^{13}OR^{14} T^{15} 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 F^{0} NOR^{1} ↛^{4} ¬q^{5} ↚^{2} ¬p^{3} XOR^{6} NAND^{7} AND^{8} XNOR^{9} p^{12} ←^{13} q^{10} →^{11} OR^{14} T^{15} Neg T^{15} OR^{14} ←^{13} p^{12} IMPLY^{11} q^{10} XNOR^{9} AND^{8} NAND^{7} XOR^{6} ¬q^{5} NIMPLY^{4} ¬p^{3} ↚^{2} NOR^{1} F^{0} Dual T^{15} NAND^{7} →^{11} ¬p^{3} ←^{13} ¬q^{5} XNOR^{9} NOR^{1} OR^{14} XOR^{6} q^{10} ↚^{2} p^{12} ↛^{4} AND^{8} F^{0} 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 operationobtained by interchanging T with F, and AND with OR.
 The L id row shows the operator's left identitiesif 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.^{[note 2]}
Wittgenstein table
In proposition 5.101 of the Tractatus LogicoPhilosophicus,^{[9]} Wittgenstein listed the table above as follows:
Truthvalues Operator Operation name Tractatus^{[note 3]} 0 (F F F F)(p, q) ⊥ falseOpq 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 disjunctionp or q, but not both 7 (F T T T)(p, q) NAND p ↑ q Dpq Logical NANDnot 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 functionq 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 implicationif 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 Truthvalues_{row} to the table^{[note 3]}
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
The truth table for the logical identity operator is as follows:
p  p 

T  T 
F  F 
Logical negation
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
Logical conjunction (AND)
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)
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
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
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
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
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
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
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
 Booleanvalued function
 Espresso heuristic logic minimizer
 Excitation table
 Statetransition table
 Firstorder 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.
 ^ ^{a} ^{b} Wittgenstein used a different mapping. In proposition 5.101 of the Tractatus one has to append Truthvalues_{row} to the table
p T F T F q T T F F
This explains why Tractatus_{row} in the table given here does not point to the same Truthvalues_{row} as in the Tractatus.
References
 ^ Enderton 2001
 JSTOR 2182631.
 .
 ^ .
 ^ ^{a} ^{b} "How to Construct a Truth Table". philosophy.lander.edu. Retrieved 20240405.
 ^ ISBN 9780415133425.
 .
 .
 ^ Wittgenstein, Ludwig (1922). Tractatus LogicoPhilosophicus (PDF). Proposition 5.101.
Works cited
 ISBN 9789401705929.
 .
 .
External links
 "Truth table", Encyclopedia of Mathematics, EMS Press, 2001 [1994]
 Truth Tables, Tautologies, and Logical Equivalence
 Anellis, Irving H. (2011). "Peirce's Truthfunctional Analysis and the Origin of Truth Tables". ].
 Converting truth tables into Boolean expressions