mCRL2
Loading...
Searching...
No Matches
algorithms.cpp
Go to the documentation of this file.
1// Author(s): Wieger Wesselink
2// Copyright: see the accompanying file COPYING or copy at
3// https://github.com/mCRL2org/mCRL2/blob/master/COPYING
4//
5// Distributed under the Boost Software License, Version 1.0.
6// (See accompanying file LICENSE_1_0.txt or copy at
7// http://www.boost.org/LICENSE_1_0.txt)
8//
9/// \file pbes.cpp
10/// \brief
11
12#include "mcrl2/pbes/normalize.h"
13#include "mcrl2/pbes/pbesinst_finite_algorithm.h"
14#include "mcrl2/pbes/remove_equations.h"
15#include "mcrl2/pbes/remove_parameters.h"
16#include "mcrl2/pbes/significant_variables.h"
17
18
19
20
21
22namespace mcrl2::pbes_system::algorithms {
23
24void remove_parameters(pbes& x, const std::set<data::variable>& to_be_removed)
25{
26 pbes_system::remove_parameters(x, to_be_removed);
27}
28
30{
31 pbes_system::remove_parameters(x, to_be_removed);
32}
33
35{
36 try
37 {
38 pbes_system::normalize(x);
39 }
40 catch (const mcrl2::runtime_error&)
41 {
42 throw mcrl2::runtime_error("The PBES is not monotonic!");
43 }
44}
45
46bool is_normalized(const pbes& x)
47{
48 return pbes_system::is_normalized(x);
49}
50
51void pbesinst_finite(pbes& p, data::rewrite_strategy rewrite_strategy, const std::string& finite_parameter_selection)
52{
53 pbes_system::pbesinst_finite(p, rewrite_strategy, finite_parameter_selection);
54}
55
57{
58 return pbes_system::detail::print_removed_equations(removed);
59}
60
62{
63 return pbes_system::remove_unreachable_variables(p);
64}
65
67{
68 return pbes_system::significant_variables(x);
69}
70
71} // namespace mcrl2::pbes_system::algorithms
parameterized boolean equation system
Definition pbes.h:54
std::set< data::variable > significant_variables(const pbes_expression &x)
Returns the significant variables of a pbes expression.
void remove_parameters(pbes &x, const std::set< data::variable > &to_be_removed)
Removes parameters from propositional variable instantiations in a pbes expression.
void remove_parameters(pbes &x, const std::map< core::identifier_string, std::vector< std::size_t > > &to_be_removed)
Removes parameters from propositional variable instantiations in a pbes expression.
void pbesinst_finite(pbes &p, data::rewrite_strategy rewrite_strategy, const std::string &finite_parameter_selection)
Apply finite instantiation to the given PBES.
bool is_normalized(const pbes &x)
Checks if a PBEs is normalized.
std::vector< propositional_variable > remove_unreachable_variables(pbes &p)
Removes equations that are not (syntactically) reachable from the initial state of a PBES.
std::string print_removed_equations(const std::vector< propositional_variable > &removed)
Print removed equations.
void normalize(pbes &x)
The function normalize brings (embedded) pbes expressions into positive normal form,...
The main namespace for the PBES library.