1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
// boolean_expression: a Rust crate for Boolean expressions and BDDs.
//
// Copyright (c) 2016 Chris Fallin <cfallin@c1f.net>. Released under the MIT
// License.
//
//! # 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).
extern crate itertools;
extern crate smallvec;
extern crate indoc;
pub use *;
pub use *;
pub use *;
pub use *;