# BooleanConvert

BooleanConvert[expr]

converts the Boolean expression expr to disjunctive normal form.

BooleanConvert[expr,form]

converts the Boolean expression expr to the specified form.

BooleanConvert[expr,form,cond]

finds an expression in the specified form that is equivalent to expr when cond is true.

# Details and Options

• BooleanConvert[expr,form] will produce an expression equivalent to expr.
• Available forms are:
•  "DNF","SOP" disjunctive normal form, sum of products "CNF","POS" conjunctive normal form, product of sums "ESOP" exclusive sum of products "ANF" algebraic normal form "NOR" two-level Nor and Not "NAND" two-level Nand and Not "BinaryNOR", "NOR2" two-argument Nor "BinaryNAND", "NAND2" two-argument Nand "AND" two-level And and Not "OR" two-level Or and Not "IMPLIES" Implies and Not "ITE","IF" If and constants "BFF" BooleanFunction form "BDT" Boolean decision tree
• The expression expr can contain any Boolean or logical functions, including BooleanFunction, BooleanCountingFunction, etc.
• BooleanConvert[bf,form] converts the internal form of a pure BooleanFunction object.
• BooleanConvert supports a Method option that specifies the detailed method to use.

# Examples

open allclose all

## Basic Examples(3)

Convert a Boolean expression to disjunctive normal form:

Convert xy to some common forms:

Convert xyz using the condition that x(yz) is true:

Show that the output is equivalent to the input when x(yz):

## Scope(2)

Convert a Boolean expression to different forms:

Disjunctive normal form:

Conjunctive normal form:

Exclusive sum of products:

Algebraic normal form:

Two-level Nand and Not:

Two-level Nor and Not:

Two-argument Nand:

Two-argument Nor:

Two-level And and Not:

Two-level Or and Not:

Implies and Not:

If and constants:

Boolean function form:

Boolean decision tree:

Show that they are all equivalent:

Convert a Boolean function using a "care set" or condition:

The resulting forms are equivalent when cond is true:

They are not equivalent without the condition:

Typically the forms are longer without conditions:

## Properties & Relations(3)

The output from BooleanConvert is equivalent to its input:

The output from BooleanConvert with condition is conditionally equivalent to its input:

The forms f and g are equivalent when cond is true:

They are not equivalent on their own:

Use BooleanMinimize to get the minimal length form:

The forms are equivalent:

## Neat Examples(1)

Wolfram Research (2008), BooleanConvert, Wolfram Language function, https://reference.wolfram.com/language/ref/BooleanConvert.html (updated 2024).

#### Text

Wolfram Research (2008), BooleanConvert, Wolfram Language function, https://reference.wolfram.com/language/ref/BooleanConvert.html (updated 2024).

#### CMS

Wolfram Language. 2008. "BooleanConvert." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2024. https://reference.wolfram.com/language/ref/BooleanConvert.html.

#### APA

Wolfram Language. (2008). BooleanConvert. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/BooleanConvert.html

#### BibTeX

@misc{reference.wolfram_2024_booleanconvert, author="Wolfram Research", title="{BooleanConvert}", year="2024", howpublished="\url{https://reference.wolfram.com/language/ref/BooleanConvert.html}", note=[Accessed: 13-September-2024 ]}

#### BibLaTeX

@online{reference.wolfram_2024_booleanconvert, organization={Wolfram Research}, title={BooleanConvert}, year={2024}, url={https://reference.wolfram.com/language/ref/BooleanConvert.html}, note=[Accessed: 13-September-2024 ]}