A and B
- Boolean expression
- A and B
- Canonical sum of products
- A·B
- Minterms (rows that are 1)
- Σm(3)
- Rows that are true
- 1
- Classification
- Contingent
Checked against: Python itertools.product over (A, B): only A=1, B=1 is true
Truth table of a Boolean expression in up to 6 variables, with the canonical sum of products, product of sums, minterms and maxterms.
The expression is true in 5 of 8 rows (minterms 0, 2, 4, 6, 7), so its value depends on the inputs.
| Row | A | B | C | F |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 1 |
| 1 | 0 | 0 | 1 | 0 |
| 2 | 0 | 1 | 0 | 1 |
| 3 | 0 | 1 | 1 | 0 |
| 4 | 1 | 0 | 0 | 1 |
| 5 | 1 | 0 | 1 | 0 |
| 6 | 1 | 1 | 0 | 1 |
| 7 | 1 | 1 | 1 | 1 |
not binds tightest, then and/nand, xor, or/nor, implies (grouped from the right), and iff last.
Each row sets A, B, C to one combination of 0s and 1s, counting in binary with A as the most significant bit; the row number is the minterm index.
One product term for each row where F = 1; a bar means the variable is 0 in that row.
One sum term for each row where F = 0; each term is 0 only in its own row.
A truth table lists the value of a Boolean expression for every combination of its inputs: 2ⁿ rows for n variables, so 8 rows for A, B and C. Each row where the expression is 1 is a minterm, and the OR of those minterms is the canonical sum of products; each row where it is 0 is a maxterm, and the AND of the maxterms is the canonical product of sums. Both describe the same function.
Digital logic and computer science students use it to check circuit designs, simplify conditions and verify logic laws. The default, (A and B) or not C, is true in 5 of 8 rows, minterms 0, 2, 4, 6 and 7, and false in rows 1, 3 and 5.
Up to 6 variables (64 rows) are accepted. Precedence runs not, and/nand, xor, or/nor, implies (grouped from the right), then iff; symbols such as !, &, | and ^ also work. An expression true in every row is a tautology, and one false in every row is a contradiction.
Checked against: Python itertools.product over (A, B): only A=1, B=1 is true
Checked against: Python itertools.product with a != b
Checked against: Python itertools.product with (not a) or b
Checked against: Law of excluded middle; Python check over A in (0, 1)
List every combination of the inputs by counting in binary: 2 variables give 4 rows, 3 give 8, and 6 give 64. Then evaluate the expression in each row, working from the innermost operation outward. For (A and B) or not C, the row A = 1, B = 1, C = 1 gives (1 and 1) or 0 = 1, while A = 0, B = 0, C = 1 gives 0 or 0 = 0.
A minterm is an AND of every variable, each plain or negated, that is 1 in exactly one row; a maxterm is an OR of every variable that is 0 in exactly one row. Row numbers index them: for A, B and C, minterm 6 is A·B·C′ and maxterm 1 is (A + B + C′). A function is the OR of its minterms and, equally, the AND of its maxterms.
A sum of products (SOP) ORs together AND terms, one for each row where the function is 1; a product of sums (POS) ANDs together OR terms, one for each row where it is 0. A xor B is A′·B + A·B′ as a sum of products and (A + B)·(A′ + B′) as a product of sums. Both are complete; the shorter one is whichever has fewer rows to cover.
An expression that is true in every row of its truth table, whatever the inputs. A or not A, the law of excluded middle, is the simplest; (A → B) or (B → A) is another. The opposite, false in every row, is a contradiction, such as A and not A, and anything true in some rows but not others is called contingent.
A → B is false only when A is true and B is false; in the other three rows it is true. Its truth table therefore has minterms 0, 1 and 3 and a single maxterm, 2, and it is equivalent to not A or B and to its contrapositive, not B → not A. A chain such as A → B → C groups from the right, as A → (B → C).
Accuracy depends on your inputs and the method's assumptions. Decimal arithmetic uses 50 significant digits, but estimates, numerical methods and source data can be less precise; the displayed rounding does not remove those limits. It is checked against 8 worked examples whose answers come from independent sources; for example, “A and B” is checked against Python itertools.product over (A, B): only A=1, B=1 is true.
Wolfram MathWorld — Truth Table; Wikipedia — Canonical normal form (minterms and maxterms).
8 worked examples with independently sourced answers ship with this calculator. They run in the test suite; you can run them here too.
Allow optional Google Analytics to measure page visits? Calculators work either way. Privacy and choices
Optional analytics: off.