Boolean simplification exercises with answers: advanced
Ten simplifications beyond single laws: the consensus theorem and its dual, factoring a common term out of three, an XOR that cancels, and implication chains that collapse to a constant or to one variable. Write the shorter form, justify it, and compare with the engine.
Most of these are outside what the engine's simplifier does by itself. Its laws are local rewrites that shorten the expression, and neither factoring nor consensus is one of them, so under (A AND B) OR (NOT A AND C) OR (B AND C) the step list says that no law applied, even though the third term can go. The classification and the truth table under each problem are still exact, and every answer in the solutions was checked equivalent to its problem on every row. The Karnaugh map practice sets show the same consensus case as two groups that already cover the third.
Two patterns recur. Consensus: in (X AND Y) OR (NOT X AND Z) OR (Y AND Z) the term Y AND Z is implied by the other two, because on any row where Y and Z are TRUE either X or NOT X is TRUE as well, and the dual holds for products of sums. Implication: rewrite P -> Q as NOT P OR Q, then use absorption and complement; A -> (B -> A) becomes NOT A OR NOT B OR A, which is TRUE.
1. Simplify (A AND B) OR (NOT A AND C) OR (B AND C). (A AND B) OR (NOT A AND C) OR (B AND C)
| # | A | B | C | f |
|---|---|---|---|---|
| 0 | FALSE | FALSE | FALSE | FALSE |
| 1 | FALSE | FALSE | TRUE | TRUE |
| 2 | FALSE | TRUE | FALSE | FALSE |
| 3 | FALSE | TRUE | TRUE | TRUE |
| 4 | TRUE | FALSE | FALSE | FALSE |
| 5 | TRUE | FALSE | TRUE | FALSE |
| 6 | TRUE | TRUE | FALSE | TRUE |
| 7 | TRUE | TRUE | TRUE | TRUE |
The engine found no law that shortens this expression; it is already as short as its rewriting laws can make it.
(A AND B) OR (NOT A AND C) OR (B AND C) Classification: contingent
Consensus: B AND C is implied by the other two terms, so dropping it changes no row. The step list shows no law applied, because the simplifier does not look at two terms at once; a Karnaugh map of the function shows two groups that already cover every cell of the third.
2. Simplify (A XOR B) XOR B. (A XOR B) XOR B
| # | A | B | f |
|---|---|---|---|
| 0 | FALSE | FALSE | FALSE |
| 1 | FALSE | TRUE | FALSE |
| 2 | TRUE | FALSE | TRUE |
| 3 | TRUE | TRUE | TRUE |
(A XOR B) XOR B- Associativity ·
(A XOR B) XOR C = A XOR B XOR C(A XOR B) XOR B→A XOR B XOR BResult:A XOR B XOR B - XOR identities ·
A XOR A = FALSEA XOR B XOR B→AResult:A
Classification: contingent
Associativity regroups the chain as A XOR (B XOR B), and XOR identity turns B XOR B into FALSE and A XOR FALSE into A. The engine shows both laws.
3. Simplify A -> (B -> A) and classify it. A -> (B -> A)
| # | A | B | f |
|---|---|---|---|
| 0 | FALSE | FALSE | TRUE |
| 1 | FALSE | TRUE | TRUE |
| 2 | TRUE | FALSE | TRUE |
| 3 | TRUE | TRUE | TRUE |
The engine found no law that shortens this expression; it is already as short as its rewriting laws can make it.
A -> B -> A Classification: tautology
Implication elimination twice gives NOT A OR (NOT B OR A); associativity flattens it to NOT A OR NOT B OR A, and complement on NOT A OR A makes the whole disjunction TRUE. The classification line says tautology; the step list shows no law, since the simplifier keeps implications.
4. Simplify (A -> B) -> A. (A -> B) -> A
| # | A | B | f |
|---|---|---|---|
| 0 | FALSE | FALSE | FALSE |
| 1 | FALSE | TRUE | FALSE |
| 2 | TRUE | FALSE | TRUE |
| 3 | TRUE | TRUE | TRUE |
The engine found no law that shortens this expression; it is already as short as its rewriting laws can make it.
(A -> B) -> A Classification: contingent
Rewrite the inner implication, (NOT A OR B) -> A, then the outer one, NOT (NOT A OR B) OR A; De Morgan and double negation give (A AND NOT B) OR A, and absorption leaves A. The table is TRUE exactly on the rows with A = TRUE.
5. Simplify (A AND B) OR (A AND C) OR (A AND D) by factoring. (A AND B) OR (A AND C) OR (A AND D)
| # | A | B | C | D | f |
|---|---|---|---|---|---|
| 0 | FALSE | FALSE | FALSE | FALSE | FALSE |
| 1 | FALSE | FALSE | FALSE | TRUE | FALSE |
| 2 | FALSE | FALSE | TRUE | FALSE | FALSE |
| 3 | FALSE | FALSE | TRUE | TRUE | FALSE |
| 4 | FALSE | TRUE | FALSE | FALSE | FALSE |
| 5 | FALSE | TRUE | FALSE | TRUE | FALSE |
| 6 | FALSE | TRUE | TRUE | FALSE | FALSE |
| 7 | FALSE | TRUE | TRUE | TRUE | FALSE |
| 8 | TRUE | FALSE | FALSE | FALSE | FALSE |
| 9 | TRUE | FALSE | FALSE | TRUE | TRUE |
| 10 | TRUE | FALSE | TRUE | FALSE | TRUE |
| 11 | TRUE | FALSE | TRUE | TRUE | TRUE |
| 12 | TRUE | TRUE | FALSE | FALSE | TRUE |
| 13 | TRUE | TRUE | FALSE | TRUE | TRUE |
| 14 | TRUE | TRUE | TRUE | FALSE | TRUE |
| 15 | TRUE | TRUE | TRUE | TRUE | TRUE |
The engine found no law that shortens this expression; it is already as short as its rewriting laws can make it.
(A AND B) OR (A AND C) OR (A AND D) Classification: contingent
Distribution read right to left: A is common to the three terms, so A AND (B OR C OR D). The set of TRUE rows does not change, only the size; the step list shows no law applied, because the simplifier does not factor.
6. Simplify (A OR B) AND (NOT A OR C) AND (B OR C). (A OR B) AND (NOT A OR C) AND (B OR C)
| # | A | B | C | f |
|---|---|---|---|---|
| 0 | FALSE | FALSE | FALSE | FALSE |
| 1 | FALSE | FALSE | TRUE | FALSE |
| 2 | FALSE | TRUE | FALSE | TRUE |
| 3 | FALSE | TRUE | TRUE | TRUE |
| 4 | TRUE | FALSE | FALSE | FALSE |
| 5 | TRUE | FALSE | TRUE | TRUE |
| 6 | TRUE | TRUE | FALSE | FALSE |
| 7 | TRUE | TRUE | TRUE | TRUE |
The engine found no law that shortens this expression; it is already as short as its rewriting laws can make it.
(A OR B) AND (NOT A OR C) AND (B OR C) Classification: contingent
The dual consensus theorem: the clause B OR C is implied by (A OR B) AND (NOT A OR C), since on any row where both clauses hold, either A is FALSE and B must hold, or A is TRUE and C must hold. No law applied in the step list; the table is TRUE on A = FALSE with B = TRUE, and on A = TRUE with C = TRUE.
7. Simplify (A -> B) AND (B -> C) AND (A -> C). (A -> B) AND (B -> C) AND (A -> C)
| # | A | B | C | f |
|---|---|---|---|---|
| 0 | FALSE | FALSE | FALSE | TRUE |
| 1 | FALSE | FALSE | TRUE | TRUE |
| 2 | FALSE | TRUE | FALSE | FALSE |
| 3 | FALSE | TRUE | TRUE | TRUE |
| 4 | TRUE | FALSE | FALSE | FALSE |
| 5 | TRUE | FALSE | TRUE | FALSE |
| 6 | TRUE | TRUE | FALSE | FALSE |
| 7 | TRUE | TRUE | TRUE | TRUE |
The engine found no law that shortens this expression; it is already as short as its rewriting laws can make it.
(A -> B) AND (B -> C) AND (A -> C) Classification: contingent
Hypothetical syllogism: A -> C follows from the first two implications, so adding it as a conjunct removes no row and it can be dropped. The table is TRUE on exactly the four rows of the two-implication chain: all FALSE; C alone; B and C; all TRUE.
8. Simplify NOT (A -> B) OR B. NOT (A -> B) OR B
| # | A | B | f |
|---|---|---|---|
| 0 | FALSE | FALSE | FALSE |
| 1 | FALSE | TRUE | TRUE |
| 2 | TRUE | FALSE | TRUE |
| 3 | TRUE | TRUE | TRUE |
The engine found no law that shortens this expression; it is already as short as its rewriting laws can make it.
NOT (A -> B) OR B Classification: contingent
NOT (A -> B) is A AND NOT B, so the formula is (A AND NOT B) OR B; distribution gives (A OR B) AND (NOT B OR B), and complement with identity leaves A OR B. FALSE only on A = FALSE, B = FALSE.
9. Simplify (A -> B) AND (NOT A -> B). (A -> B) AND (NOT A -> B)
| # | A | B | f |
|---|---|---|---|
| 0 | FALSE | FALSE | FALSE |
| 1 | FALSE | TRUE | TRUE |
| 2 | TRUE | FALSE | FALSE |
| 3 | TRUE | TRUE | TRUE |
The engine found no law that shortens this expression; it is already as short as its rewriting laws can make it.
(A -> B) AND (NOT A -> B) Classification: contingent
Rewrite both: (NOT A OR B) AND (A OR B); distribution factors B out as B OR (NOT A AND A), and complement with identity leaves B. Whatever A is, one of the two antecedents holds, so B is forced: TRUE exactly on the rows with B = TRUE.
10. Simplify (A OR B) AND (NOT A OR B) AND (A OR NOT B). (A OR B) AND (NOT A OR B) AND (A OR NOT B)
| # | A | B | f |
|---|---|---|---|
| 0 | FALSE | FALSE | FALSE |
| 1 | FALSE | TRUE | FALSE |
| 2 | TRUE | FALSE | FALSE |
| 3 | TRUE | TRUE | TRUE |
The engine found no law that shortens this expression; it is already as short as its rewriting laws can make it.
(A OR B) AND (NOT A OR B) AND (A OR NOT B) Classification: contingent
The first two clauses give B (factor B out, then complement); B AND (A OR NOT B) distributes to (B AND A) OR (B AND NOT B), and complement with identity leaves A AND B. TRUE on a single row, A = TRUE, B = TRUE; the step list shows no law applied.
Questions
Why does the engine not remove the consensus term?
Because removing it is not a local rewrite: you need to look at the other two terms together to see that the third adds no row. The simplifier reports no law applied and says that shorter equivalent forms are not ruled out; the Karnaugh map, which looks at the whole function, finds the cover without the extra term.
Related
Laws
- Identity law of Boolean algebra: A AND TRUE = A, A OR FALSE = A
- Null law (domination): A AND FALSE = FALSE, A OR TRUE = TRUE
- Idempotent law: A AND A = A, A OR A = A
- Complement law: A AND NOT A = FALSE, A OR NOT A = TRUE
- Absorption law: A OR (A AND B) = A, with proof
- Double negation (involution): NOT NOT A = A
Lessons
Tools
See also
- Consensus theorem: AB + A'C + BC = AB + A'C, with proof
- “Simplified” is not “minimal”: what a simplifier can promise
- Karnaugh map solver: 2 to 4 variables, groups, SOP and POS, don’t-cares from assumptions
- Peirce's law: ((A → B) → A) → A is a tautology
- Consensus in practice: AB + A'C + BC simplified
Practice
Generated from the Tangibool engine, semantics tangibool-semantics/1, engine 1.0.0, build . Every table, map, simplification and verdict on these pages was computed by the Tangibool engine when the site was built, and every claim was re-checked by the same exact checker the app uses. Limits are stated where they apply. © 2026 Foreranger LTD.