In Boolean algebra, there are two transformation rules named after the British
mathematician Augustus De Morgan. These rules state that:
1. The complement of the union of two sets is the intersection of their complements.
2. The complement of the intersection of two sets is the union of their complements.
In "normal" language, these would be written as:
1. "not (A and B)" = "(not A) or (not B)"
2. "not (A or B)" = "(not A) and (not B)"
Based on these two laws, any Boolean expression written in disjunctive normal form
can be transformed into its negation.
It is also possible to negate all models and solutions from the result of a
Boolean minimization from function eqmcc()
. The resulting object, of
class "qca"
, is automatically recognised by this function (provided the
minimization is Boolean).
The products should normally be split by using a star *
sign, otherwise
the sets' names will be considered the individual letters in alphabetical order, unless
they are specified via snames
.
To negate multilevel expressions, the arguent noflevels
is required.