Truth tables are a type of mathematical table used in logic to determine whether an expression is true or valid. (Expressions may be arguments; i.e., a conjunction of expressions, each conjunct of which is a premiss with the last being the conclusion.)
"The pattern of reasoning that the truth table tabulates was Frege's, Peirce's, and Schröder's by 1880. The tables have been prominent in literature since 1920 (Lukasiewicz, Post, Wittgenstein)" (Quine, 39). Lewis Carroll had formulated truth tables as early as 1894 to solve certain problems, but his manuscripts containing his work on the subject were not discovered until 1977 *. Wittgenstein's Tractatus Logico-Philosophicus uses them to place truth functions in a series. The wide influence of this work led to the spread of the use of truth tables.
Truth tables are used to compute the values of propositional expressions in an effective manner that is sometimes referred to as a decision procedure. A propositional expression is either an atomic formula — a propositional constant, propositional variable, or propositional function term (for example, Px) — or built up from atomic formulas by means of logical operators, for example, AND (), OR (), NOT (). For instance, is a propositional expression.
The column headings on a truth table show (i) the propositional functions and/or variables, and (ii) the truth-functional expression built up from those propositional functions or variables and operators. The rows show each possible valuation of T or F assignments to (i) and (ii). In other words, each row is a distinct interpretation of (i) and (ii).
Truth tables for classical logic are limited to boolean logical systems in which only two logical values are possible, false and true, usually written F and T, or sometimes 0 or 1, respectively.
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 or ¬p) is as follows:
| p | ¬p |
|---|---|
| F | T |
| T | F |
Logical conjunction is an operation on two logical values, typically the values of two propositions, that produces a value of true if and only if both of its operands are true.
The truth table for p AND q (also written as p ∧ q, p & q, or pq) is as follows:
| p | q | p ∧ q |
|---|---|---|
| F | F | F |
| F | T | F |
| T | F | F |
| T | T | T |
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.
Logical disjunction is an operation on two logical values, typically the values of two propositions, that produces a value of false if and only if both of its operands are false.
The truth table for p OR q (also written as p ∨ q) is as follows:
| p | q | p ∨ q |
|---|---|---|
| F | F | F |
| F | T | T |
| T | F | T |
| T | T | T |
Logical equality is an operation on two logical values, typically the values of two propositions, that produces a value of true if and only if both operands are false or both operands are true.
The truth table for p EQ q (also written as p = q, p ↔ q, or p ≡ q) is as follows:
| p | q | p = q |
|---|---|---|
| F | F | T |
| F | T | F |
| T | F | F |
| T | T | T |
Exclusive disjunction is an operation on two logical values, typically the values of two propositions, that produces a value of true if and only if one but not both of its operands is true.
The truth table for p XOR q (also written as p + q, p ⊕ q, or p ≠ q) is as follows:
| p | q | p + q |
|---|---|---|
| F | F | F |
| F | T | T |
| T | F | T |
| T | T | F |
For two propositions, XOR can also be written as (p = 1 ∧ q = 0)∨ (p = 0 ∧ q = 1).
The logical NAND is an operation on two logical values, typically the values of two propositions, that produces a value of false if and only if both of its operands are true. In other words, it produces a value of true if and only if at least one of its operands is false.
The truth table for p NAND q (also written as p | q or p ↑ q) is as follows:
| p | q | p ↑ q |
|---|---|---|
| F | F | T |
| F | T | T |
| T | F | T |
| T | T | F |
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 conjunction , and the disjunction of negations are depicted as follows:
| F | F | F | T | T | T | T |
| F | T | F | T | T | F | T |
| T | F | F | T | F | T | T |
| T | T | T | F | F | F | F |
The logical NOR is an operation on two logical values, typically the values of two propositions, that produces a value of true if and only if both of its operands are false. In other words, it produces a value of false if and only if at least one of its operands is true.
The truth table for p NOR q (also written as p ⊥ q or p ↓ q) is as follows:
| p | q | p ↓ q |
|---|---|---|
| F | F | T |
| F | T | F |
| T | F | F |
| T | T | F |
The negation of disjunction and the conjunction of negations are tabulated as follows:
| F | F | F | T | T | T | T |
| F | T | T | F | T | F | F |
| T | F | T | F | F | T | F |
| T | T | T | F | F | F | F |
Inspection of the tabular derivations for NAND and NOR, under each assignment of logical values to the functional arguments and , produces the identical patterns of functional values for as for , and for as for . Thus the first and second expressions in each pair are logically equivalent, and may be substituted for each other in all contexts that pertaing 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:
| p | q | ¬p | ¬p ∨ q | p → q |
|---|---|---|---|---|
| F | F | T | T | T |
| F | T | T | T | T |
| T | F | F | F | F |
| T | T | F | T | T |
This demonstrates the fact that p → q is logically equivalent to ¬p ∨ q.
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):
| F | F | F | F | F | T | T | T |
| F | T | F | T | T | F | T | F |
| T | F | F | T | T | F | F | T |
| T | T | T | T | F | T | T | T |
Key:
Johnston diagrams, similar to Venn diagrams and Euler diagrams, provide a way of visualizing truth tables. An interactive Johnston diagram illustrating truth tables is at LogicTutorial.com
| ∧ | F | T |
|---|---|---|
| F | F | F |
| T | F | T |
| ∨ | F | T |
|---|---|---|
| F | F | T |
| T | T | T |
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 functionality 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, 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.
Boolean algebra | Mathematical logic
Waarheidstabel | Wahrheitstabelle | Tabla de valores de verdad | Table de vérité | Tabella della verità | טבלת אמת | Waarheidstabel | 真理値表 | Sannhetstabell | Tabela verdade | Sanningstabell | 真值表
This article is licensed under the GNU Free Documentation License.
It uses material from the
"Truth table".
Home Page • arts • business • computers • games • health • hospitals • home • kids & teens • news • physicians • recreation• reference • regional • science • shopping • society • sports • world