12#ifndef MCRL2_LPS_LINEARISE_UTILITY_H
13#define MCRL2_LPS_LINEARISE_UTILITY_H
31 return std::string(s1) < std::string(s2);
47 (a1_name == a2_name && a1.
sorts() < a2.
sorts());
241 const bool ignore_time)
245 deadlock_summands.push_back(s);
249 assert(!ignore_time);
252 if (std::any_of(action_summands.begin(), action_summands.end(),
260 for (deadlock_summand_vector::iterator i=deadlock_summands.begin(); i!=deadlock_summands.end(); ++i)
269 copy(i,deadlock_summands.end(),back_inserter(result));
270 deadlock_summands.swap(result);
275 result.push_back(*i);
280 deadlock_summands.swap(result);
Term containing a string.
const_iterator end() const
Returns a const_iterator pointing to the end of the term_list.
const term_list< Term > & tail() const
Returns the tail of the list.
const Term & front() const
Returns the first element of the list.
const_iterator begin() const
Returns a const_iterator pointing to the beginning of the term_list.
bool empty() const
Returns true if the list's size is 0.
void push_front(const Term &el)
Inserts a new element at the beginning of the current list.
const lps::multi_action & multi_action() const
Returns the multi-action of this summand.
LPS summand containing a deadlock.
const lps::deadlock & deadlock() const
Returns the deadlock of this summand.
bool has_time() const
Returns true if time is available.
const data::data_expression & time() const
Returns the time.
bool has_time() const
Returns true if time is available.
const data::data_expression & time() const
LPS summand containing a multi-action.
const data::data_expression & condition() const
Returns the condition expression.
const data::sort_expression_list & sorts() const
const core::identifier_string & name() const
\brief A multiset of action names
const core::identifier_string_list & names() const
const action_label & label() const
\brief A communication expression
The class data_expression.
add your file description here.
term_list< Term > sort_list(const term_list< Term > &l, const std::function< bool(const Term &, const Term &)> &ordering=[](const Term &t1, const Term &t2){ return t1< t2;})
Returns the list with the elements sorted according to the <-operator on the addresses of terms.
atermpp::term_list< identifier_string > identifier_string_list
\brief list of identifier_strings
bool is_or_application(const atermpp::aterm &e)
Recogniser for application of ||.
const function_symbol & false_()
Constructor for function symbol false.
bool is_and_application(const atermpp::aterm &e)
Recogniser for application of &&.
const function_symbol & true_()
Constructor for function symbol true.
const data_expression & binary_right(const application &x)
bool search_free_variable(const T &x, const variable &v)
Returns true if the term has a given free variable as subterm.
const data_expression & binary_left(const application &x)
std::vector< stochastic_action_summand > stochastic_action_summand_vector
\brief vector of stochastic_action_summands
process::communication_expression_list sort_communications(const process::communication_expression_list &communications)
process::action_list insert(const process::action &act, process::action_list l)
bool implies_condition(const data::data_expression &c1, const data::data_expression &c2)
bool occursinterm(const data::data_expression &t, const data::variable &var)
std::vector< deadlock_summand > deadlock_summand_vector
\brief vector of deadlock_summands
process::action_list sort_actions(const process::action_list &actions, const std::function< bool(const process::action &, const process::action &)> &cmp=[](const process::action &t1, const process::action &t2){ return action_compare()(t1, t2);})
void insert_timed_delta_summand(const stochastic_action_summand_vector &action_summands, deadlock_summand_vector &deadlock_summands, const deadlock_summand &s, const bool ignore_time)
process::action_name_multiset_list sort_multi_action_labels(const process::action_name_multiset_list &l)
bool subsumes(const stochastic_action_summand &as, const deadlock_summand &ds)
process::action_name_multiset sort_action_names(const process::action_name_multiset &action_labels, const std::function< bool(const core::identifier_string &, const core::identifier_string &)> &cmp=[](const core::identifier_string &t1, const core::identifier_string &t2){ return action_name_compare()(t1, t2);})
atermpp::term_list< action > action_list
\brief list of actions
atermpp::term_list< action_name_multiset > action_name_multiset_list
\brief list of action_name_multisets
A class that takes a linear process specification and checks all tau-summands of that LPS for conflue...
add your file description here.
add your file description here.
bool operator()(const process::action &a1, const process::action &a2) const
bool operator()(const process::action_label &a1, const process::action_label &a2) const
bool operator()(const core::identifier_string &s1, const core::identifier_string &s2) const