CBMC
|
Conversion between exprt
and bbdt
This encapsulate a bdd_managert, thus BDDs created with this class should only be combined with BDDs created using the same instance of bdd_exprt .
More...
#include <bdd_expr.h>
Public Member Functions | |
bddt | from_expr (const exprt &expr) |
exprt | as_expr (const bddt &root) const |
Protected Types | |
typedef std::unordered_map< exprt, bddt, irep_hash > | expr_mapt |
Protected Member Functions | |
bddt | from_expr_rec (const exprt &expr) |
exprt | as_expr (const bdd_nodet &r, std::unordered_map< bdd_nodet::idt, exprt > &cache) const |
Helper function for bddt to exprt conversion. More... | |
Protected Attributes | |
bdd_managert | bdd_mgr |
expr_mapt | expr_map |
std::vector< exprt > | node_map |
Mapping from BDD variables to expressions: the expression at index i of node_map corresponds to the i-th variable. More... | |
Conversion between exprt
and bbdt
This encapsulate a bdd_managert, thus BDDs created with this class should only be combined with BDDs created using the same instance of bdd_exprt .
See unit tests in unit/solvers/prop/bdd_expr.cpp for examples.
Definition at line 33 of file bdd_expr.h.
|
protected |
Definition at line 42 of file bdd_expr.h.
|
protected |
Helper function for bddt
to exprt
conversion.
r | node to convert |
cache | map of already computed values |
Definition at line 107 of file bdd_expr.cpp.
Definition at line 171 of file bdd_expr.cpp.
Definition at line 87 of file bdd_expr.cpp.
Definition at line 19 of file bdd_expr.cpp.
|
protected |
Definition at line 40 of file bdd_expr.h.
|
protected |
Definition at line 44 of file bdd_expr.h.
|
protected |
Mapping from BDD variables to expressions: the expression at index i
of node_map
corresponds to the i-th variable.
Definition at line 48 of file bdd_expr.h.