mCRL2
Loading...
Searching...
No Matches
algorithms.cpp
Go to the documentation of this file.
1// Author(s): Jan Friso Groote. Based on pbes/source/algorithms by 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//
11
17
18namespace mcrl2
19{
20
21namespace pres_system
22{
23
24namespace algorithms {
25
26void remove_parameters(pres& x, const std::set<data::variable>& to_be_removed)
27{
28 pres_system::remove_parameters(x, to_be_removed);
29}
30
31void remove_parameters(pres& x, const std::map<core::identifier_string, std::vector<std::size_t> >& to_be_removed)
32{
33 pres_system::remove_parameters(x, to_be_removed);
34}
35
37{
38 try
39 {
41 }
42 catch (const mcrl2::runtime_error&)
43 {
44 throw mcrl2::runtime_error("The PBES is not monotonic!");
45 }
46}
47
48bool is_normalized(const pres& x)
49{
51}
52
53void presinst_finite(pres& p, data::rewrite_strategy rewrite_strategy, const std::string& finite_parameter_selection)
54{
55 pres_system::presinst_finite(p, rewrite_strategy, finite_parameter_selection);
56}
57
58std::string print_removed_equations(const std::vector<propositional_variable>& removed)
59{
61}
62
63std::vector<propositional_variable> remove_unreachable_variables(pres& p)
64{
66}
67
68std::set<data::variable> significant_variables(const pres_expression& x)
69{
71}
72
73} // namespace algorithms
74
75} // namespace pres_system
76
77} // namespace mcrl2
78
Term containing a string.
parameterized boolean equation system
Definition pres.h:59
Standard exception class for reporting runtime errors.
Definition exception.h:27
rewrite_strategy
The strategy of the rewriter.
std::string print_removed_equations(const std::vector< propositional_variable > &removed)
Print removed equations.
void normalize(pres &x)
The function normalize brings (embedded) pres expressions into positive normal form,...
void presinst_finite(pres &p, data::rewrite_strategy rewrite_strategy, const std::string &finite_parameter_selection)
Apply finite instantiation to the given PRES.
std::vector< propositional_variable > remove_unreachable_variables(pres &p)
Removes equations that are not (syntactically) reachable from the initial state of a PRES.
void remove_parameters(pres &x, const std::set< data::variable > &to_be_removed)
Removes parameters from propositional variable instantiations in a pres expression.
std::set< data::variable > significant_variables(const pres_expression &x)
Returns the significant variables of a pres expression.
bool is_normalized(const pres &x)
Checks if a PRES is normalized.
std::string print_removed_equations(const std::vector< propositional_variable > &removed)
T remove_parameters(const T &x, const std::vector< std::size_t > &to_be_removed, typename std::enable_if< std::is_base_of< atermpp::aterm, T >::value >::type *=nullptr)
Removes parameters from propositional variable instantiations in a pres expression.
std::vector< propositional_variable > remove_unreachable_variables(pres &p)
Removes equations that are not (syntactically) reachable from the initial state of a PRES.
std::set< data::variable > significant_variables(const pres_expression &x)
bool is_normalized(const T &x)
Checks if a pres expression is normalized.
Definition normalize.h:166
void normalize(T &x, typename std::enable_if< !std::is_base_of< atermpp::aterm, T >::value >::type *=nullptr)
The function normalize brings (embedded) pres expressions into positive normal form,...
Definition normalize.h:177
void presinst_finite(pres &p, data::rewrite_strategy rewrite_strategy, const std::string &finite_parameter_selection)
A class that takes a linear process specification and checks all tau-summands of that LPS for conflue...
Definition indexed_set.h:72
Normalization of pres expressions.
add your file description here.
Functions for removing insignificant parameters from pres types.
add your file description here.
add your file description here.