12#ifndef MCRL2_LPS_DECLUSTER_H
13#define MCRL2_LPS_DECLUSTER_H
23template <
typename Specification>
34 template <
typename SummandType,
typename OutIter>
39 SummandType s(summand);
40 s.condition() = disjunct;
53 std::back_insert_iterator<action_summand_vector_type> act_it(declustered_action_summands);
54 auto const& action_summands =
m_spec.process().action_summands();
55 for (
auto i = action_summands.begin(); i != action_summands.end(); ++i)
61 std::back_insert_iterator<deadlock_summand_vector> dl_it (declustered_deadlock_summands);
62 auto const& deadlock_summands =
m_spec.process().deadlock_summands();
63 for (
auto i = deadlock_summands.begin(); i != deadlock_summands.end(); ++i)
68 m_spec.process().action_summands() = declustered_action_summands;
69 m_spec.process().deadlock_summands() = declustered_deadlock_summands;
Specification::process_type process_type
process_type::action_summand_type action_summand_type
void decluster_summand(const SummandType &summand, OutIter &out)
decluster_algorithm(Specification &spec)
detail::lps_algorithm< Specification > super
std::vector< action_summand_type > action_summand_vector_type
Algorithm class for algorithms on linear process specifications. It can be instantiated with lps::spe...
lps_algorithm(Specification &spec)
Constructor.
Specification & m_spec
The specification that is processed by the algorithm.
Join and split functions for data expressions.
Add your file description here.
std::set< data_expression > split_or(const data_expression &expr)
Splits a disjunction into a sequence of operands Given a data expression of the form p1 || p2 || ....
std::vector< deadlock_summand > deadlock_summand_vector
\brief vector of deadlock_summands
A class that takes a linear process specification and checks all tau-summands of that LPS for conflue...