Expand description
The library to generate CNF (Conjunctive Normal Form) formulas.
This library provides simple CNF writer, structures to create boolean formula from
boolean expressions and integer expressions. The module writer
provides
basic types, traits to handle clauses and literals, simple the CNF writer to write
same CNF formulas. The boolexpr
module provides structure to construct boolean
expressions. The intexpr
and dynintexpr
modules provides structure and traits to
construct integer expressions.
Same construction of expressions can be done in natural way by using operators or
methods. The object called ExprCreator
holds all expressions. The main structures
that allow construct expressions are expression nodes: BoolExprNode
, IntExprNode
and DynIntExprNode
. BoolExprNode allows to construct boolean expressions.
IntExprNode
and DynIntExprNode
allows to construct integer expressions or multiple
bit expressions.
The version 0.4.0 offers new interface to operate on expressions.
This interface in boolvar
, intvar
and dynintvar
modules. New interface offers
few simplifications that facility writing complex expressions.
New boolvar
module provides simpler interface to construct boolean expressions.
New intvar
module provides simpler interface to construct integer expressions.
New dynintvar
module provides simpler interface to construct dynamic integer expressions.
The routine that creates new expression must be called inside call16
, call32
or callsys
.
That routine can returns formula to generate. The BoolVar
allows to operate on boolean
expressions, IntVar
allows to operate on integer expressions and DynIntVar
allows to
operate on dynamic integer expressions. These types can be used as references and
constants be converted into one of that type by using From trait.
The version 0.5.0 adds min
and max
helpers, new an optimized tables and If-Then-Else and
and additional subvalues
method to dynamic integers.
Samples of usage of these modules can be found in documentation of these modules.
Typical usage of this library is: construction boolean expression and write it by using
method write
from an expression object. The writer
module can be used to write
‘raw’ CNF formulas that can be generated by other software.
Re-exports§
pub use writer::Literal;
pub use writer::VarLit;
pub use generic_array;
Modules§
- The module to generate CNF clauses from boolean expressions.
- The module to generate CNF clauses from boolean expressions.
- The module to generate CNF clauses from boolean expressions better than ‘boolexpr’.
- The module to generate CNF clauses from dynamic integer expressions.
- The module to generate CNF clauses from dynamic integer expressions better than ‘dynintexpr’.
- The module to generate CNF clauses from integer expressions.
- The module to generate CNF clauses from integer expressions better than ‘intexpr’.
- The module to write CNF from clauses.