A truth table is a mathematical table used in logic specifically in connection with Boolean algebra, boolean functions, and propositional calculus to compute the functional values of logical expressions on each of their functional arguments, that is, on each combination of values taken by their logical variables (Enderton, 2001). In particular, truth tables can be used to tell whether a propositional expression is true for all legitimate input values, that is, logically valid.
Practically, a truth table is composed of one column for each input variable (for example, A and B), and one final column for all of the possible results of the logical operation that the table is meant to represent (for example, A XOR B). Each row of the truth table therefore contains one possible configuration of the input variables (for instance, A=true B=false), and the result of the operation for those values. See the examples below for further clarification. Ludwig Wittgenstein is often credited with their invention in the Tractatus LogicoPhilosophicus.^{[1]}
Unary operations
Logical identity
Logical identity is an operation on one logical value, typically the value of a proposition, that produces a value of true if its operand is true and a value of false if its operand is false.
The truth table for the logical identity operator is as follows:
Logical Identity
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:
Logical Negation
p 
p 
T 
F 
F 
T 
Binary operations
Truth table for all binary logical operators
Here is a truth table giving definitions of all 16 of the possible truth functions of 2 binary variables (P,Q are thus boolean variables):
P 
Q 
0 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
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 
where T = true and F = false.
Key:
Logical operators can also be visualized using Venn diagrams.
Logical conjunction
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 \cdot q) is as follows:
Logical Conjunction
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
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:
Logical Disjunction
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, that produces a value of false just in the singular case the first operand is true and the second operand is false.
The truth table associated with the material conditional if p then q (symbolized as p q) and the logical implication p implies q (symbolized as p q, or Cpq) is as follows:
Logical Implication
p 
q 
p q

T 
T 
T 
T 
F 
F 
F 
T 
T 
F 
F 
T 
It may also be useful to note that p q is equivalent to p q.
Logical equality
Logical equality (also known as biconditional) 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:
Logical Equality
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 p q, Jpq, or p q) is as follows:
Exclusive Disjunction
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 = 1 q = 0) (p = 0 q = 1).
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:
Logical NAND
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, Xpq, or p q) is as follows:
Logical NOR
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.
Applications
Truth tables can be used to prove many other logical equivalences. For example, consider the following truth table:
Logical Equivalence : (p q) = ( p q)
p 
q 
p 
p q

p q

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 p q is logically equivalent to p q.
Truth table for most commonly used logical operators
Here is a truth table giving definitions of the most commonly used 6 of the 16 possible truth functions of 2 binary variables (P,Q are thus boolean variables):
P 
Q 
P \and Q 
P \or Q 
P \underline{\or} Q 
P \underline{\and} Q 
P \Rightarrow Q 
P \Leftarrow Q 
P \iff 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 
Key:
 T = true, F = false

\and = AND (logical conjunction)

\or = OR (logical disjunction)

\underline{\or} = XOR (exclusive or)

\underline{\and} = XNOR (exclusive nor)

\rightarrow = conditional "ifthen"

\leftarrow = conditional "(then)if"

\iff biconditional or "ifandonlyif" is logically equivalent to \underline{\and}: XNOR (exclusive nor).
Logical operators can also be visualized using Venn diagrams.
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 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 functionality of hardware lookup tables (LUTs) in digital logic circuitry. For an ninput 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 32bit 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, else let Vi = 0. Then the kth bit of the binary representation of the truth table is the LUT's output value, where k = V0*2^0 + V1*2^1 + V2*2^2 + ... + Vn*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 engineering derived from applied logic and math), 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:
A B  C R 1 1  1 0 1 0  0 1 0 1  0 1 0 0  0 0 where A = First Operand B = Second Operand C = Carry R = 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.
Note that this table does not describe the logic operations necessary to implement this operation, rather it simply specifies the function of inputs to output values.
In this case it can only be used for very simple inputs and outputs, such as 1's and 0's, 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 2x2, or four. So the result is four possible outputs of C and R. If one was to use base 3, the size would increase to 3x3, 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 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
See also
 Related topics
References
Further reading

Boche ski, J zef Maria (1959), A Pr cis of Mathematical Logic, translated from the French and German editions by Otto Bird, D. Reidel, Dordrecht, South Holland.

Enderton, H. (2001). A Mathematical Introduction to Logic, second edition, Harcourt Academic Press. ISBN 0122384520

Quine, W.V. (1982), Methods of Logic, 4th edition, Harvard University Press, Cambridge, MA.
External links
af:Waarheidstabel am: ca:Taula de veritat cs:Pravdivostn tabulka da:Sandhedstabel de:Wahrheitstabelle et:T ev rtustabel es:Tabla de verdad eo:Vertabelo fa: fr:Table de v rit ko: id:Tabel kebenaran it:Tabella della verit he: la:Ratio propositionum mk: nl:Waarheidstabel ja: no:Sannhetstabell pl:Tablica prawdy pt:Tabela verdade ru: si: sk:Pravdivostn tabu ka fi:Totuustaulu sv:Sanningsv rdetabell th: tr:Do ruluk tablosu uk: zh:
