A truth table has one column for each input variable (for example, A and B), and one final column showing the result of the logical operation that the table represents (for example,AXORB). 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 proposition's truth table is a graphical representation of itstruth function. The truth function can be more useful for mathematical purposes, although the same information is encoded in both.
In 1997, John Shosky discovered, on theverso of a page of the typed transcript ofBertrand 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 theAmerican Journal of Mathematics in 1885 includes an example of an indirect truth table for the conditional.
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
F
T
T
F
F
F
F
∨
T
F
T
T
T
F
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 are also used to specify the function ofhardware look-up tables (LUTs) indigital logic circuitry. For an n-input LUT, the truth table will have values (or rows in the above tabular format), completely specifying a Boolean function for the LUT. By representing each Boolean value as abit in abinary number, truth table values can be efficiently encoded asinteger values inelectronic 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 indexk based on the input values of the LUT, in which case the LUT's output value is thekth bit of the integer. For example, to evaluate the output value of a LUT given anarray ofn Boolean input values, the bit index of the truth table's output value can be computed as follows: if theith input is true, let, else let. Then thekth 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 theexponential 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 andbinary 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 oflogic gates or code. For example, a binary addition can be represented with the truth table:
Binary addition
A
B
C
R
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 afull adder's logic:
Regarding theguide columns[5] to the left of a table, which representpropositional variables, different authors have different recommendations about how to fill them in, although this is of no logical significance.[6]
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.[6]
This results in truth tables like this table "showing that(A→C)∧(B→C) and(A∨B)→C aretruth-functionallyequivalent", modeled after a table produced byHowson:[6]
If there aren 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 ofn variables is thedouble exponential 22n.
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,G, may be used with an XOR gate to conditionally invert another value,X. In other words, whenG is false, the output isX, and whenG is true, the output is. The function table for this would look like:
F
T
Similarly, a 4-to-1multiplexer with select inputs and, data inputsA,B,C andD, and outputZ (as displayed in the image) would have this function table:
The truth table forp AND q (also written asp ∧ q,Kpq,p & q, orpq) is as follows:
p
q
p ∧q
T
T
T
T
F
F
F
T
F
F
F
F
In ordinary language terms, if bothp andq are true, then the conjunctionp ∧q is true. For all other assignments of logical values top and toq the conjunctionp ∧ q is false.
It can also be said that ifp, thenp ∧q isq, otherwisep ∧q isp.
Logical implication and thematerial conditional are both associated with anoperation on twological values, typically the values of twopropositions, which produces a value offalse if the first operand is true and the second operand is false, and a value oftrue otherwise.
The truth table associated with the logical implicationp implies q (symbolized asp ⇒ q, or more rarelyCpq) 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 conditionalif p then q (symbolized asp → q) is as follows:
Thelogical NAND is anoperation on twological values, typically the values of twopropositions, that produces a value offalse if both of its operands are true. In other words, it produces a value oftrue if at least one of its operands is false.
The truth table forp NAND q (also written asp ↑ q,Dpq, orp | 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 acompound 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:
The truth table forp NOR q (also written asp ↓ q, orXpq) 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 argumentsp andq, 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.
^The operators here with equal left and right identities (XOR, AND, XNOR, and OR) are alsocommutative monoids because they are alsoassociative. While this distinction may be irrelevant in a simple discussion of logic, it can be quite important in more advanced mathematics. For example, incategory theory anenriched category is described as a basecategory enriched over a monoid, and any of these operators can be used for enrichment.
^abWittgenstein used a different mapping. In proposition 5.101 of the Tractatus one has to appendTruthvaluesrow to the table
p
T
F
T
F
q
T
T
F
F
This explains whyTractatusrow in the table given here does not point to the sameTruthvaluesrow as in the Tractatus.