mCRL2
|
#include <confluence_checker.h>
Public Member Functions | |
Confluence_Checker (Specification &a_lps, data::rewriter::strategy a_rewrite_strategy=data::jitty, int a_time_limit=0, bool a_path_eliminator=false, data::detail::smt_solver_type a_solver_type=data::detail::solver_type_cvc, bool a_apply_induction=false, bool a_check_all=false, bool a_no_sums=false, std::string a_conditions="c", bool a_counter_example=false, bool a_generate_invariants=false, std::string const &a_dot_file_name=std::string()) | |
Constructor that initializes Confluence_Checker::f_lps, Confluence_Checker::f_bdd_prover,. | |
void | check_confluence_and_mark (const data::data_expression &a_invariant, const std::size_t a_summand_number) |
Check the confluence of the LPS Confluence_Checker::f_lps. precondition: the argument passed as parameter a_invariant is an expression of sort Bool in internal mCRL2 format precondition: the argument passed as parameter a_summand_number corresponds with a summand of the LPS for which confluence must be checked (lowest summand has number 1). If this number is 0 confluence for all summands is checked. | |
Private Types | |
typedef Specification::process_type | process_type |
typedef process_type::action_summand_type | action_summand_type |
typedef std::vector< action_summand_type > | action_summand_vector_type |
Private Member Functions | |
void | save_dot_file (std::size_t a_summand_number_1, std::size_t a_summand_number_2) |
Writes a dot file of the BDD created when checking the confluence of summands a_summand_number_1 and a_summand_number_2. | |
void | print_counter_example () |
Outputs a path in the BDD corresponding to the condition at hand that leads to a node labelled false. | |
bool | check_summands (const data::data_expression &a_invariant, const action_summand_type a_summand_1, const std::size_t a_summand_number_1, const action_summand_type a_summand_2, const std::size_t a_summand_number_2, const char a_condition_type) |
Checks the confluence of summand a_summand_1 and a_summand_2. | |
void | check_confluence_and_mark_summand (action_summand_type &a_summand, const std::size_t a_summand_number, const data::data_expression &a_invariant, const char a_condition_type, bool &a_is_marked) |
Checks and updates the confluence of summand a_summand concerning all other tau-summands. | |
void | uniquely_rename_summutation_variables (action_summand_type &summand) |
Private Attributes | |
Disjointness_Checker | f_disjointness_checker |
Class that can check if two summands are disjoint. | |
Invariant_Checker< Specification > | f_invariant_checker |
Class that checks if an invariant holds for an LPS. | |
data::detail::BDD_Prover | f_bdd_prover |
BDD based prover. | |
data::detail::BDD2Dot | f_bdd2dot |
Class that prints BDDs in dot format. | |
Specification & | f_lps |
A linear process specification. | |
bool | f_check_all |
Flag indicating whether or not the tau actions of confluent tau summands are renamed to ctau. | |
bool | f_no_sums |
Do not rewrite summands with sum operators. | |
std::string | f_conditions |
Confluence types for which the tool should check. | |
bool | f_counter_example |
Flag indicating whether or not counter examples are printed. | |
std::string | f_dot_file_name |
The prefix for the names of the files written in dot format. | |
bool | f_generate_invariants |
Flag indicating whether or not invariants are generated and checked each time a. | |
std::size_t | f_number_of_summands |
The number of summands of the current LPS. | |
std::vector< std::size_t > | f_intermediate |
An integer array, storing intermediate results per summand. | |
data::set_identifier_generator | f_set_identifier_generator |
Identifier generator to allow variables to be uniquely renamed. | |
Definition at line 158 of file confluence_checker.h.
|
private |
Definition at line 161 of file confluence_checker.h.
|
private |
Definition at line 162 of file confluence_checker.h.
|
private |
Definition at line 160 of file confluence_checker.h.
mcrl2::lps::detail::Confluence_Checker< Specification >::Confluence_Checker | ( | Specification & | a_lps, |
data::rewriter::strategy | a_rewrite_strategy = data::jitty , |
||
int | a_time_limit = 0 , |
||
bool | a_path_eliminator = false , |
||
data::detail::smt_solver_type | a_solver_type = data::detail::solver_type_cvc , |
||
bool | a_apply_induction = false , |
||
bool | a_check_all = false , |
||
bool | a_no_sums = false , |
||
std::string | a_conditions = "c" , |
||
bool | a_counter_example = false , |
||
bool | a_generate_invariants = false , |
||
std::string const & | a_dot_file_name = std::string() |
||
) |
Constructor that initializes Confluence_Checker::f_lps, Confluence_Checker::f_bdd_prover,.
Confluence_Checker::f_generate_invariants and Confluence_Checker::f_dot_file_name. precondition: the argument passed as parameter a_lps is a valid mCRL2 LPS precondition: the argument passed as parameter a_time_limit is greater than or equal to 0. If the argument is equal to 0, no time limit will be enforced
Definition at line 833 of file confluence_checker.h.
void mcrl2::lps::detail::Confluence_Checker< Specification >::check_confluence_and_mark | ( | const data::data_expression & | a_invariant, |
const std::size_t | a_summand_number | ||
) |
Check the confluence of the LPS Confluence_Checker::f_lps. precondition: the argument passed as parameter a_invariant is an expression of sort Bool in internal mCRL2 format precondition: the argument passed as parameter a_summand_number corresponds with a summand of the LPS for which confluence must be checked (lowest summand has number 1). If this number is 0 confluence for all summands is checked.
Definition at line 884 of file confluence_checker.h.
|
private |
Checks and updates the confluence of summand a_summand concerning all other tau-summands.
Definition at line 747 of file confluence_checker.h.
|
private |
Checks the confluence of summand a_summand_1 and a_summand_2.
Definition at line 666 of file confluence_checker.h.
|
private |
Outputs a path in the BDD corresponding to the condition at hand that leads to a node labelled false.
Definition at line 585 of file confluence_checker.h.
|
private |
Writes a dot file of the BDD created when checking the confluence of summands a_summand_number_1 and a_summand_number_2.
Definition at line 574 of file confluence_checker.h.
|
private |
Definition at line 597 of file confluence_checker.h.
|
private |
Class that prints BDDs in dot format.
Definition at line 175 of file confluence_checker.h.
|
private |
BDD based prover.
Definition at line 172 of file confluence_checker.h.
|
private |
Flag indicating whether or not the tau actions of confluent tau summands are renamed to ctau.
Flag indicating whether or not the process of checking the confluence of a summand stops when
a summand is encountered that is not confluent with the tau summand at hand.
Definition at line 185 of file confluence_checker.h.
|
private |
Confluence types for which the tool should check.
Definition at line 191 of file confluence_checker.h.
|
private |
Flag indicating whether or not counter examples are printed.
Definition at line 194 of file confluence_checker.h.
|
private |
Class that can check if two summands are disjoint.
Definition at line 166 of file confluence_checker.h.
|
private |
The prefix for the names of the files written in dot format.
Definition at line 197 of file confluence_checker.h.
|
private |
Flag indicating whether or not invariants are generated and checked each time a.
summand is encountered that is not confluent with the tau summand at hand.
Definition at line 201 of file confluence_checker.h.
|
private |
An integer array, storing intermediate results per summand.
Definition at line 207 of file confluence_checker.h.
|
private |
Class that checks if an invariant holds for an LPS.
Definition at line 169 of file confluence_checker.h.
|
private |
A linear process specification.
Definition at line 178 of file confluence_checker.h.
|
private |
Do not rewrite summands with sum operators.
Definition at line 188 of file confluence_checker.h.
|
private |
The number of summands of the current LPS.
Definition at line 204 of file confluence_checker.h.
|
private |
Identifier generator to allow variables to be uniquely renamed.
Definition at line 210 of file confluence_checker.h.