12#ifndef MCRL2_LPS_INVELM_ALGORITHM_H
13#define MCRL2_LPS_INVELM_ALGORITHM_H
75template <
class Specification>
106 template <
typename SummandSequence>
120 Specification& a_lps,
122 const int a_time_limit = 0,
123 const bool a_path_eliminator =
false,
125 const bool a_apply_induction =
false,
126 const bool a_simplify_all =
false
129 f_bdd_prover(a_lps.data(), data::used_data_equation_selector(a_lps.data()),a_rewrite_strategy, a_time_limit, a_path_eliminator, a_solver_type, a_apply_induction),
void set_formula(const data_expression &formula)
Sets Prover::f_formula to formula. precondition: the argument passed as parameter formula is an expre...
data_expression get_bdd()
Returns the BDD BDD_Prover::f_bdd.
Algorithm class for algorithms on linear process specifications. It can be instantiated with lps::spe...
void remove_trivial_summands()
Removes summands with condition equal to false.
lps_algorithm(Specification &spec)
Constructor.
Specification & m_spec
The specification that is processed by the algorithm.
invelm_algorithm(Specification &a_lps, const data::rewriter::strategy a_rewrite_strategy=data::jitty, const int a_time_limit=0, const bool a_path_eliminator=false, const data::detail::smt_solver_type a_solver_type=data::detail::solver_type_cvc, const bool a_apply_induction=false, const bool a_simplify_all=false)
detail::lps_algorithm< Specification > super
void simplify_summands(SummandSequence &summands, const data::data_expression &invariant, bool apply_prover)
void run(const data::data_expression &invariant, bool apply_prover)
void simplify_summand(summand_base &s, const data::data_expression &invariant, bool apply_prover)
Adds an invariant to the condition of the summand s, and optionally applies the prover to it.
process_type::action_summand_type action_summand_type
data::detail::BDD_Prover f_bdd_prover
Specification::process_type process_type
Base class for LPS summands.
const data::data_expression & condition() const
Returns the condition expression.
Parser for data specifications.
Add your file description here.
smt_solver_type
The enumeration type smt_solver_type enumerates all available SMT solvers.
data_expression and_(data_expression const &p, data_expression const &q)
Returns an expression equivalent to p or q.
bool is_false_function_symbol(const atermpp::aterm &e)
Recogniser for function false.
rewrite_strategy
The strategy of the rewriter.
A class that takes a linear process specification and checks all tau-summands of that LPS for conflue...