12#ifndef MCRL2_MODAL_FORMULA_FIND_H
13#define MCRL2_MODAL_FORMULA_FIND_H
22namespace action_formulas
30template <
typename T,
typename OutputIterator>
33 data::detail::make_find_all_variables_traverser<action_formulas::variable_traverser>(o).apply(x);
42 std::set<data::variable> result;
51template <
typename T,
typename OutputIterator>
54 data::detail::make_find_free_variables_traverser<action_formulas::data_expression_traverser, action_formulas::add_data_variable_traverser_binding>(o).apply(x);
62template <
typename T,
typename OutputIterator,
typename VariableContainer>
65 data::detail::make_find_free_variables_traverser<action_formulas::data_expression_traverser, action_formulas::add_data_variable_traverser_binding>(o, bound).apply(x);
74 std::set<data::variable> result;
83template <
typename T,
typename VariableContainer>
86 std::set<data::variable> result;
95template <
typename T,
typename OutputIterator>
98 data::detail::make_find_identifiers_traverser<action_formulas::identifier_string_traverser>(o).apply(x);
107 std::set<core::identifier_string> result;
116template <
typename T,
typename OutputIterator>
119 data::detail::make_find_sort_expressions_traverser<action_formulas::sort_expression_traverser>(o).apply(x);
128 std::set<data::sort_expression> result;
137template <
typename T,
typename OutputIterator>
140 data::detail::make_find_function_symbols_traverser<action_formulas::data_expression_traverser>(o).apply(x);
149 std::set<data::function_symbol> result;
157namespace regular_formulas
165template <
typename T,
typename OutputIterator>
168 data::detail::make_find_all_variables_traverser<regular_formulas::variable_traverser>(o).apply(x);
177 std::set<data::variable> result;
186template <
typename T,
typename OutputIterator>
189 data::detail::make_find_free_variables_traverser<regular_formulas::data_expression_traverser, regular_formulas::add_data_variable_traverser_binding>(o).apply(x);
197template <
typename T,
typename OutputIterator,
typename VariableContainer>
200 data::detail::make_find_free_variables_traverser<regular_formulas::data_expression_traverser, regular_formulas::add_data_variable_traverser_binding>(o, bound).apply(x);
209 std::set<data::variable> result;
218template <
typename T,
typename VariableContainer>
221 std::set<data::variable> result;
230template <
typename T,
typename OutputIterator>
233 data::detail::make_find_identifiers_traverser<regular_formulas::identifier_string_traverser>(o).apply(x);
242 std::set<core::identifier_string> result;
251template <
typename T,
typename OutputIterator>
254 data::detail::make_find_sort_expressions_traverser<regular_formulas::sort_expression_traverser>(o).apply(x);
263 std::set<data::sort_expression> result;
272template <
typename T,
typename OutputIterator>
275 data::detail::make_find_function_symbols_traverser<regular_formulas::data_expression_traverser>(o).apply(x);
284 std::set<data::function_symbol> result;
292namespace state_formulas
300template <
typename T,
typename OutputIterator>
303 data::detail::make_find_all_variables_traverser<state_formulas::variable_traverser>(o).apply(x);
312 std::set<data::variable> result;
321template <
typename T,
typename OutputIterator>
324 data::detail::make_find_free_variables_traverser<state_formulas::data_expression_traverser, state_formulas::add_data_variable_traverser_binding>(o).apply(x);
332template <
typename T,
typename OutputIterator,
typename VariableContainer>
335 data::detail::make_find_free_variables_traverser<state_formulas::data_expression_traverser, state_formulas::add_data_variable_traverser_binding>(o, bound).apply(x);
344 std::set<data::variable> result;
353template <
typename T,
typename VariableContainer>
356 std::set<data::variable> result;
365template <
typename T,
typename OutputIterator>
368 data::detail::make_find_identifiers_traverser<state_formulas::identifier_string_traverser>(o).apply(x);
377 std::set<core::identifier_string> result;
386template <
typename T,
typename OutputIterator>
389 data::detail::make_find_sort_expressions_traverser<state_formulas::sort_expression_traverser>(o).apply(x);
398 std::set<data::sort_expression> result;
407template <
typename T,
typename OutputIterator>
410 data::detail::make_find_function_symbols_traverser<state_formulas::data_expression_traverser>(o).apply(x);
419 std::set<data::function_symbol> result;
435 std::set<core::identifier_string>
names;
443template <
template <
class>
class Traverser,
class OutputIterator>
446 typedef Traverser<find_state_variables_traverser<Traverser, OutputIterator> >
super;
463template <
template <
class>
class Traverser,
class OutputIterator>
464find_state_variables_traverser<Traverser, OutputIterator>
470template <
template <
class>
class Traverser,
template <
template <
class>
class,
class>
class Binder, class OutputIterator>
473 typedef Binder<Traverser, find_free_state_variables_traverser<Traverser, Binder, OutputIterator> >
super;
477 using super::is_bound;
478 using super::bound_variables;
479 using super::increase_bind_count;
498 if (!is_bound(v.
name()))
505template <
template <
class>
class Traverser,
template <
template <
class>
class,
class>
class Binder, class OutputIterator>
506find_free_state_variables_traverser<Traverser, Binder, OutputIterator>
512template <
template <
class>
class Traverser,
template <
template <
class>
class,
class>
class Binder, class OutputIterator, class VariableContainer>
513find_free_state_variables_traverser<Traverser, Binder, OutputIterator>
535template <
typename T,
typename OutputIterator>
538 state_formulas::detail::make_find_state_variables_traverser<state_formulas::state_variable_traverser>(o).apply(x);
547 std::set<state_formulas::variable> result;
556template <
typename T,
typename OutputIterator>
559 state_formulas::detail::make_find_free_state_variables_traverser<state_formulas::state_variable_traverser, state_formulas::add_state_variable_binding>(o).apply(x);
568 std::set<state_formulas::variable> result;
577template <
typename T,
typename OutputIterator>
580 process::detail::make_find_action_labels_traverser<state_formulas::action_label_traverser>(o).apply(x);
589 std::set<process::action_label> result;
A class that takes a linear process specification and checks all tau-summands of that LPS for conflue...
add your file description here.