mCRL2
|
Namespaces | |
namespace | prover |
Classes | |
struct | add_capture_avoiding_replacement |
struct | add_capture_avoiding_replacement_with_an_identifier_generator |
struct | add_data_rewriter |
Applies a data rewriter to data expressions appearing in a term. It works both with and without a substitution. More... | |
struct | anonymize_builder |
struct | anonymize_builder_instance |
struct | apply_rewriter_builder |
class | BDD2Dot |
The class BDD2Dot offers the ability to write binary decision diagrams to dot files. The method BDD2Dot::output_bdd receives a binary decision diagram as parameter a_bdd and writes it to a file in dot format with the name passed as parameter a_file_name. More... | |
class | BDD_Info |
The class BDD_Info provides information about the structure of binary decision diagrams. More... | |
class | BDD_Path_Eliminator |
Base class for eliminating inconsistent paths from BDDs. More... | |
class | BDD_Prover |
class | BDD_Simplifier |
A base class for simplifying binary decision diagrams. More... | |
class | build_pars |
struct | capture_avoiding_substitution_updater |
struct | compare_sort |
Tests if a term is a sort, and if it is equal to s. More... | |
struct | compare_term |
struct | compare_variable |
Function object that determines if a term is equal to a given data variable. More... | |
struct | data_expression_actions |
class | data_property_map |
Base class for storing properties of mCRL2 types. Properties are (key, value) pairs stored as strings in KEY = VALUE format. The data_property_map has some predefined functions for types in the Data Library. The optional type argument is used by derived classes. The type represents the name of a derived class as per CRTP. More... | |
struct | data_rewriter_builder |
struct | data_specification_actions |
class | dependencies_rewrite_rule_pair |
struct | double_variable_traverser |
struct | enumerator_iteration_limit |
struct | enumerator_replace_builder |
struct | equality_set_with_top |
struct | find_equalities_expression |
struct | find_equalities_traverser |
struct | find_equalities_traverser_inst |
class | Formula_Checker |
The class formula checker takes a data specification in mCRL2 format and a list of expressions. More... | |
struct | function_symbol_has_name |
struct | if_rewrite_builder |
struct | if_rewrite_with_rewriter_builder |
class | Induction |
The class Induction generates statements corresponding to. More... | |
class | inequality_consistency_cache |
class | inequality_inconsistency_cache |
class | inequality_inconsistency_cache_base |
class | Info |
Base class for classes that provide information about the structure of. More... | |
struct | is_a_variable |
struct | is_untyped_traverser |
class | jitty_argument_rewriter |
struct | jitty_assignments_for_a_rewrite_rule |
struct | jitty_variable_assignment_for_a_rewrite_rule |
class | lhs_t |
class | Manipulator |
Base class for classes that provide functionality to modify or create terms. More... | |
class | match_tree |
class | match_tree_A |
class | match_tree_C |
class | match_tree_CRe |
class | match_tree_D |
class | match_tree_F |
class | match_tree_M |
class | match_tree_MachineNumber |
class | match_tree_Me |
class | match_tree_N |
class | match_tree_R |
class | match_tree_Re |
class | match_tree_S |
class | match_tree_X |
class | nfs_array |
struct | normalize_and_or_builder |
struct | normalize_equality_builder |
struct | normalize_sorts_function |
struct | normalizer |
struct | one_point_rule_preprocessor |
class | one_point_rule_rewrite_builder |
struct | one_point_rule_substitution_algorithm |
class | parser |
class | prepend_iterator_tag_convertor |
class | prepend_iterator_tag_convertor< std::input_iterator_tag > |
struct | printer |
struct | quantifiers_inside_builder |
struct | quantifiers_inside_exists_builder |
struct | quantifiers_inside_forall_builder |
struct | recalculate_term_as_stack_is_too_small |
struct | replace_capture_avoiding_variables_builder |
struct | replace_capture_avoiding_variables_builder_with_an_identifier_generator |
struct | replace_constants_by_variables_builder |
Replace each constant data application c by a fresh variable v, and add extend the substitution sigma with the assignment v := r(c). This can be used in rewriting, to avoid that c is rewritten by the rewriter multiple times. More... | |
struct | rewrite_data_expressions_builder |
struct | rewrite_data_expressions_with_substitution_builder |
class | rewrite_stack |
struct | rewrite_statistics |
class | Rewriter |
Rewriter interface class. More... | |
struct | rewriter_wrapper |
class | RewriterJitty |
class | RewriterProver |
struct | rule |
A rule describes a partially pattern-matched rewrite rule. More... | |
class | simplify_rewrite_builder |
class | skip_function_application_to_head |
class | skip_function_application_to_head_assignment |
class | SMT_LIB_Solver |
class | SMT_Solver |
struct | sort_expression_actions |
struct | sort_has_name |
struct | sort_of_expression |
Function object that returns the sort of a data expression. More... | |
class | strategy |
A strategy is a list of rules and the number of variables that occur in it. More... | |
class | strategy_rule |
Is either a rewrite rule to be matched or an index that should be rewritten. More... | |
class | substitution_updater_with_an_identifier_generator |
class | term_appl_prepend_iterator |
class | translate_user_notation_builder |
struct | translate_user_notation_function |
class | variable_context |
struct | variable_name |
Function object that returns the name of a data variable. More... | |
class | variable_or_number |
This is a list where variables and aterm ints can be stored. More... | |
class | variable_with_a_rational_factor |
Typedefs | |
typedef sort_of_expression< variable > | sort_of_variable |
Function object that returns the sort of a data variable. | |
typedef atermpp::term_list< variable_or_number > | variable_or_number_list |
typedef atermpp::term_list< match_tree > | match_tree_list |
typedef std::vector< match_tree > | match_tree_vector |
typedef atermpp::term_list< match_tree_list > | match_tree_list_list |
typedef atermpp::term_list< match_tree_list_list > | match_tree_list_list_list |
typedef std::map< variable, data_expression > | map_based_lhs_t |
Enumerations | |
enum | Answer { answer_yes , answer_no , answer_undefined } |
A prover that uses EQ-BDDs. More... | |
enum | Compare_Result { compare_result_smaller , compare_result_equal , compare_result_bigger } |
enum | smt_solver_type { solver_type_cvc , solver_type_z3 } |
The enumeration type smt_solver_type enumerates all available SMT solvers. More... | |
enum | comparison_t { less , less_eq , equal } |
enum | node_type { true_end_node , false_end_node , intermediate_node } |
Functions | |
bool | contains_untyped_sort (const sort_expression &s) |
const data_expression & | evaluate_lambda_data_expression (const data_expression &t) |
template<class TERM > | |
data_expression | evaluate_lambda_data_expression (const TERM &t, typename std::enable_if< std::is_invocable_r< void, TERM, data_expression & >::value >::type *=nullptr) |
template<class TERM > | |
data_expression | evaluate_lambda_data_expression (const TERM &t, typename std::enable_if< std::is_invocable_r< const data_expression, TERM, void >::value >::type *=nullptr) |
template<class HEAD , class CONTAINER > | |
bool | check_whether_sorts_match (const HEAD &head_lambda, const CONTAINER &l) |
data_expression_list | get_arguments () |
template<class HEAD , class... ARGUMENTS> | |
data_expression_list | get_arguments (const HEAD &h, const ARGUMENTS &... args) |
atermpp::aterm | data_specification_to_aterm (const data_specification &s) |
data_expression | create_finite_set (const data_expression &x) |
Create the finite set { x }, with x a data expression. | |
data_expression | create_set_comprehension (const variable &x, const data_expression &phi) |
Create the set { x | phi }, with phi a predicate that may depend on the variable x. | |
data_expression | create_set_in (const data_expression &x, const data_expression &X) |
Create the predicate 'x in X', with X a set. | |
sort_expression | get_set_sort (const container_sort &x) |
Returns the sort s of Set(s). | |
template<typename PropertyMap > | |
bool | compare_property_maps (const std::string &message, const PropertyMap &map1, const std::string &expected_result) |
variable_list | set_intersection (const variable_list &x, const variable_list &y) |
Returns the intersection of two unordered sets, that are stored in ATerm lists. | |
variable_list | set_difference (const variable_list &x, const variable_list &y) |
Returns the difference of two unordered sets, that are stored in aterm lists. | |
template<typename Container > | |
data::sort_expression_list | parameter_sorts (const Container ¶meters) |
Returns the sorts of a sequence of parameters. | |
template<class VariableContainer > | |
bool | unique_names (const VariableContainer &variables) |
Returns true if the names of the given variables are unique. | |
bool | check_assignment_variables (assignment_list const &assignments, variable_list const &variables) |
Returns true if the left hand sides of assignments are contained in variables. | |
template<typename SortContainer > | |
bool | check_sort (const sort_expression &s, const SortContainer &sorts) |
Returns true if the domain sorts and the codomain sort of the given sort s are contained in sorts. | |
template<typename Iterator , typename SortContainer > | |
bool | check_sorts (Iterator first, Iterator last, const SortContainer &sorts) |
Returns true if the domain sorts and the range sort of the sorts in the sequence [first, last) are contained in sorts. | |
template<typename VariableContainer , typename SortContainer > | |
bool | check_variable_sorts (const VariableContainer &variables, const SortContainer &sorts) |
Returns true if the domain sorts and the range sort of the given variables are contained in sorts. | |
bool | check_variable_names (variable_list const &variables, const std::set< core::identifier_string > &names) |
Returns true if names of the given variables are not contained in names. | |
template<typename Container , typename SortContainer > | |
bool | check_data_spec_sorts (const Container &container, const SortContainer &sorts) |
Returns true if the domain sorts and range sort of the given functions are contained in sorts. | |
void | set_enumerator_iteration_limit (std::size_t size) |
std::size_t | get_enumerator_iteration_limit () |
bool | equal_sorts (const data::variable_list &v, const data::data_expression_list &w, const data::data_specification &data_spec) |
Checks if the sorts of the variables/expressions in both lists are equal. | |
std::set< core::identifier_string > | variable_names (const std::set< data::variable > &variables) |
Returns the names of a set of data variables. | |
std::set< std::string > | variable_name_strings (const std::set< data::variable > &variables) |
Returns the names of a set of data variables as a set of strings. | |
std::set< std::string > | variable_name_strings (const std::set< data::variable > &variables1, const std::set< data::variable > &variables2) |
Returns the names of a set of data variables. | |
atermpp::aterm | remove_index_impl (const atermpp::aterm &x) |
atermpp::aterm | add_index_impl (const atermpp::aterm &x) |
atermpp::aterm | add_index (const atermpp::aterm &x) |
atermpp::aterm | remove_index (const atermpp::aterm &x) |
bool | is_untyped (const data_expression &x) |
data_expression | negate_inequality (const data_expression &e) |
bool | is_inequality (const data_expression &e) |
Determine whether a data expression is an inequality. | |
const data_expression & | condition_part (const data_expression &e) |
const data_expression & | then_part (const data_expression &e) |
const data_expression & | else_part (const data_expression &e) |
static bool | split_condition_aux (const data_expression &e, std::vector< data_expression_list > &real_conditions, std::vector< data_expression_list > &non_real_conditions, const bool negate=false) |
Splits a condition in expressions ranging over reals and the others. | |
void | split_condition (const data_expression &e, std::vector< data_expression_list > &real_conditions, std::vector< data_expression > &non_real_conditions) |
This function first splits the given condition e into real conditions and non real conditions. \detail This function first uses split_condition_aux to split the condition e. Then. | |
template<typename MutableSubstitution > | |
void | parse_substitution (std::string text, MutableSubstitution &sigma, const data_specification &data_spec=data::data_specification()) |
Parses a string of the form "b: Bool := true, n: Nat := 0", and adds the substitutions to the substition function sigma. If the string is surrounded by brackets (e.g. "[b: Bool := true, n: Nat := 0]"), these are ignored. | |
void | print_parse_check (const sort_expression &x, const data_specification &dataspec=data_specification()) |
void | print_parse_check (const data_expression &x, const data_specification &dataspec=data_specification()) |
data::data_expression | bool_to_numeric (const data::data_expression &e, const data::sort_expression &s) |
data_expression | reconstruct_pos_mult (const data_expression &x, const std::vector< char > &result) |
smt_solver_type | parse_solver_type (const std::string &s) |
standard conversion from string to solver type | |
std::istream & | operator>> (std::istream &is, smt_solver_type &s) |
standard conversion from stream to solver type | |
std::string | print_solver_type (const smt_solver_type s) |
standard conversion from solver type to string | |
std::ostream & | operator<< (std::ostream &os, smt_solver_type s) |
standard conversion from solvert type to stream | |
std::string | description (const smt_solver_type s) |
description of solver type | |
std::shared_ptr< detail::Rewriter > | createRewriter (const data_specification &DataSpec, const used_data_equation_selector &equations_selector, const rewrite_strategy Strategy=jitty) |
Create a rewriter. | |
void | CheckRewriteRule (const data_equation &data_eqn) |
Check that an mCRL2 data equation is a valid rewrite rule. If not, an runtime_error is thrown indicating the problem. | |
bool | isValidRewriteRule (const data_equation &data_eqn) |
Check whether or not an mCRL2 data equation is a valid rewrite rule. | |
std::size_t | getArity (const data::function_symbol &op) |
std::size_t | get_direct_arity (const data::function_symbol &op) |
data_expression | remove_normal_form_function (const data_expression &t) |
removes auxiliary expressions this_term_is_in_normal_form from data_expressions that are being rewritten. | |
variable_list | get_free_vars (const data_expression &a) |
sort_expression | residual_sort (const sort_expression &s, std::size_t no_of_initial_arguments) |
const data_expression * | get_argument_of_higher_order_term_helper (const application &t, std::size_t &i) |
const data_expression & | get_argument_of_higher_order_term (const application &t, std::size_t i) |
std::size_t | recursive_number_of_args (const data_expression &t) |
const data_expression & | get_nested_head_helper (const application &t) |
const data_expression & | get_nested_head (const data_expression &t) |
const data_expression | replace_nested_head (const data_expression &t, const data_expression &head) |
template<class ARGUMENT_REWRITER > | |
void | rewrite_all_arguments (data_expression &result, const application &t, const ARGUMENT_REWRITER rewriter) |
std::ostream & | operator<< (std::ostream &s, const match_tree &t) |
strategy | create_strategy (data_equation_list rules) |
Creates a strategy for given set of rewrite rules with head symbol f. | |
std::size_t | rewrite_count () |
void | display_rewrite_statistics () |
void | increment_rewrite_count () |
static std::vector< data::rewrite_strategy > | initialise_test_rewrite_strategies (const bool with_prover) |
Static initialisation of rewrite strategies used for testing. | |
const std::vector< data::rewrite_strategy > & | get_test_rewrite_strategies (const bool with_prover) |
Rewrite strategies that should be tested. | |
template<typename Iterator > | |
bool | sequence_contains_duplicates (Iterator first, Iterator last) |
Returns true if the sequence [first, last) contains duplicates. | |
template<typename Iterator1 , typename Iterator2 > | |
bool | sequences_do_overlap (Iterator1 first1, Iterator1 last1, Iterator2 first2, Iterator2 last2) |
Returns true if the two sequences [first1, last1) and [first2, last2) have a non empty intersection. | |
template<typename Iterator , typename T > | |
bool | sequence_is_subset_of_set (Iterator first, Iterator last, const std::set< T > &s) |
Returns true if all elements of the range [first, last) are element of the set s. | |
template<class Container > | |
std::set< typename Container::value_type > | make_set (const Container &c) |
Makes a set of the given container. | |
template<typename Sequence > | |
bool | sequence_empty_intersection (Sequence s1, Sequence s2) |
Determines if the unordered sequences s1 and s2 have an empty intersection. | |
template<typename FILTER > | |
void | split_finite_variables (data::variable_list variables, const data::data_specification &data, data::variable_list &finite_variables, data::variable_list &infinite_variables, data::variable_list &unused, const FILTER filter) |
Splits the variables in a subset with finite sort, with infinite sort and those that are not used according to a filter. | |
template<typename Rewriter , typename FILTER > | |
void | split_enumerable_variables (data::variable_list variables, const data::data_specification &data, const Rewriter &rewr, data::variable_list &enumerable_variables, data::variable_list &non_enumerable_variables, data::variable_list &unused, const FILTER filter) |
Splits a list of variables in those that are enumerable, non enumerable and not used, according to a filter. | |
template<typename T > | |
T | normalize_and_or (const T &x, typename std::enable_if< std::is_base_of< atermpp::aterm, T >::value >::type *=nullptr) |
template<typename T > | |
void | normalize_and_or (T &x, typename std::enable_if< !std::is_base_of< atermpp::aterm, T >::value >::type *=0) |
template<typename T > | |
T | normalize_equality (const T &x, typename std::enable_if< std::is_base_of< atermpp::aterm, T >::value >::type *=nullptr) |
template<typename T > | |
void | normalize_equality (T &x, typename std::enable_if< !std::is_base_of< atermpp::aterm, T >::value >::type *=0) |
template<typename Function > | |
normalizer< Function > | N (const Function &f) |
std::string | VARIABLE_SPECIFICATION () |
template<typename Rewriter1 , typename Rewriter2 > | |
void | test_rewriters (Rewriter1 R1, Rewriter2 R2, std::string expr1, std::string expr2, const std::string &var_decl=VARIABLE_SPECIFICATION(), const std::string &data_spec="") |
data_expression | I (const data_expression &x) |
void | check_duplicate_variable_names (const data::variable_list &x, const std::string &msg) |
data_expression | make_set_ (std::size_t function_index, const sort_expression &element_sort, const data_expression_vector &set_elements) |
data_expression | make_if_expression_ (std::size_t &function_index, const std::size_t argument_index, const std::vector< data_expression_vector > &data_domain_expressions, const data_expression_vector &codomain_expressions, const variable_vector ¶meters) |
template<class Rewriter , class MutableSubstitution > | |
bool | compute_finite_set_elements (const container_sort &sort, const data_specification &dataspec, Rewriter datar, MutableSubstitution &sigma, data_expression_vector &result, enumerator_identifier_generator &id_generator) |
Computes the elements of a finite set sort, and puts them in result. If there are too many elements, false is returned. | |
template<class Rewriter > | |
bool | compute_finite_function_sorts (const function_sort &sort, enumerator_identifier_generator &id_generator, const data::data_specification &dataspec, Rewriter datar, data_expression_vector &result, variable_list &function_parameter_list) |
Computes the elements of a finite function sort, and puts them in result. If there are too many elements, false is returned. | |
template<typename Rewriter > | |
bool | is_enumerable (const data_specification &dataspec, const Rewriter &rewr, const sort_expression &sort, std::list< sort_expression > &parents) |
bool | is_pos (const core::identifier_string &Number) |
bool | is_nat (const core::identifier_string &Number) |
function_sort | make_function_sort_ (const sort_expression &domain, const sort_expression &codomain) |
template<typename Function , typename T > | |
atermpp::term_list< T > | transform_aterm_list (const Function &f, const atermpp::term_list< T > &x) |
sort_expression | unwind_sort_expression (const sort_expression &x, const alias_vector &aliases) |
bool | is_numeric_type (const sort_expression &x) |
std::ostream & | operator<< (std::ostream &out, const find_equalities_expression &x) |
bool | is_numeric_sort (const sort_expression &x) |
std::size_t | numeric_sort_value (const sort_expression &x) |
std::string | pp (const detail::lhs_t &lhs) |
detail::comparison_t | negate (const detail::comparison_t t) |
std::string | pp (const detail::comparison_t t) |
atermpp::function_symbol | f_variable_with_a_rational_factor () |
void | set_factor_for_a_variable (detail::map_based_lhs_t &new_lhs, const variable &x, const data_expression &e) |
lhs_t | set_factor_for_a_variable (const lhs_t &lhs, const variable &x, const data_expression &e) |
const lhs_t | map_to_lhs_type (const map_based_lhs_t &lhs) |
const lhs_t | map_to_lhs_type (const map_based_lhs_t &lhs, const data_expression &factor, const rewriter &r) |
bool | is_well_formed (const lhs_t &lhs) |
const lhs_t | remove_variable_and_divide (const lhs_t &lhs, const variable &v, const data_expression &f, const rewriter &r) |
void | emplace_back_if_not_zero (std::vector< detail::variable_with_a_rational_factor > &r, const variable &v, const data_expression &f) |
template<application Operation> | |
const lhs_t | meta_operation_constant (const lhs_t &argument, const data_expression &v, const rewriter &r) |
template<class OPERATION > | |
lhs_t | meta_operation_lhs (const lhs_t &argument1, const lhs_t &argument2, OPERATION operation, const rewriter &r) |
const lhs_t | add (const data_expression &v, const lhs_t &argument, const rewriter &r) |
const lhs_t | subtract (const lhs_t &argument, const data_expression &v, const rewriter &r) |
const lhs_t | multiply (const lhs_t &argument, const data_expression &v, const rewriter &r) |
const lhs_t | divide (const lhs_t &argument, const data_expression &v, const rewriter &r) |
const lhs_t | add (const lhs_t &argument, const lhs_t &e, const rewriter &r) |
const lhs_t | subtract (const lhs_t &argument, const lhs_t &e, const rewriter &r) |
atermpp::function_symbol | linear_inequality_less () |
atermpp::function_symbol | linear_inequality_less_equal () |
atermpp::function_symbol | linear_inequality_equal () |
template<typename TermTraits > | |
void | optimized_not (typename TermTraits::term_type &result, const typename TermTraits::term_type &arg, TermTraits) |
template<typename TermTraits > | |
void | optimized_and (typename TermTraits::term_type &result, const typename TermTraits::term_type &left, const typename TermTraits::term_type &right, TermTraits) |
Make a conjunction and optimize it if possible. | |
template<typename TermTraits > | |
void | optimized_or (typename TermTraits::term_type &result, const typename TermTraits::term_type &left, const typename TermTraits::term_type &right, TermTraits) |
Make a disjunction. | |
template<typename TermTraits > | |
void | optimized_imp (typename TermTraits::term_type &result, const typename TermTraits::term_type &left, const typename TermTraits::term_type &right, TermTraits t) |
Make an implication. | |
template<typename TermTraits > | |
void | optimized_forall (typename TermTraits::term_type &result, const typename TermTraits::variable_sequence_type &v, const typename TermTraits::term_type &arg, bool remove_variables, bool empty_domain_allowed, TermTraits) |
Make a universal quantification. | |
template<typename TermTraits > | |
void | optimized_exists (typename TermTraits::term_type &result, const typename TermTraits::variable_sequence_type &v, const typename TermTraits::term_type &arg, bool remove_variables, bool empty_domain_allowed, TermTraits) |
Make an existential quantification. | |
sort_expression | parse_sort_expression (const std::string &text) |
variable_list | parse_variables (const std::string &text) |
data_expression | parse_data_expression (const std::string &text) |
data_specification | parse_data_specification_new (const std::string &text) |
variable_list | parse_variable_declaration_list (const std::string &text) |
static data_specification const & | default_specification () |
bool | is_one (const data_expression &x) |
bool | is_numeric_cast (const data_expression &x) |
bool | look_through_numeric_casts (const data_expression &x, std::function< bool(const data_expression &)> f) |
bool | head_matches_undefined_symbol (const data_expression &x, const core::identifier_string &s) |
bool | is_plus (const application &x) |
bool | is_minus (const application &x) |
bool | is_mod (const application &x) |
bool | is_div (const application &x) |
bool | is_divmod (const application &x) |
bool | is_divides (const application &x) |
bool | is_implies (const application &x) |
bool | is_set_union (const application &x) |
bool | is_set_difference (const application &x) |
bool | is_bag_join (const application &x) |
bool | is_bag_difference (const application &x) |
bool | is_and (const application &x) |
bool | is_or (const application &x) |
bool | is_equal_to (const application &x) |
bool | is_not_equal_to (const application &x) |
bool | is_less (const application &x) |
bool | is_less_equal (const application &x) |
bool | is_greater (const application &x) |
bool | is_greater_equal (const application &x) |
bool | is_in (const application &x) |
bool | is_times (const application &x) |
bool | is_element_at (const application &x) |
bool | is_set_intersection (const application &x) |
bool | is_bag_intersection (const application &x) |
bool | is_concat (const application &x) |
bool | is_cons_list (data_expression x) |
bool | is_snoc_list (data_expression x) |
bool | is_cons (const application &x) |
bool | is_snoc (const application &x) |
template<typename Substitution > | |
std::ostream & | operator<< (std::ostream &out, const capture_avoiding_substitution_updater< Substitution > &sigma) |
template<template< class > class Builder, template< template< class > class, class, class > class Binder, class Substitution > | |
replace_capture_avoiding_variables_builder< Builder, Binder, Substitution > | apply_replace_capture_avoiding_variables_builder (capture_avoiding_substitution_updater< Substitution > &sigma) |
template<typename Substitution , typename IdentifierGenerator > | |
data::variable | update_substitution (Substitution &sigma, const data::variable &v, const std::multiset< data::variable > &V, IdentifierGenerator &id_generator) |
template<typename Substitution , typename IdentifierGenerator , typename VariableContainer > | |
VariableContainer | update_substitution (Substitution &sigma, const VariableContainer &v, const std::multiset< data::variable > &V, IdentifierGenerator &id_generator) |
template<template< class > class Builder, template< template< class > class, class, class, class > class Binder, class Substitution , class IdentifierGenerator > | |
replace_capture_avoiding_variables_builder_with_an_identifier_generator< Builder, Binder, Substitution, IdentifierGenerator > | apply_replace_capture_avoiding_variables_builder_with_an_identifier_generator (Substitution &sigma, IdentifierGenerator &id_generator) |
template<template< class > class Builder, class Rewriter > | |
rewrite_data_expressions_builder< Builder, Rewriter > | make_rewrite_data_expressions_builder (Rewriter R) |
template<template< class > class Builder, class Rewriter , class Substitution > | |
rewrite_data_expressions_with_substitution_builder< Builder, Rewriter, Substitution > | make_rewrite_data_expressions_with_substitution_builder (Rewriter R, Substitution sigma) |
template<typename DataRewriter , typename SubstitutionFunction > | |
data::data_expression | data_rewrite (const data::data_expression &x, const DataRewriter &R, SubstitutionFunction &sigma) |
template<typename DataRewriter > | |
data::data_expression | data_rewrite (const data::data_expression &x, const DataRewriter &R, data::no_substitution &) |
template<template< class, class, class > class Builder, class DataRewriter , class SubstitutionFunction > | |
apply_rewriter_builder< Builder, DataRewriter, SubstitutionFunction > | make_apply_rewriter_builder (const DataRewriter &datar, SubstitutionFunction &sigma) |
application | replace_argument (const application &x, std::size_t i, const data_expression &y) |
data_expression | push_if_outside (const application &x) |
data_expression | quantifiers_inside (const data_expression &x) |
data_expression | quantifiers_inside_forall (const std::set< variable > &variables, const data_expression &x) |
data_expression | quantifiers_inside_exists (const std::set< variable > &variables, const data_expression &x) |
std::set< variable > | make_variable_set (const variable_list &x) |
variable_list | make_variable_list (const std::set< variable > &x) |
template<typename BinaryOperation > | |
std::tuple< data_expression, data_expression > | compute_Phi_Psi (const std::vector< data_expression > &X, const std::set< variable > &V, BinaryOperation op, data_expression empty_sequence_result) |
template<typename T > | |
data_expression | enumerator_replace (const T &x, const variable_list::const_iterator variables_begin, const variable_list::const_iterator variables_end, const data_expression_list::const_iterator expressions_begin) |
template<typename T > | |
data_expression | enumerator_replace (const T &x, const variable_list &variables, const data_expression_list &expressions) |
data_equation | translate_user_notation_data_equation (const data_equation &x) |
std::ostream & | operator<< (std::ostream &out, const rule &r) |
function_symbol | get_top_fs (const data_expression &expr) |
Get the top level function symbol f if expr is of the shape f or f(t1,...,tn) | |
data_expression | construct_condition_rhs (const std::vector< rule > &rules, const data_expression &representative) |
For a list of rules with equal left hand sides of match_criteria and only variables in the right hand sides of match_criteria, construct a right hand side based on the conditions and right hand sides of the rules. | |
template<typename StructInfo > | |
data_expression | construct_rhs (StructInfo &ssf, representative_generator &gen, const std::vector< rule > &rules, const sort_expression &sort) |
For a list of rules with equal left hand sides of match_criteria, construct a right hand side. | |
static bool | match_jitty (const data_expression &t, const data_expression &p, jitty_assignments_for_a_rewrite_rule &assignments, const bool term_context_guarantees_normal_form) |
static bool | occur_check (const variable &v, const atermpp::aterm &e) |
static void | check_vars (const data_expression &expr, const std::set< variable > &vars, std::set< variable > &used_vars) |
static void | check_vars (application::const_iterator begin, const application::const_iterator &end, const std::set< variable > &vars, std::set< variable > &used_vars) |
static void | checkPattern (const data_expression &p) |
static void | checkPattern (application::const_iterator begin, const application::const_iterator &end) |
static bool | includes (const std::set< variable > &s1, const std::set< variable > &s2, variable &culprit) |
static bool | IsPos (const core::identifier_string &Number) |
static bool | IsNat (const core::identifier_string &Number) |
static sort_expression_list | GetVarTypes (variable_list VarDecls) |
static bool | HasUnknown (const sort_expression &Type) |
static bool | IsNumericType (const sort_expression &Type) |
static sort_expression | MinType (const sort_expression_list &TypeList) |
static sort_expression | replace_possible_sorts (const sort_expression &Type) |
template<class S > | |
atermpp::term_list< S > | insert_sort_unique (const atermpp::term_list< S > &list, const S &el) |
typedef std::map< variable, data_expression > mcrl2::data::detail::map_based_lhs_t |
Definition at line 172 of file linear_inequalities.h.
Definition at line 591 of file match_tree.h.
Definition at line 593 of file match_tree.h.
Definition at line 594 of file match_tree.h.
typedef std::vector< match_tree > mcrl2::data::detail::match_tree_vector |
Definition at line 592 of file match_tree.h.
Function object that returns the sort of a data variable.
Definition at line 95 of file data_functional.h.
Definition at line 41 of file match_tree.h.
A prover that uses EQ-BDDs.
\detail A class based on the Prover class that takes an expression of sort Bool in internal mCRL2 format and creates the corresponding EQ-BDD. Using this EQ-BDD, the class can determine if the original formula is a tautology or a contradiction. The term "formula" in the following text denotes arbitrary expressions of sort Bool in the mCRL2 format.
A prover uses a rewriter to rewrite parts of the formulas it manipulates. The constructor BDD_Prover::BDD_Prover initializes the prover's rewriter with the data equations in internal mCRL2 format contained in the LPS passed as parameter a_lps and the rewrite strategy passed as parameter a_rewrite_strategy. The parameter a_rewrite_strategy can be set to either GS_REWR_data::jitty or GS_REWR_data::jittyC. To limit the number of seconds spent on proving a single formula, a time limit can be set. If the time limit is set to 0, no time limit will be enforced. The parameter a_apply_induction indicates whether or induction on lists is applied. The constructor BDD_Prover::BDD_Prover has two additional parameters, a_path_eliminator and a_solver_type. The parameter a_path_eliminator can be used to enable the use of an instance of the class BDD_Path_Eliminator. Instances of this class use an SMT solver to eliminate inconsistent paths from BDDs. The parameter a_solver_type can be used to indicate which SMT solver should be used for this task. Either the SMT solver ario (http://www.eecs.umich.edu/~ario/) or cvc-lite (http://www.cs.nyu.edu/acsys/cvcl/) can be used. To use one of these solvers, the directory containing the corresponding executable must be in the path. If the parameter a_path_eliminator is set to false, the parameter a_solver_type is ignored and no instance of the class BDD_Path_Eliminator is initialized.
The formula to be handled is set using the method Prover::set_formula inherited from the class Prover. An entity of the class BDD_Prover uses binary decision diagrams to determine if a given formula is a tautology or a contradiction. The resulting BDD can be retreived using the method BDD_Prover::get_bdd.
The methods BDD_Prover::is_tautology and BDD_Prover::is_contradiction indicate whether or not a formula is a tautology or a contradiction. These methods will return answer_yes, answer_no or answer_undefined. If a formula is neither a tautology nor a contradiction according to the prover, a so called witness or counter example can be returned by the methods BDD_Prover::get_witness and BDD_Prover::get_counter_example. A witness is a valuation for which the formula holds, a counter example is a valuation for which it does not hold.
Enumerator | |
---|---|
answer_yes | |
answer_no | |
answer_undefined |
Definition at line 77 of file bdd_prover.h.
Enumerator | |
---|---|
less | |
less_eq | |
equal |
Definition at line 102 of file linear_inequalities.h.
Enumerator | |
---|---|
true_end_node | |
false_end_node | |
intermediate_node |
Definition at line 1303 of file linear_inequalities.h.
The enumeration type smt_solver_type enumerates all available SMT solvers.
Enumerator | |
---|---|
solver_type_cvc | |
solver_type_z3 |
Definition at line 26 of file solver_type.h.
|
inline |
Definition at line 469 of file linear_inequalities.h.
|
inline |
Definition at line 489 of file linear_inequalities.h.
|
inline |
|
inline |
replace_capture_avoiding_variables_builder< Builder, Binder, Substitution > mcrl2::data::detail::apply_replace_capture_avoiding_variables_builder | ( | capture_avoiding_substitution_updater< Substitution > & | sigma | ) |
Definition at line 122 of file replace_capture_avoiding.h.
replace_capture_avoiding_variables_builder_with_an_identifier_generator< Builder, Binder, Substitution, IdentifierGenerator > mcrl2::data::detail::apply_replace_capture_avoiding_variables_builder_with_an_identifier_generator | ( | Substitution & | sigma, |
IdentifierGenerator & | id_generator | ||
) |
Definition at line 146 of file replace_capture_avoiding_with_an_identifier_generator.h.
|
inline |
Definition at line 34 of file print_utility.h.
|
inline |
Returns true if the left hand sides of assignments are contained in variables.
assignments | A sequence of assignments to data variables |
variables | A sequence of data variables |
Definition at line 62 of file data_utility.h.
|
inline |
Returns true if the domain sorts and range sort of the given functions are contained in sorts.
range | A sequence of data operations |
sorts | A set of sort expressions |
Definition at line 190 of file data_utility.h.
|
inline |
Definition at line 27 of file variable_context.h.
|
inline |
Returns true if the domain sorts and the codomain sort of the given sort s are contained in sorts.
s | A sort expression |
sorts | A set of sort expressions |
sorts
Definition at line 82 of file data_utility.h.
bool mcrl2::data::detail::check_sorts | ( | Iterator | first, |
Iterator | last, | ||
const SortContainer & | sorts | ||
) |
Returns true if the domain sorts and the range sort of the sorts in the sequence [first, last) are contained in sorts.
first | Start of a sequence of sorts |
last | End of a sequence of sorts |
sorts | A set of sort expressions |
sorts
Definition at line 136 of file data_utility.h.
|
inline |
Returns true if names of the given variables are not contained in names.
variables | A sequence of data variables |
names | A set of strings |
Definition at line 170 of file data_utility.h.
bool mcrl2::data::detail::check_variable_sorts | ( | const VariableContainer & | variables, |
const SortContainer & | sorts | ||
) |
Returns true if the domain sorts and the range sort of the given variables are contained in sorts.
variables | A container with data variables |
sorts | A set of sort expressions |
Definition at line 153 of file data_utility.h.
|
static |
Definition at line 530 of file rewrite.cpp.
|
static |
Definition at line 541 of file rewrite.cpp.
|
inline |
Definition at line 295 of file application.h.
|
static |
Definition at line 564 of file rewrite.cpp.
|
static |
Definition at line 573 of file rewrite.cpp.
void mcrl2::data::detail::CheckRewriteRule | ( | const data_equation & | data_eqn | ) |
Check that an mCRL2 data equation is a valid rewrite rule. If not, an runtime_error is thrown indicating the problem.
DataEqn | The mCRL2 data equation to be checked. |
std::runtime_error | containing a reason why DataEqn is not a valid rewrite rule. |
Definition at line 588 of file rewrite.cpp.
bool mcrl2::data::detail::compare_property_maps | ( | const std::string & | message, |
const PropertyMap & | map1, | ||
const std::string & | expected_result | ||
) |
Definition at line 302 of file data_property_map.h.
bool mcrl2::data::detail::compute_finite_function_sorts | ( | const function_sort & | sort, |
enumerator_identifier_generator & | id_generator, | ||
const data::data_specification & | dataspec, | ||
Rewriter | datar, | ||
data_expression_vector & | result, | ||
variable_list & | function_parameter_list | ||
) |
Computes the elements of a finite function sort, and puts them in result. If there are too many elements, false is returned.
Definition at line 109 of file enumerator.h.
bool mcrl2::data::detail::compute_finite_set_elements | ( | const container_sort & | sort, |
const data_specification & | dataspec, | ||
Rewriter | datar, | ||
MutableSubstitution & | sigma, | ||
data_expression_vector & | result, | ||
enumerator_identifier_generator & | id_generator | ||
) |
Computes the elements of a finite set sort, and puts them in result. If there are too many elements, false is returned.
Definition at line 82 of file enumerator.h.
std::tuple< data_expression, data_expression > mcrl2::data::detail::compute_Phi_Psi | ( | const std::vector< data_expression > & | X, |
const std::set< variable > & | V, | ||
BinaryOperation | op, | ||
data_expression | empty_sequence_result | ||
) |
Definition at line 43 of file quantifiers_inside_rewriter.h.
|
inline |
Definition at line 74 of file linear_inequalities_utilities.h.
|
inline |
For a list of rules with equal left hand sides of match_criteria and only variables in the right hand sides of match_criteria, construct a right hand side based on the conditions and right hand sides of the rules.
Definition at line 108 of file unfold_pattern_matching.h.
data_expression mcrl2::data::detail::construct_rhs | ( | StructInfo & | ssf, |
representative_generator & | gen, | ||
const std::vector< rule > & | rules, | ||
const sort_expression & | sort | ||
) |
For a list of rules with equal left hand sides of match_criteria, construct a right hand side.
Definition at line 154 of file unfold_pattern_matching.h.
|
inline |
Definition at line 239 of file application.h.
|
inline |
Create the finite set { x }, with x a data expression.
Definition at line 26 of file data_construction.h.
|
inline |
Create the set { x | phi }, with phi a predicate that may depend on the variable x.
Definition at line 36 of file data_construction.h.
|
inline |
Create the predicate 'x in X', with X a set.
Definition at line 45 of file data_construction.h.
strategy mcrl2::data::detail::create_strategy | ( | data_equation_list | rules | ) |
Creates a strategy for given set of rewrite rules with head symbol f.
std::shared_ptr< Rewriter > mcrl2::data::detail::createRewriter | ( | const data_specification & | DataSpec, |
const used_data_equation_selector & | equations_selector, | ||
const rewrite_strategy | Strategy = jitty |
||
) |
Create a rewriter.
DataSpec | A data specification. |
Strategy | The rewrite strategy to be used by the rewriter. |
Definition at line 504 of file rewrite.cpp.
data::data_expression mcrl2::data::detail::data_rewrite | ( | const data::data_expression & | x, |
const DataRewriter & | R, | ||
data::no_substitution & | |||
) |
Definition at line 32 of file data_rewriter.h.
data::data_expression mcrl2::data::detail::data_rewrite | ( | const data::data_expression & | x, |
const DataRewriter & | R, | ||
SubstitutionFunction & | sigma | ||
) |
Definition at line 25 of file data_rewriter.h.
atermpp::aterm mcrl2::data::detail::data_specification_to_aterm | ( | const data_specification & | s | ) |
Definition at line 44 of file data_io.cpp.
|
inlinestatic |
|
inline |
description of solver type
Definition at line 79 of file solver_type.h.
|
inline |
Definition at line 42 of file rewrite_statistics.h.
|
inline |
Definition at line 484 of file linear_inequalities.h.
|
inline |
Definition at line 90 of file linear_inequalities_utilities.h.
|
inline |
Definition at line 394 of file linear_inequalities.h.
|
inline |
Definition at line 89 of file enumerator_substitution.h.
|
inline |
Definition at line 76 of file enumerator_substitution.h.
|
inline |
Checks if the sorts of the variables/expressions in both lists are equal.
v | A sequence of data variables |
w | A sequence of data expressions |
Definition at line 28 of file equal_sorts.h.
|
inline |
Definition at line 271 of file application.h.
|
inline |
Definition at line 287 of file application.h.
|
inline |
Definition at line 277 of file application.h.
|
inline |
Definition at line 128 of file linear_inequalities.h.
|
inline |
Definition at line 108 of file jitty_jittyc.h.
|
inline |
Definition at line 76 of file jitty_jittyc.h.
|
inline |
Definition at line 328 of file application.h.
|
inline |
Definition at line 335 of file application.h.
|
inline |
|
inline |
Definition at line 42 of file enumerator_iteration_limit.h.
|
inline |
Definition at line 49 of file jitty_jittyc.h.
|
inline |
Definition at line 161 of file jitty_jittyc.h.
|
inline |
Definition at line 150 of file jitty_jittyc.h.
|
inline |
Returns the sort s of Set(s).
x | A set expression |
Definition at line 54 of file data_construction.h.
|
inline |
Rewrite strategies that should be tested.
Definition at line 55 of file rewrite_strategies.h.
|
inline |
Get the top level function symbol f if expr is of the shape f or f(t1,...,tn)
expr | The expression from which to extract the top function symbol |
Definition at line 85 of file unfold_pattern_matching.h.
|
inline |
|
static |
Definition at line 4601 of file typecheck.cpp.
|
static |
Definition at line 4654 of file typecheck.cpp.
|
inline |
|
inline |
Definition at line 248 of file test_rewriters.h.
|
static |
Definition at line 32 of file typecheck.cpp.
|
inline |
Definition at line 48 of file rewrite_statistics.h.
|
inlinestatic |
Static initialisation of rewrite strategies used for testing.
Definition at line 32 of file rewrite_strategies.h.
|
inline |
Definition at line 63 of file typecheck.cpp.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
bool mcrl2::data::detail::is_enumerable | ( | const data_specification & | dataspec, |
const Rewriter & | rewr, | ||
const sort_expression & | sort, | ||
std::list< sort_expression > & | parents | ||
) |
Definition at line 159 of file enumerator.h.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Determine whether a data expression is an inequality.
e | A data expression |
Definition at line 66 of file linear_inequalities_utilities.h.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Definition at line 31 of file type_checker.h.
|
inline |
|
inline |
|
inline |
Definition at line 27 of file is_sub_sort.h.
|
inline |
Definition at line 83 of file type_checker.h.
|
inline |
|
inline |
|
inline |
|
inline |
Definition at line 24 of file type_checker.h.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Definition at line 73 of file is_untyped.h.
|
inline |
Definition at line 354 of file linear_inequalities.h.
|
inlinestatic |
Definition at line 50 of file typecheck.cpp.
|
static |
Definition at line 4687 of file typecheck.cpp.
|
inlinestatic |
Definition at line 45 of file typecheck.cpp.
bool mcrl2::data::detail::isValidRewriteRule | ( | const data_equation & | data_eqn | ) |
Check whether or not an mCRL2 data equation is a valid rewrite rule.
DataEqn | The mCRL2 data equation to be checked. |
Definition at line 646 of file rewrite.cpp.
|
inline |
Definition at line 548 of file linear_inequalities.h.
|
inline |
Definition at line 534 of file linear_inequalities.h.
|
inline |
Definition at line 541 of file linear_inequalities.h.
|
inline |
apply_rewriter_builder< Builder, DataRewriter, SubstitutionFunction > mcrl2::data::detail::make_apply_rewriter_builder | ( | const DataRewriter & | datar, |
SubstitutionFunction & | sigma | ||
) |
Definition at line 99 of file data_rewriter.h.
|
inline |
Definition at line 37 of file type_checker.h.
|
inline |
Definition at line 47 of file enumerator.h.
rewrite_data_expressions_builder< Builder, Rewriter > mcrl2::data::detail::make_rewrite_data_expressions_builder | ( | Rewriter | R | ) |
rewrite_data_expressions_with_substitution_builder< Builder, Rewriter, Substitution > mcrl2::data::detail::make_rewrite_data_expressions_with_substitution_builder | ( | Rewriter | R, |
Substitution | sigma | ||
) |
std::set< typename Container::value_type > mcrl2::data::detail::make_set | ( | const Container & | c | ) |
Makes a set of the given container.
c | A container |
Definition at line 80 of file sequence_algorithm.h.
|
inline |
Definition at line 32 of file enumerator.h.
|
inline |
Definition at line 37 of file quantifiers_inside_rewriter.h.
|
inline |
Definition at line 31 of file quantifiers_inside_rewriter.h.
|
inline |
Definition at line 333 of file linear_inequalities.h.
|
inline |
Definition at line 343 of file linear_inequalities.h.
|
static |
|
inline |
Definition at line 404 of file linear_inequalities.h.
|
inline |
Definition at line 418 of file linear_inequalities.h.
|
static |
Definition at line 4703 of file typecheck.cpp.
|
inline |
Definition at line 479 of file linear_inequalities.h.
normalizer< Function > mcrl2::data::detail::N | ( | const Function & | f | ) |
Definition at line 187 of file test_rewriters.h.
|
inline |
Definition at line 106 of file linear_inequalities.h.
|
inline |
Definition at line 28 of file linear_inequalities_utilities.h.
T mcrl2::data::detail::normalize_and_or | ( | const T & | x, |
typename std::enable_if< std::is_base_of< atermpp::aterm, T >::value >::type * | = nullptr |
||
) |
Definition at line 86 of file test_rewriters.h.
void mcrl2::data::detail::normalize_and_or | ( | T & | x, |
typename std::enable_if< !std::is_base_of< atermpp::aterm, T >::value >::type * | = 0 |
||
) |
Definition at line 96 of file test_rewriters.h.
T mcrl2::data::detail::normalize_equality | ( | const T & | x, |
typename std::enable_if< std::is_base_of< atermpp::aterm, T >::value >::type * | = nullptr |
||
) |
Definition at line 152 of file test_rewriters.h.
void mcrl2::data::detail::normalize_equality | ( | T & | x, |
typename std::enable_if< !std::is_base_of< atermpp::aterm, T >::value >::type * | = 0 |
||
) |
Definition at line 162 of file test_rewriters.h.
|
inline |
Definition at line 33 of file is_sub_sort.h.
|
static |
Definition at line 44 of file rewrite.cpp.
|
inline |
standard conversion from solvert type to stream
Definition at line 71 of file solver_type.h.
std::ostream & mcrl2::data::detail::operator<< | ( | std::ostream & | out, |
const capture_avoiding_substitution_updater< Substitution > & | sigma | ||
) |
Definition at line 96 of file replace_capture_avoiding.h.
|
inline |
Definition at line 216 of file find_equalities.h.
|
inline |
Definition at line 75 of file unfold_pattern_matching.h.
|
inline |
Definition at line 622 of file match_tree.h.
|
inline |
standard conversion from stream to solver type
Definition at line 43 of file solver_type.h.
|
inline |
Make a conjunction and optimize it if possible.
left | A term |
right | A term |
left && right
Definition at line 59 of file optimized_boolean_operators.h.
|
inline |
Make an existential quantification.
v | A sequence of variables |
arg | A term |
remove_variables | If true, remove bound variables that do not occur in arg. |
empty_domain_allowed | If true, and there are no variables in v, treat as empty domain, hence yielding false , otherwise arg arg is returned in this case. |
exists v.arg
Definition at line 270 of file optimized_boolean_operators.h.
|
inline |
Make a universal quantification.
v | A sequence of variables |
arg | A term |
remove_variables | If true, remove bound variables that do not occur in arg. |
empty_domain_allowed | If true, and there are no variables in v, treat as empty domain, hence yielding true , otherwise arg arg is returned in this case. |
forall v.arg
Definition at line 212 of file optimized_boolean_operators.h.
|
inline |
Make an implication.
left | A term |
right | A term |
left => right
Definition at line 170 of file optimized_boolean_operators.h.
|
inline |
!arg
Definition at line 29 of file optimized_boolean_operators.h.
|
inline |
Make a disjunction.
left | A term |
right | A term |
left || right
Definition at line 132 of file optimized_boolean_operators.h.
data::sort_expression_list mcrl2::data::detail::parameter_sorts | ( | const Container & | parameters | ) |
Returns the sorts of a sequence of parameters.
Definition at line 32 of file data_utility.h.
data_expression mcrl2::data::detail::parse_data_expression | ( | const std::string & | text | ) |
data_specification mcrl2::data::detail::parse_data_specification_new | ( | const std::string & | text | ) |
|
inline |
standard conversion from string to solver type
Definition at line 34 of file solver_type.h.
sort_expression mcrl2::data::detail::parse_sort_expression | ( | const std::string & | text | ) |
void mcrl2::data::detail::parse_substitution | ( | std::string | text, |
MutableSubstitution & | sigma, | ||
const data_specification & | data_spec = data::data_specification() |
||
) |
Parses a string of the form "b: Bool := true, n: Nat := 0", and adds the substitutions to the substition function sigma. If the string is surrounded by brackets (e.g. "[b: Bool := true, n: Nat := 0]"), these are ignored.
Definition at line 30 of file parse_substitution.h.
variable_list mcrl2::data::detail::parse_variable_declaration_list | ( | const std::string & | text | ) |
variable_list mcrl2::data::detail::parse_variables | ( | const std::string & | text | ) |
|
inline |
Definition at line 117 of file linear_inequalities.h.
|
inline |
Definition at line 507 of file linear_inequalities.h.
|
inline |
Definition at line 39 of file print_parse_check.h.
|
inline |
Definition at line 25 of file print_parse_check.h.
|
inline |
standard conversion from solver type to string
Definition at line 60 of file solver_type.h.
|
inline |
Definition at line 35 of file if_rewriter.h.
|
inline |
Definition at line 283 of file quantifiers_inside_rewriter.h.
|
inline |
Definition at line 301 of file quantifiers_inside_rewriter.h.
|
inline |
Definition at line 292 of file quantifiers_inside_rewriter.h.
|
inline |
Definition at line 41 of file print_utility.h.
|
inline |
Definition at line 128 of file jitty_jittyc.h.
|
inline |
|
inline |
data_expression mcrl2::data::detail::remove_normal_form_function | ( | const data_expression & | t | ) |
removes auxiliary expressions this_term_is_in_normal_form from data_expressions that are being rewritten.
The function below is intended to remove the auxiliary function this_term_is_in_normal_form from a term such that it can for instance be pretty printed. This auxiliary function is used internally in terms when rewriting to avoid to rewrite too often.
|
inline |
Definition at line 381 of file linear_inequalities.h.
|
inline |
Definition at line 28 of file if_rewriter.h.
|
inline |
Definition at line 187 of file jitty_jittyc.h.
|
static |
Definition at line 4613 of file typecheck.cpp.
|
inline |
Definition at line 55 of file jitty_jittyc.h.
|
inline |
Definition at line 199 of file jitty_jittyc.h.
|
inline |
Definition at line 36 of file rewrite_statistics.h.
bool mcrl2::data::detail::sequence_contains_duplicates | ( | Iterator | first, |
Iterator | last | ||
) |
Returns true if the sequence [first, last) contains duplicates.
first | Start of a sequence |
last | End of a sequence |
Definition at line 34 of file sequence_algorithm.h.
bool mcrl2::data::detail::sequence_empty_intersection | ( | Sequence | s1, |
Sequence | s2 | ||
) |
Determines if the unordered sequences s1 and s2 have an empty intersection.
s1 | A sequence |
s2 | A sequence |
Definition at line 92 of file sequence_algorithm.h.
bool mcrl2::data::detail::sequence_is_subset_of_set | ( | Iterator | first, |
Iterator | last, | ||
const std::set< T > & | s | ||
) |
Returns true if all elements of the range [first, last) are element of the set s.
first | Start of a sequence |
last | End of a sequence |
s | A set |
Definition at line 64 of file sequence_algorithm.h.
bool mcrl2::data::detail::sequences_do_overlap | ( | Iterator1 | first1, |
Iterator1 | last1, | ||
Iterator2 | first2, | ||
Iterator2 | last2 | ||
) |
Returns true if the two sequences [first1, last1) and [first2, last2) have a non empty intersection.
first1 | Start of a sequence |
last1 | End of a sequence |
first2 | Start of a sequence |
last2 | End of a sequence |
Definition at line 48 of file sequence_algorithm.h.
|
inline |
Returns the difference of two unordered sets, that are stored in aterm lists.
x | A sequence of data variables |
y | A sequence of data variables |
Definition at line 54 of file data_sequence_algorithm.h.
|
inline |
Definition at line 36 of file enumerator_iteration_limit.h.
|
inline |
Definition at line 307 of file linear_inequalities.h.
|
inline |
Definition at line 290 of file linear_inequalities.h.
|
inline |
Returns the intersection of two unordered sets, that are stored in ATerm lists.
x | A sequence of data variables |
y | A sequence of data variables |
Definition at line 31 of file data_sequence_algorithm.h.
|
inline |
This function first splits the given condition e into real conditions and non real conditions. \detail This function first uses split_condition_aux to split the condition e. Then.
Definition at line 230 of file linear_inequalities_utilities.h.
|
static |
Splits a condition in expressions ranging over reals and the others.
Conceptually, the condition is first transformed to disjunctive normal form. For each disjunct, there will be an entry in both resulting std::vectors, where the real conditions are in "real_conditions", and the others in non_real_conditions. If there are conjuncts with both real and non-real variables an exception is thrown. If negate is true the result will be negated.
e | A data expression of sort bool. |
real_condition | Those parts of e with only variables over sort Real. |
non_real_condition | Those parts of e with only variables not of sort Real. |
negate | A boolean variable that indicates whether the result must be negated. |
Definition at line 114 of file linear_inequalities_utilities.h.
|
inline |
Splits a list of variables in those that are enumerable, non enumerable and not used, according to a filter.
variables | A sequence of data variables. |
data | A data specification. |
rewr | A data rewriter to determine which elements are enumerable. |
finite_variables | A sequence of data variables. |
infinite_variables | A sequence of data variables. |
unused | A sequence of data variables that do not pass the filter. |
FILTER | A predicate that indicates whether a variable is used. |
Definition at line 66 of file split_finite_variables.h.
|
inline |
Splits the variables in a subset with finite sort, with infinite sort and those that are not used according to a filter.
variables | A sequence of data variables. |
data | A data specification. |
finite_variables | A sequence of data variables. |
infinite_variables | A sequence of data variables. |
unused | A sequence of data variables that do not pass the filter. |
FILTER | A predicate that indicates whether a variable is used. |
Definition at line 32 of file split_finite_variables.h.
|
inline |
Definition at line 474 of file linear_inequalities.h.
|
inline |
Definition at line 498 of file linear_inequalities.h.
void mcrl2::data::detail::test_rewriters | ( | Rewriter1 | R1, |
Rewriter2 | R2, | ||
std::string | expr1, | ||
std::string | expr2, | ||
const std::string & | var_decl = VARIABLE_SPECIFICATION() , |
||
const std::string & | data_spec = "" |
||
) |
Definition at line 233 of file test_rewriters.h.
|
inline |
Definition at line 82 of file linear_inequalities_utilities.h.
atermpp::term_list< T > mcrl2::data::detail::transform_aterm_list | ( | const Function & | f, |
const atermpp::term_list< T > & | x | ||
) |
Definition at line 43 of file type_checker.h.
|
inline |
Definition at line 191 of file translate_user_notation.h.
|
inline |
Returns true if the names of the given variables are unique.
variables | A sequence of data variables |
Definition at line 47 of file data_utility.h.
|
inline |
Definition at line 54 of file type_checker.h.
data::variable mcrl2::data::detail::update_substitution | ( | Substitution & | sigma, |
const data::variable & | v, | ||
const std::multiset< data::variable > & | V, | ||
IdentifierGenerator & | id_generator | ||
) |
Definition at line 92 of file replace_capture_avoiding_with_an_identifier_generator.h.
VariableContainer mcrl2::data::detail::update_substitution | ( | Substitution & | sigma, |
const VariableContainer & | v, | ||
const std::multiset< data::variable > & | V, | ||
IdentifierGenerator & | id_generator | ||
) |
Definition at line 114 of file replace_capture_avoiding_with_an_identifier_generator.h.
|
inline |
|
inline |
|
inline |
|
inline |
Definition at line 193 of file test_rewriters.h.