mCRL2
Loading...
Searching...
No Matches
bdd_info.h
Go to the documentation of this file.
1// Author(s): Luc Engelen
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
12#ifndef MCRL2_DATA_DETAIL_PROVER_BDD_INFO_H
13#define MCRL2_DATA_DETAIL_PROVER_BDD_INFO_H
14
15#include "mcrl2/data/bool.h"
16
17namespace mcrl2
18{
19namespace data
20{
21namespace detail
22{
23
26{
27 protected:
29 {
30 const mcrl2::data::application& a = atermpp::down_cast<mcrl2::data::application>(x);
31 return a[n];
32 // mcrl2::data::application::const_iterator i = a.begin();
33 // std::advance(i, n);
34 // return *i;
35 }
36
37 public:
38
43 {
44 return argument(a_bdd,0);
45 }
46
51 {
52 return argument(a_bdd,1);
53 }
54
59 {
60 return argument(a_bdd,2);
61 }
62
67 static inline bool is_true(const data_expression& a_bdd)
68 {
70 }
71
76 static inline bool is_false(const data_expression& a_bdd)
77 {
79 }
80
85 static inline bool is_if_then_else(const data_expression& a_bdd)
86 {
88 }
89};
90
91} // namespace detail
92} // namespace data
93} // namespace mcrl2
94
95#endif
The standard sort bool_.
An application of a data expression to a number of arguments.
The class BDD_Info provides information about the structure of binary decision diagrams.
Definition bdd_info.h:26
static const mcrl2::data::data_expression & get_true_branch(const mcrl2::data::data_expression &a_bdd)
Method that returns the true-branch of a BDD.
Definition bdd_info.h:50
static bool is_if_then_else(const data_expression &a_bdd)
Method that indicates wether or not the root of a BDD is a guard node.
Definition bdd_info.h:85
static bool is_false(const data_expression &a_bdd)
Method that indicates whether or not a BDD equals false.
Definition bdd_info.h:76
static const mcrl2::data::data_expression & get_guard(const mcrl2::data::data_expression &a_bdd)
Method that returns the guard of a BDD.
Definition bdd_info.h:42
static const mcrl2::data::data_expression & argument(const mcrl2::data::data_expression &x, std::size_t n)
Definition bdd_info.h:28
static const mcrl2::data::data_expression & get_false_branch(const mcrl2::data::data_expression &a_bdd)
Method that returns the false-branch of a BDD.
Definition bdd_info.h:58
static bool is_true(const data_expression &a_bdd)
Method that indicates whether or not a BDD equals true.
Definition bdd_info.h:67
bool is_false_function_symbol(const atermpp::aterm &e)
Recogniser for function false.
Definition bool.h:119
bool is_true_function_symbol(const atermpp::aterm &e)
Recogniser for function true.
Definition bool.h:87
bool is_if_application(const DataExpression &e)
Recogniser for application of if.
Definition standard.h:232
A class that takes a linear process specification and checks all tau-summands of that LPS for conflue...
Definition indexed_set.h:72