A completely specified function has a required output on every row. An incompletely specified function leaves some rows open: they are don't-cares, usually because those inputs can never happen.
Such a function is described by three sets of rows (see on set and off set): the rows that must be 1, the rows that must be 0, and the don't-care rows. In notation: F = Σm(1s) + d(don't-cares).
Any expression that is 1 on all the required 1s and 0 on all the required 0s is a correct implementation. So there are many correct answers, and the designer picks the cheapest.
The classic example is a circuit with a BCD input. Only codes 0–9 occur, so rows 10–15 are don't-cares. Treating some of them as 1s can turn small groups into big ones and remove literals.
Once you pick an expression, the circuit becomes completely specified: it produces some definite output on the don't-care rows, which nobody relies on.
| AB\CD | 00 | 01 | 11 | 10 |
|---|---|---|---|---|
| 00 | 0m0 | 0m1 | 0m3 | 0m2 |
| 01 | 0m4 | 1m5 | 1m7 | 1m6 |
| 11 | Xm12 | Xm13 | Xm15 | Xm14 |
| 10 | 1m8 | 1m9 | Xm11 | Xm10 |