What Are Minterms and Maxterms? A Complete Beginner's Guide

Minterms and maxterms are the two basic building blocks every Boolean simplification method — Karnaugh maps, Quine-McCluskey, and every automated solver — is built on top of. Before grouping cells or comparing binary strings makes any sense, it helps to be completely solid on what a minterm and a maxterm actually are, and how the two relate to each other.

What is a minterm?

A minterm is a single product (AND) term that's true for exactly one row of a truth table — one specific combination of inputs, and no other. For a 3-variable function with inputs A, B, C, the minterm for the row where A=0, B=1, C=1 is written A′BC: every variable appears exactly once, uncomplemented if it's 1 in that row, complemented if it's 0.

Every truth table row has exactly one minterm associated with it, and that minterm is true (evaluates to 1) only for that specific input combination — everywhere else, it's 0. That's what makes minterms useful: a function equal to 1 on some set of rows can always be written as the OR of those rows' minterms, and nothing else. That form is called the canonical sum-of-products — a bigger topic covered fully in Canonical SOP vs. Canonical POS.

What is a maxterm?

A maxterm is the mirror image: a single sum (OR) term that's false for exactly one row, and true everywhere else. For the same row (A=0, B=1, C=1), the maxterm is written A+B′+C′ — each variable appears once, uncomplemented if it's 0 in that row, complemented if it's 1. That's the opposite pattern from a minterm's rule, which trips people up the first time they see it, so it's worth sitting with: minterms match 1s directly; maxterms match 0s by listing the complement of what's in the row.

How the numbering works

Both minterms and maxterms are numbered the same way — by reading the row's input combination as a plain binary number. For 3 variables, row A=0,B=1,C=1 is binary 011, which is decimal 3. That row's minterm is called m₃ (or written as just "3" in a minterm list), and its maxterm is M₃. The letter (m vs M) tells you whether you're talking about the AND-term or OR-term version; the number tells you which row.

The complement relationship, worked example

Here's the detail that actually matters in practice: for any given function, the minterms and maxterms use the same numbering scale, and every index belongs to exactly one or the other — never both, never neither. If a function is defined as Σm(1,3,6) for 3 variables (1 at those three rows, 0 everywhere else among the 8 possible rows), its maxterms are automatically everything not in that list:

RowBinaryType
0000Maxterm (F=0)
1001Minterm (F=1)
2010Maxterm (F=0)
3011Minterm (F=1)
4100Maxterm (F=0)
5101Maxterm (F=0)
6110Minterm (F=1)
7111Maxterm (F=0)

So F = Σm(1,3,6) = ΠM(0,2,4,5,7) — two completely different-looking notations describing the exact same function. Minimized both ways (verified against the solver), the results are:

SOP: F = A′C + ABC′
POS: F = (A + C)(A′ + C′)(B + C)

Same function, same truth table, two valid minimal forms — which one is smaller depends on the specific function, exactly as covered in SOP vs. POS Explained.

Don't-cares in minterm/maxterm notation

A don't-care row is neither a minterm nor a maxterm in the strict sense — it's usually written separately as Σd(...), listed alongside whichever list (minterms or maxterms) you're using. A don't-care index is never required to appear in the final grouped result; it's only used opportunistically, exactly as covered in Handling Don't-Care Conditions in K-Maps.

Common mistakes

  • Assuming maxterm numbers are on a separate scale from minterms. They're not — they share the same index space, and knowing one list always tells you the other by elimination.
  • Getting the maxterm literal rule backwards. A maxterm's literals are the complement of the row's values (0 → uncomplemented, 1 → complemented) — the opposite of a minterm's rule. Writing a maxterm using the minterm rule produces an expression that's true everywhere except the intended row, instead of false only at that row.
  • Forgetting a number can't be in both lists. If an index shows up in both a minterm list and a maxterm list for the same function, one of the two lists has an error — every index belongs to exactly one.

Ready to work with these directly: try the Minterms Solver or Maxterms Solver, or start from the beginning with What Is a Karnaugh Map?

Try it on the solver

Work through the examples above directly — enter the same minterms or expression into the live tool.

Open the K-Map Solver