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 (Enderton, 2001). 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, P and Q), and one final column showing all of the possible results of the logical operation that the table represents (for example, P XOR Q). Each row of the truth table contains one possible configuration of the input variables (for instance, P=true Q=false), and the result of the operation for those values. See the examples below for further clarification. 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.^{ [1] } Such a system was also independently proposed in 1921 by Emil Leon Post.^{ [2] } An even earlier iteration of the truth table has also been found in unpublished manuscripts by Charles Sanders Peirce from 1893, antedating both publications by nearly 30 years.^{ [3] }
There are 4 unary operations:
The output value is always true, regardless of the input value of p
p  T 

T  T 
F  T 
The output value is never true: that is, always false, regardless of the input value of p
p  F 

T  F 
F  F 
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 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 
There are 16 possible truth functions of two binary variables:
Here is an extended truth table giving definitions of all possible truth functions of two Boolean variables P and Q:^{ [note 1] }
p  q  F ^{0}  NOR ^{1}  ↚ ^{2}  ¬p ^{3}  ↛ ^{4}  ¬q ^{5}  XOR ^{6}  NAND ^{7}  AND ^{8}  XNOR ^{9}  q ^{10}  → ^{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  ✓  ✓  ✓  ✓  ✓  ✓  ✓  ✓  
L id  F  F  T  T  T,F  T  F  
R id  F  F  T  T  T,F  T  F 
where
The four combinations of input values for p, q, are read by row from the table above. The output function for each p, q combination, can be read, by row, from the table.
Key:
The following table is oriented by column, rather than by row. There are four columns rather than four rows, to display the four combinations of p, q, as input.
p: T T F F
q: T F T F
There are 16 rows in this key, one row for each binary function of the two binary variables, p, q. For example, in row 2 of this Key, the value of Converse nonimplication ('') is solely T, for the column denoted by the unique combination p=F, q=T; while in row 2, the value of that '' operation is F for the three remaining columns of p, q. The output row for is thus
2: F F T F
and the 16row^{ [4] } key is
^{ [4] }  operator  Operation name  

0  (F F F F)(p, q)  ⊥  false, Opq  Contradiction 
1  (F F F T)(p, q)  NOR  p ↓ q, Xpq  Logical NOR 
2  (F F T F)(p, q)  ↚  p ↚ q, Mpq  Converse nonimplication 
3  (F F T T)(p, q)  ¬p, ~p  ¬p, Np, Fpq  Negation 
4  (F T F F)(p, q)  ↛  p ↛ q, Lpq  Material nonimplication 
5  (F T F T)(p, q)  ¬q, ~q  ¬q, Nq, Gpq  Negation 
6  (F T T F)(p, q)  XOR  p ⊕ q, Jpq  Exclusive disjunction 
7  (F T T T)(p, q)  NAND  p ↑ q, Dpq  Logical NAND 
8  (T F F F)(p, q)  AND  p ∧ q, Kpq  Logical conjunction 
9  (T F F T)(p, q)  XNOR  p If and only if q, Epq  Logical biconditional 
10  (T F T F)(p, q)  q  q, Hpq  Projection function 
11  (T F T T)(p, q)  p→q  if p then q, Cpq  Material implication 
12  (T T F F)(p, q)  p  p, Ipq  Projection function 
13  (T T F T)(p, q)  p←q  p if q, Bpq  Converse implication 
14  (T T T F)(p, q)  OR  p ∨ q, Apq  Logical disjunction 
15  (T T T T)(p, q)  ⊤  true, Vpq  Tautology 
Logical operators can also be visualized using Venn diagrams.
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 pq) 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 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 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 
It may also be useful to note that p ⇒ q and p → q are equivalent to ¬p ∨ q.
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:
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 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) is as follows:
p  q  ¬pv¬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).
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 
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.
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 .
Here is a truth table that gives definitions of the 6 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 
where
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 are also used to specify the function 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 , 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.
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:
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:
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.
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 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
Irving Anellis’s research shows that C.S. Peirce appears to be the earliest logician (in 1893) to devise a truth table matrix.^{ [3] }^{ [5] } From the summary of his 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.
In logic and mathematics, or is the truthfunctional operator of (inclusive) disjunction, also known as alternation; the or of a set of operands is true if and only if one or more of its operands is true. The logical connective that represents this operator is typically written as ∨ or +.
In logic, mathematics and linguistics, And (∧) is the truthfunctional operator of logical conjunction; the and of a set of operands is true if and only if all of its operands are true. The logical connective that represents this operator is typically written as ∧ or ⋅ .
In logic, a logical connective is a symbol or word used to connect two or more sentences in a grammatically valid way, such that the value of the compound sentence produced depends only on that of the original sentences and on the meaning of the connective.
Propositional calculus is a branch of logic. It is also called propositional logic, statement logic, sentential calculus, sentential logic, or sometimes zerothorder logic. It deals with propositions and argument flow. Compound propositions are formed by connecting propositions by logical connectives. The propositions without logical connectives are called atomic propositions.
In logic, the semantic principle of bivalence states that every declarative sentence expressing a proposition has exactly one truth value, either true or false. A logic satisfying this principle is called a twovalued logic or bivalent logic.
In Boolean functions and propositional calculus, the Sheffer stroke denotes a logical operation that is equivalent to the negation of the conjunction operation, expressed in ordinary language as "not both". It is also called nand or the alternative denial, since it says in effect that at least one of its operands is false. In digital electronics, it corresponds to the NAND gate. It is named after Henry M. Sheffer and written as ↑ or as . In Bocheński notation it can be written as Dpq.
In logic, a manyvalued logic is a propositional calculus in which there are more than two truth values. Traditionally, in Aristotle's logical calculus, there were only two possible values for any proposition. Classical twovalued logic may be extended to nvalued logic for n greater than 2. Those most popular in the literature are threevalued, the finitevalued with more than three values, and the infinitevalued, such as fuzzy logic and probability logic.
Exclusive or or exclusive disjunction is a logical operation that outputs true only when inputs differ.
In logic, negation, also called the logical complement, is an operation that takes a proposition to another proposition "not ", written , which is interpreted intuitively as being true when is false, and false when is true. Negation is thus a unary (singleargument) logical connective. It may be applied as an operation on notions, propositions, truth values, or semantic values more generally. In classical logic, negation is normally identified with the truth function that takes truth to falsity and vice versa. In intuitionistic logic, according to the Brouwer–Heyting–Kolmogorov interpretation, the negation of a proposition is the proposition whose proofs are the refutations of .
In logic and mathematics, a truth value, sometimes called a logical value, is a value indicating the relation of a proposition to truth.
In boolean logic, logical nor or joint denial is a truthfunctional operator which produces a result that is the negation of logical or. That is, a sentence of the form is true precisely when neither p nor q is true—i.e. when both of p and q are false. In grammar, nor is a coordinating conjunction.
In logic and mathematics, the logical biconditional, sometimes known as the material biconditional, is the logical connective used to conjoin two statements and to form the statement " if and only if ", where is known as the antecedent, and the consequent. This is often abbreviated as " iff ". The operator is denoted using a doubleheaded arrow, a prefixed E "Epq", an equality sign (=), an equivalence sign (≡), or EQV. It is logically equivalent to both and , and the XNOR boolean operator, which means "both or neither".
In logic, a threevalued logic is any of several manyvalued logic systems in which there are three truth values indicating true, false and some indeterminate third value. This is contrasted with the more commonly known bivalent logics which provide only for true and false.
In logic, a truth function is a function that accepts truth values as input and produces a truth value as output, i.e., the input and output are all truth values. The typical example is in propositional logic, wherein a compound statement is constructed by one or two statements connected by a logical connective; if the truth value of the compound statement is determined by the truth value(s) of the constituent statement(s), the compound statement is called a truth function, and the logical connective is said to be truth functional.
The material conditional is a logical connective that is often symbolized by a forward arrow "→". The material conditional is used to form statements of the form p → q which is read as "if p then q". Unlike the English construction "if... then...", the material conditional statement p → q does not conventionally specify a causal relationship between p and q; "p is the cause and q is the consequence from it" is not a generally valid interpretation of p → q. It merely means "if p is true, then q is also true" such that the statement p → q is false only when p is true and q is false. In a bivalent truth table of p → q, if p is false, then p → q is true regardless of whether q is true or false since (1) p → q is always true as long q is true and (2) p → q is true when both p and q are false. This truth table is useful to prove some mathematical theorems.
In Boolean algebra, any Boolean function can be put into the canonical disjunctive normal form (CDNF) or minterm canonical form and its dual canonical conjunctive normal form (CCNF) or maxterm canonical form. Other canonical forms include the complete sum of prime implicants or Blake canonical form, and the algebraic normal form.
Logical equality is a logical operator that corresponds to equality in Boolean algebra and to the logical biconditional in propositional calculus. It gives the functional value true if both functional arguments have the same logical value, and false if they are different.
In logic, a functionally complete set of logical connectives or Boolean operators is one which can be used to express all possible truth tables by combining members of the set into a Boolean expression. A wellknown complete set of connectives is { AND, NOT }, consisting of binary conjunction and negation. Each of the singleton sets { NAND } and { NOR } is functionally complete.
Vector logic is an algebraic model of elementary logic based on matrix algebra. Vector logic assumes that the truth values map on vectors, and that the monadic and dyadic operations are executed by matrix operators. "Vector logic" has also been used to refer to the representation of classical propositional logic as a vector space, in which the unit vectors are propositional variables. Predicate logic can be represented as a vector space of the same type in which the axes represent the predicate letters and . In the vector space for propositional logic the origin represents the false, F, and the infinite periphery represents the true, T, whereas in the space for predicate logic the origin represents "nothing" and the periphery represents the flight from nothing, or "something".
In mathematics and mathematical logic, Boolean algebra is the branch of algebra in which the values of the variables are the truth values true and false, usually denoted 1 and 0 respectively. Instead of elementary algebra where the values of the variables are numbers, and the prime operations are addition and multiplication, the main operations of Boolean algebra are the conjunction (and) denoted as ∧, the disjunction (or) denoted as ∨, and the negation (not) denoted as ¬. It is thus a formalism for describing logical operations in the same way that elementary algebra describes numerical operations.
Wikimedia Commons has media related to Truth tables . 