12#ifndef MCRL2_DATA_DETAIL_ONE_POINT_RULE_PREPROCESSOR_H
13#define MCRL2_DATA_DETAIL_ONE_POINT_RULE_PREPROCESSOR_H
38 std::vector<data::data_expression> result;
48 std::vector<data::data_expression> result;
Join and split functions for data expressions.
bool is_or_application(const atermpp::aterm &e)
Recogniser for application of ||.
bool is_and_application(const atermpp::aterm &e)
Recogniser for application of &&.
bool is_not_application(const atermpp::aterm &e)
Recogniser for application of !.
const function_symbol & not_()
Constructor for function symbol !.
const data_expression & binary_right(const application &x)
function_symbol not_equal_to(const sort_expression &s)
Constructor for function symbol !=.
bool is_not_equal_to_application(const DataExpression &e)
Recogniser for application of !=.
std::set< data_expression > split_or(const data_expression &expr)
Splits a disjunction into a sequence of operands Given a data expression of the form p1 || p2 || ....
const data_expression & binary_left(const application &x)
data_expression join_or(FwdIt first, FwdIt last)
Returns or applied to the sequence of data expressions [first, last)
const data_expression & unary_operand1(const data_expression &x)
function_symbol equal_to(const sort_expression &s)
Constructor for function symbol ==.
data_expression join_and(FwdIt first, FwdIt last)
Returns and applied to the sequence of data expressions [first, last)
bool is_equal_to_application(const DataExpression &e)
Recogniser for application of ==.
std::set< data_expression > split_and(const data_expression &expr)
Splits a conjunction into a sequence of operands Given a data expression of the form p1 && p2 && ....
A class that takes a linear process specification and checks all tau-summands of that LPS for conflue...
data::data_expression operator()(const data::data_expression &x) const