# Crate boolean_expression[−][src]

# boolean_expression expression manipulation / BDD library

This crate provides for the manipulation and evaluation of Boolean expressions
and Binary Decision Diagrams (BDDs), and the construction of BDDs from Boolean
expressions. It can also simplify Boolean expressions via either a set of rules
such as DeMorgan's Law (see `Expr::simplify_via_laws()`

), or via a
roundtrip through a `BDD`

and a cubelist-based term reduction (see
`Expr::simplify_via_bdd()`

). The latter is more powerful, but also more
expensive.

The main pieces of interest are:

`Expr`

, an AST enum for expression simple`AND`

/`OR`

/`NOT`

-based expressions.`BDD`

, a Binary Decision Diagram implementation.`CubeList`

, a low-level datatype with support for cubelist manipulation (used when converting`BDD`

functions to expressions).

## Structs

BDD |
A |

BDDLoader |
A |

Cube |
A |

CubeList |
A |

PersistedBDD |
A |

## Enums

CubeMergeResult |
The result of attempting to merge two cubes. |

CubeVar |
A variable assignment in a cube. |

Expr |
An |

## Constants

BDD_ONE |
A special terminal |

BDD_ZERO |
A special terminal |

## Traits

BDDOutput |
The |

## Type Definitions

BDDFunc |
A |