# Maxterm

A maxterm is the Boolean algebra expression formed by taking a row of a truth table and forming an `or` function where the inputs are the input variables of the row. Each maxterm variable will be negated if the same variable takes `1` in the row, otherwise the variable is unnegated. The maxterms are often numbered, one for each row, and named Mi for row i. We can form an expression as a product of sums which is equivalent to the function of the truth table by applying the `and` function to all the maxterms whose function result is `0`.

## Example

The truth table for the half adder, with a column showing the maxterm, is as follows:

` A `` B `` S `` C `maxterm
`0``0``0``0`M0
`0``1``1``0`M1
`1``0``1``0`M2
`1``1``0``1`M3

If we were only interested in the sum output `S` then we see that both maxterms M0 and M3 give an output of `0` for `S` and this gives the sum of products equivalent of `(A or B) and (not(A) or not(B))`. We know that the equation for `S` is `S = A xor B`, so our sum of products result is correct.

## References

Mano, M. Morris, and Kime, Charles R. Logic and Computer Design Fundamentals. 2nd Edition. Prentice Hall, 2000.