|
| | BDD_Path_Eliminator (smt_solver_type a_solver_type) |
| | Constructor that initializes the field BDD_Path_Eliminator::f_smt_solver.
|
| |
| data_expression | simplify (const data_expression &a_bdd) override |
| | Returns a BDD without inconsistent paths, equivalent to a_bdd. precondition: The argument passed as parameter a_bdd is a data expression in internal mCRL2 format with the following restrictions: It either represents the constant true or the constant false, or it is an if-then-else expression with an expression of sort Bool as guard, and a then-branch and an else-branch that again follow these restrictions.
|
| |
| virtual | ~BDD_Simplifier ()=default |
| | Destructor without any additional functionality.
|
| |
| void | set_time_limit (time_t a_time_limit) |
| | Sets the attribute BDD_Simplifier::f_deadline.
|
| |
| virtual data_expression | simplify (const data_expression &a_bdd) |
| | Returns a simplified BDD, equivalent to the bdd a_bdd. precondition: The argument passed as parameter a_bdd is a data expression in internal mCRL2 format with the following restrictions: It either represents the constant true or the constant false, or it is an if-then-else expression with an expression of sort Bool as guard, and a then-branch and an else-branch that again follow these restrictions.
|
| |
Base class for eliminating inconsistent paths from BDDs.
\detail The class BDD_Path_Eliminator is a base class for classes that eliminate inconsistent paths from BDDs. The class BDD_Path_Eliminator inherits from the class BDD_Simplifier. It uses an SMT solver to eliminate inconsistent paths from BDDs. The parameter a_solver_type of the constructor BDD_Path_Eliminator::BDD_Path_Eliminator is used to indicate which SMT solver should be used for this task. A path in a BDD is constructed by selecting a set of guards as follows: starting at the root node, one of the two edges at each guard is followed until a leaf is reached. Each time the true-edge is chosen, the guard is added to the set. Each time the false-edge is chosen, the negation of the guard is added to the set. If the conjunction of all elements in this set is a contradiction, the path is inconsistent.
The method BDD_Path_Eliminator::simplify receives a BDD as parameter a_bdd and returns the equivalent BDD from which all inconsistent paths have been removed.
Definition at line 46 of file bdd_path_eliminator.h.
Returns a BDD without inconsistent paths, equivalent to a_bdd. precondition: The argument passed as parameter a_bdd is a data expression in internal mCRL2 format with the following restrictions: It either represents the constant true or the constant false, or it is an if-then-else expression with an expression of sort Bool as guard, and a then-branch and an else-branch that again follow these restrictions.
- Parameters
-
| a_bdd | A binary decision diagram. |
Reimplemented from mcrl2::data::detail::BDD_Simplifier.
Definition at line 215 of file bdd_path_eliminator.h.