# truth table

A truth table is a breakdown of a logic function by listing all possible values the function can attain. Such a table typically contains several rows and columns, with the top row representing the logical variables and combinations, in increasing complexity leading up to the final function.

In a logic function, there are three basic operations: NOT (also called inversion or negation and symbolized -), OR (also called disjunction or addition and symbolized +), and AND (also called conjunction or multiplication and symbolized *). The values of the functions are normally assigned as logic 0 = false and logic 1 = true. Thus, the following rules apply:

If A = 0, then -A = 1

If A = 1, then -A = 0

A+B = 1 except when A = 0 and B = 0

A+B = 0 if A = 0 and B = 0

A*B = 0 except when A = 1 and B = 1

A*B = 1 if A = 1 and B = 1

The following tables show the process of evaluating the values of the logic function -(A+B) * -(A*B), as determined by breaking it down into constituent functions. The two logic variables, A and B, are listed at the top of the first two columns. All possible combinations of values for A and B are listed in these columns by counting up in binary numerals: 00, 01, 10, 11. The right-most (in this case the seventh) column contains the function to be evaluated (the final function).

A |
B |
A+B |
A*B |
-(A+B) |
-(A*B) |
-(A+B) * -(A*B) |

? | ? | ? | ? | ? | ||

1 | ? | ? | ? | ? | ? | |

1 | ? | ? | ? | ? | ? | |

1 | 1 | ? | ? | ? | ? | ? |

Once this framework has been set up, the values in the third and fourth columns are determined by the simple rules for addition and multiplication:

A |
B |
A+B |
A*B |
-(A+B) |
-(A*B) |
-(A+B) * -(A*B) |

? | ? | ? | ||||

1 | 1 | ? | ? | ? | ||

1 | 1 | ? | ? | ? | ||

1 | 1 | 1 | 1 | ? | ? | ? |

Then the values in the fifth and sixth columns are determined by negating the values in the third and fourth columns:

A |
B |
A+B |
A*B |
-(A+B) |
-(A*B) |
-(A+B) * -(A*B) |

1 | 1 | ? | ||||

1 | 1 | 1 | ? | |||

1 | 1 | 1 | ? | |||

1 | 1 | 1 | 1 | ? |

Finally, the values of the function to be evaluated are determined by multiplying the values of the fifth and sixth columns:

A |
B |
A+B |
A*B |
-(A+B) |
-(A*B) |
-(A+B) * -(A*B) |

1 | 1 | 1 | ||||

1 | 1 | 1 | ||||

1 | 1 | 1 | ||||

1 | 1 | 1 | 1 |

This is a simple logic function. Some functions have many input variables, and consist of many constituent functions. This can result in a table with hundreds of rows and columns. Computers are used to generate truth tables for highly complex logic functions.

An alternative to the truth table is the use of Boolean theorems. This method, called Boolean algebra, is used by engineers to find the simplest possible circuit that will perform a desired logic function. This optimizes system efficiency by minimizing the number of operations that must be performed to accomplish a given task.