mCRL2
Loading...
Searching...
No Matches
transformations.h
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 mcrl2/pbes/transformations.h
10/// \brief add your file description here.
11
12#ifndef MCRL2_PBES_TRANSFORMATIONS_H
13#define MCRL2_PBES_TRANSFORMATIONS_H
14
15#include "mcrl2/pbes/builder.h"
16
17namespace mcrl2::pbes_system {
18
19namespace detail {
20
22{
24 using super::apply;
25
27
29 : dataspec(dataspec_)
30 {}
31
32 template <class T>
33 void apply(T& result, const forall& x)
34 {
35 pbes_expression body;
36 apply(body, x.body());
37 result = make_forall_(data::order_variables_to_optimise_enumeration(x.variables(), dataspec), body);
38 }
39
40 template <class T>
41 void apply(T& result, const exists& x)
42 {
43 pbes_expression body;
44 apply(body, x.body());
45 result = make_exists_(data::order_variables_to_optimise_enumeration(x.variables(), dataspec), body);
46 }
47};
48
49} // namespace detail
50
51inline
53{
55 pbes_expression result;
56 f.apply(result, x);
57 return result;
58}
59
60} // namespace mcrl2::pbes_system
61
62
63
64#endif // MCRL2_PBES_TRANSFORMATIONS_H
\brief The existential quantification operator for pbes expressions
const pbes_expression & body() const
\brief The universal quantification operator for pbes expressions
const pbes_expression & body() const
pbes_expression order_quantified_variables(const pbes_expression &x, const data::data_specification &dataspec)
order_quantified_variables_builder(const data::data_specification &dataspec_)