12#ifndef MCRL2_PBES_DETAIL_LPS2PBES_SAT_H
13#define MCRL2_PBES_DETAIL_LPS2PBES_SAT_H
22namespace pbes_system {
26template <
typename TermTraits>
27typename TermTraits::term_type
Sat(
const lps::multi_action& a,
28 const action_formulas::action_formula& x,
29 data::set_identifier_generator& id_generator,
33template <
typename Derived,
typename TermTraits>
37 typedef TermTraits
tr;
54 return static_cast<Derived&
>(*this);
103 push(tr::and_(left, right));
110 push(tr::or_(left, right));
117 push(tr::imp(left, right));
151template <
template <
class,
class>
class Traverser,
typename TermTraits>
154 typedef Traverser<apply_sat_traverser<Traverser, TermTraits>, TermTraits>
super;
161 :
super(a, id_generator, tr)
165template <
typename TermTraits>
Generic substitution function. The substitution is stored as a mapping of variables to expressions....
Identifier generator that stores the identifiers of the context in a set. Using the operator()() and ...
\brief A timed multi-action
const data::data_expression & time() const
add your file description here.
Add your file description here.
add your file description here.
function_symbol equal_to(const sort_expression &s)
Constructor for function symbol ==.
void replace_variables(T &x, const Substitution &sigma, typename std::enable_if<!std::is_base_of< atermpp::aterm, T >::value >::type *=nullptr)
data::data_expression equal_multi_actions(const multi_action &a, const multi_action &b)
Returns a data expression that expresses under which conditions the multi actions a and b are equal....
data::mutable_map_substitution make_fresh_variable_substitution(const data::variable_list &variables, data::set_identifier_generator &id_generator, bool add_to_context=true)
Generates a substitution that assigns fresh variables to the given sequence of variables....
TermTraits::term_type Sat(const lps::multi_action &a, const action_formulas::action_formula &x, data::set_identifier_generator &id_generator, TermTraits tr)
const pbes_expression & true_()
const pbes_expression & false_()
A class that takes a linear process specification and checks all tau-summands of that LPS for conflue...
apply_sat_traverser(const lps::multi_action &a, data::set_identifier_generator &id_generator, TermTraits tr)
Traverser< apply_sat_traverser< Traverser, TermTraits >, TermTraits > super
void apply(const action_formulas::forall &x)
const expression_type & top() const
void leave(const action_formulas::true_ &)
std::vector< expression_type > result_stack
void apply(const action_formulas::not_ &x)
void leave(const action_formulas::and_ &)
action_formulas::action_formula_traverser< Derived > super
void leave(const action_formulas::or_ &)
sat_traverser(const lps::multi_action &a_, data::set_identifier_generator &id_generator_, TermTraits)
data::set_identifier_generator & id_generator
void push(const expression_type &x)
void apply(const action_formulas::at &x)
void leave(const data::data_expression &x)
void leave(const action_formulas::imp &)
void leave(const action_formulas::false_ &)
void apply(const action_formulas::exists &x)
tr::term_type expression_type
const lps::multi_action & a
void leave(const action_formulas::multi_action &x)