12#ifndef MCRL2_PBES_LTS2PBES_H
13#define MCRL2_PBES_LTS2PBES_H
15#include "mcrl2/modal_formula/count_fixpoints.h"
16#include "mcrl2/pbes/lps2pbes.h"
17#include "mcrl2/pbes/detail/lts2pbes_e.h"
34 template <
typename Parameters>
37 detail::E_lts2pbes(f, parameters, equations, core::term_traits_optimized<pbes_expression>());
53 bool preprocess_modal_operators =
false,
54 bool generate_counter_example =
false
58 std::set<core::identifier_string> lts_ids;
59 state_formulas::
state_formula f = state_formulas::preprocess_state_formula(formspec.formula(), lts_ids, preprocess_modal_operators);
62 std::size_t num_fixpoints = state_formulas::count_fixpoints(f);
63 std::size_t num_steps = num_fixpoints * lts1.state_count();
64 m_progress_meter.set_size(num_steps);
65 mCRL2log(log::verbose) <<
"Generating " << num_steps <<
" equations." << std::endl;
68 std::vector<pbes_equation> equations;
69 if (generate_counter_example)
72 run(f, equations, parameters);
73 equations = equations + parameters.equations();
78 run(f, equations, parameters);
82 state_type s0 = lts0.initial_state();
83 core::identifier_string Xs0 = detail::make_identifier(detail::mu_name(f), s0);
84 data::data_expression_list e = detail::mu_expressions(f);
87 return pbes(lts0.data(), equations, init);
101 return algorithm
.run(formspec
, preprocess_modal_operators
, generate_counter_example
);
Identifier generator that stores the identifiers of the context in a set. Using the operator()() and ...
This class contains labelled transition systems in .lts format.
Algorithm for translating a state formula and an untimed specification to a pbes.
utilities::progress_meter m_progress_meter
data::set_identifier_generator m_id_generator
void run(const state_formulas::state_formula &f, std::vector< pbes_equation > &equations, Parameters ¶meters)
pbes_system::detail::lts2pbes_lts lts1
pbes run(const state_formulas::state_formula_specification &formspec, bool preprocess_modal_operators=false, bool generate_counter_example=false)
Runs the translation algorithm.
lts2pbes_algorithm(const lts::lts_lts_t &l)
Constructor.
const lts::lts_lts_t & lts0
parameterized boolean equation system
\brief A propositional variable instantiation
#define mCRL2log(LEVEL)
mCRL2log(LEVEL) provides the stream used to log.
pbes lts2pbes(const lts::lts_lts_t &l, const state_formulas::state_formula_specification &formspec, bool preprocess_modal_operators=false, bool generate_counter_example=false)
Translates an LTS and a modal formula into a PBES that represents the corresponding model checking pr...