12#ifndef MCRL2_PBES_DETAIL_STATEGRAPH_INFLUENCE_H
13#define MCRL2_PBES_DETAIL_STATEGRAPH_INFLUENCE_H
15#include "mcrl2/pbes/detail/pfnf_pbes.h"
16#include "mcrl2/pbes/detail/stategraph_pbes.h"
36 std::ostringstream out;
37 out << X <<
", " << v;
54 std::ostringstream out;
55 out << core::pp(source->X) <<
" ---> " << core::pp(target->X);
66 mCRL2log(log::log_level_t::verbose) <<
"--- influence graph ---\n";
67 for (
const auto& v: m_influence_vertices)
69 mCRL2log(log::log_level_t::verbose) << v.print() << std::endl;
71 for (
const auto& e: m_influence_edges)
73 mCRL2log(log::log_level_t::verbose) << e.print() << std::endl;
92 if (
i->
X ==
X &&
i->
v ==
v)
aterm_string(const aterm_string &t) noexcept=default
variable(const variable &) noexcept=default
Move semantics.
Algorithm class for the stategraph algorithm.
stategraph_influence_graph_algorithm(const stategraph_pbes &p)
const stategraph_pbes & m_pbes
void print_influence_graph() const
std::vector< influence_edge > m_influence_edges
std::vector< influence_vertex > m_influence_vertices
#define mCRL2log(LEVEL)
mCRL2log(LEVEL) provides the stream used to log.
influence_edge(const influence_vertex *source_, const influence_vertex *target_)
const influence_vertex * source
const influence_vertex * target
std::string print() const
std::string print() const
core::identifier_string X
influence_vertex(const core::identifier_string &X_, const data::variable &v_)