BooleanConvert
expr rewritten in the given boolean normal form — "DNF" (default), "CNF", or "NNF".
✓ checked against that system · ! checked, with disagreements (hover a chip)Wolfram Language
BooleanConvert!BooleanConvert(expr)expr in disjunctive normal form (an Or of Ands) — same as LogicalExpandBooleanConvert(expr, "CNF")expr in conjunctive normal form (an And of Ors)BooleanConvert(expr, "NNF")expr with Not pushed to the leaves, but And/Or left in their original nesting shape (not distributed)Typed signatures
| Type | Package | Applies |
|---|---|---|
(any, string?) -> any | combinatorics | always |
Details
- "DNF" and "CNF" are Wolfram's own forms. "NNF" is an extension of ours — Wolfram 15's BooleanConvert has no "NNF" form (BooleanConvert(expr, "NNF") stays unevaluated there); we implement it anyway since it falls straight out of the same elimination pipeline, and it is documented here as a divergence rather than a Wolfram form.
- Other Wolfram forms ("ESOP", "AC", "BF", …) are left unevaluated rather than approximated.
- Shares LogicalExpand's elimination of Implies/Equivalent/Xor/Nand/Nor and its deterministic sort/dedup of every And/Or's operands.
- A CNF clause with both a literal and its negation (a tautology) is dropped; an all-dropped result is True.
- Clauses that differ only in one literal's polarity merge and absorbed clauses drop, so
Implies(b, b)is True andb ∧ ¬bis False, as in Wolfram. This is not a full minimizer.
Examples
Scope #
live ↗
InOut
live ↗
InOut
live ↗
InOut
live ↗
InOut
live ↗
InOut
live ↗
InOut
live ↗
InOut
live ↗
InOut
live ↗
InOut
live ↗
InOut
About
| Examples | 15 |
|---|---|
| Checked against | Wolfram Language 13 agree1 differ1 unevaluated |
| Crosswalk | Wolfram Language |
See also: LogicalExpand