mCRL2
Loading...
Searching...
No Matches
find.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/modal_formula/find.h
10/// \brief add your file description here.
11
12#ifndef MCRL2_MODAL_FORMULA_FIND_H
13#define MCRL2_MODAL_FORMULA_FIND_H
14
15#include "mcrl2/process/find.h"
16#include "mcrl2/modal_formula/add_binding.h"
17#include "mcrl2/modal_formula/traverser.h"
18
19namespace mcrl2
20{
21
22namespace action_formulas
23{
24
25//--- start generated action_formulas find code ---//
26/// \brief Writes all variables that occur in an object to an output iterator.
27/// \param[in] x an object containing variables
28/// \param[in,out] o an output iterator to which all variables occurring in x are written.
29template <typename T, typename OutputIterator>
30void find_all_variables(const T& x, OutputIterator o)
31{
32 data::detail::make_find_all_variables_traverser<action_formulas::variable_traverser>(o).apply(x);
33}
34
35/// \brief Returns all variables that occur in an object.
36/// \param[in] x an object containing variables
37/// \return All variables that occur in the object x
38template <typename T>
40{
41 std::set<data::variable> result;
42 action_formulas::find_all_variables(x, std::inserter(result, result.end()));
43 return result;
44}
45
46/// \brief Writes all free variables that occur in an object to an output iterator.
47/// \param[in] x an object containing variables
48/// \param[in,out] o an output iterator to which all variables occurring in x are added.
49template <typename T, typename OutputIterator>
50void find_free_variables(const T& x, OutputIterator o)
51{
53}
54
55/// \brief Writes all free variables that occur in an object to an output iterator.
56/// \param[in] x an object containing variables
57/// \param[in,out] o an output iterator to which all variables occurring in x are written.
58/// \param[in] bound a container of variables
59template <typename T, typename OutputIterator, typename VariableContainer>
60void find_free_variables_with_bound(const T& x, OutputIterator o, const VariableContainer& bound)
61{
62 data::detail::make_find_free_variables_traverser<action_formulas::data_expression_traverser, action_formulas::add_data_variable_traverser_binding>(o, bound).apply(x);
63}
64
65/// \brief Returns all free variables that occur in an object.
66/// \param[in] x an object containing variables
67/// \return All free variables that occur in the object x
68template <typename T>
70{
71 std::set<data::variable> result;
72 action_formulas::find_free_variables(x, std::inserter(result, result.end()));
73 return result;
74}
75
76/// \brief Returns all free variables that occur in an object.
77/// \param[in] x an object containing variables
78/// \param[in] bound a container of variables
79/// \return All free variables that occur in the object x
80template <typename T, typename VariableContainer>
82{
83 std::set<data::variable> result;
84 action_formulas::find_free_variables_with_bound(x, std::inserter(result, result.end()), bound);
85 return result;
86}
87
88/// \brief Writes all identifiers that occur in an object to an output iterator.
89/// \param[in] x an object containing identifiers
90/// \param[in,out] o an output iterator to which all identifiers occurring in x are written.
91template <typename T, typename OutputIterator>
92void find_identifiers(const T& x, OutputIterator o)
93{
94 data::detail::make_find_identifiers_traverser<action_formulas::identifier_string_traverser>(o).apply(x);
95}
96
97/// \brief Returns all identifiers that occur in an object.
98/// \param[in] x an object containing identifiers
99/// \return All identifiers that occur in the object x
100template <typename T>
102{
103 std::set<core::identifier_string> result;
104 action_formulas::find_identifiers(x, std::inserter(result, result.end()));
105 return result;
106}
107
108/// \brief Writes all sort expressions that occur in an object to an output iterator.
109/// \param[in] x an object containing sort expressions
110/// \param[in,out] o an output iterator to which all sort expressions occurring in x are written.
111template <typename T, typename OutputIterator>
112void find_sort_expressions(const T& x, OutputIterator o)
113{
114 data::detail::make_find_sort_expressions_traverser<action_formulas::sort_expression_traverser>(o).apply(x);
115}
116
117/// \brief Returns all sort expressions that occur in an object.
118/// \param[in] x an object containing sort expressions
119/// \return All sort expressions that occur in the object x
120template <typename T>
122{
123 std::set<data::sort_expression> result;
124 action_formulas::find_sort_expressions(x, std::inserter(result, result.end()));
125 return result;
126}
127
128/// \brief Writes all function symbols that occur in an object to an output iterator.
129/// \param[in] x an object containing function symbols
130/// \param[in,out] o an output iterator to which all function symbols occurring in x are written.
131template <typename T, typename OutputIterator>
132void find_function_symbols(const T& x, OutputIterator o)
133{
134 data::detail::make_find_function_symbols_traverser<action_formulas::data_expression_traverser>(o).apply(x);
135}
136
137/// \brief Returns all function symbols that occur in an object.
138/// \param[in] x an object containing function symbols
139/// \return All function symbols that occur in the object x
140template <typename T>
142{
143 std::set<data::function_symbol> result;
144 action_formulas::find_function_symbols(x, std::inserter(result, result.end()));
145 return result;
146}
147//--- end generated action_formulas find code ---//
148
149} // namespace action_formulas
150
151namespace regular_formulas
152{
153
154//--- start generated regular_formulas find code ---//
155/// \brief Writes all variables that occur in an object to an output iterator.
156/// \param[in] x an object containing variables
157/// \param[in,out] o an output iterator to which all variables occurring in x are written.
158template <typename T, typename OutputIterator>
159void find_all_variables(const T& x, OutputIterator o)
160{
161 data::detail::make_find_all_variables_traverser<regular_formulas::variable_traverser>(o).apply(x);
162}
163
164/// \brief Returns all variables that occur in an object.
165/// \param[in] x an object containing variables
166/// \return All variables that occur in the object x
167template <typename T>
169{
170 std::set<data::variable> result;
171 regular_formulas::find_all_variables(x, std::inserter(result, result.end()));
172 return result;
173}
174
175/// \brief Writes all free variables that occur in an object to an output iterator.
176/// \param[in] x an object containing variables
177/// \param[in,out] o an output iterator to which all variables occurring in x are added.
178template <typename T, typename OutputIterator>
179void find_free_variables(const T& x, OutputIterator o)
180{
182}
183
184/// \brief Writes all free variables that occur in an object to an output iterator.
185/// \param[in] x an object containing variables
186/// \param[in,out] o an output iterator to which all variables occurring in x are written.
187/// \param[in] bound a container of variables
188template <typename T, typename OutputIterator, typename VariableContainer>
189void find_free_variables_with_bound(const T& x, OutputIterator o, const VariableContainer& bound)
190{
191 data::detail::make_find_free_variables_traverser<regular_formulas::data_expression_traverser, regular_formulas::add_data_variable_traverser_binding>(o, bound).apply(x);
192}
193
194/// \brief Returns all free variables that occur in an object.
195/// \param[in] x an object containing variables
196/// \return All free variables that occur in the object x
197template <typename T>
199{
200 std::set<data::variable> result;
201 regular_formulas::find_free_variables(x, std::inserter(result, result.end()));
202 return result;
203}
204
205/// \brief Returns all free variables that occur in an object.
206/// \param[in] x an object containing variables
207/// \param[in] bound a container of variables
208/// \return All free variables that occur in the object x
209template <typename T, typename VariableContainer>
211{
212 std::set<data::variable> result;
213 regular_formulas::find_free_variables_with_bound(x, std::inserter(result, result.end()), bound);
214 return result;
215}
216
217/// \brief Writes all identifiers that occur in an object to an output iterator.
218/// \param[in] x an object containing identifiers
219/// \param[in,out] o an output iterator to which all identifiers occurring in x are written.
220template <typename T, typename OutputIterator>
221void find_identifiers(const T& x, OutputIterator o)
222{
223 data::detail::make_find_identifiers_traverser<regular_formulas::identifier_string_traverser>(o).apply(x);
224}
225
226/// \brief Returns all identifiers that occur in an object.
227/// \param[in] x an object containing identifiers
228/// \return All identifiers that occur in the object x
229template <typename T>
231{
232 std::set<core::identifier_string> result;
233 regular_formulas::find_identifiers(x, std::inserter(result, result.end()));
234 return result;
235}
236
237/// \brief Writes all sort expressions that occur in an object to an output iterator.
238/// \param[in] x an object containing sort expressions
239/// \param[in,out] o an output iterator to which all sort expressions occurring in x are written.
240template <typename T, typename OutputIterator>
241void find_sort_expressions(const T& x, OutputIterator o)
242{
243 data::detail::make_find_sort_expressions_traverser<regular_formulas::sort_expression_traverser>(o).apply(x);
244}
245
246/// \brief Returns all sort expressions that occur in an object.
247/// \param[in] x an object containing sort expressions
248/// \return All sort expressions that occur in the object x
249template <typename T>
251{
252 std::set<data::sort_expression> result;
253 regular_formulas::find_sort_expressions(x, std::inserter(result, result.end()));
254 return result;
255}
256
257/// \brief Writes all function symbols that occur in an object to an output iterator.
258/// \param[in] x an object containing function symbols
259/// \param[in,out] o an output iterator to which all function symbols occurring in x are written.
260template <typename T, typename OutputIterator>
261void find_function_symbols(const T& x, OutputIterator o)
262{
263 data::detail::make_find_function_symbols_traverser<regular_formulas::data_expression_traverser>(o).apply(x);
264}
265
266/// \brief Returns all function symbols that occur in an object.
267/// \param[in] x an object containing function symbols
268/// \return All function symbols that occur in the object x
269template <typename T>
271{
272 std::set<data::function_symbol> result;
273 regular_formulas::find_function_symbols(x, std::inserter(result, result.end()));
274 return result;
275}
276//--- end generated regular_formulas find code ---//
277
278} // namespace regular_formulas
279
280namespace state_formulas
281{
282
283//--- start generated state_formulas find code ---//
284/// \brief Writes all variables that occur in an object to an output iterator.
285/// \param[in] x an object containing variables
286/// \param[in,out] o an output iterator to which all variables occurring in x are written.
287template <typename T, typename OutputIterator>
288void find_all_variables(const T& x, OutputIterator o)
289{
290 data::detail::make_find_all_variables_traverser<state_formulas::variable_traverser>(o).apply(x);
291}
292
293/// \brief Returns all variables that occur in an object.
294/// \param[in] x an object containing variables
295/// \return All variables that occur in the object x
296template <typename T>
298{
299 std::set<data::variable> result;
300 state_formulas::find_all_variables(x, std::inserter(result, result.end()));
301 return result;
302}
303
304/// \brief Writes all free variables that occur in an object to an output iterator.
305/// \param[in] x an object containing variables
306/// \param[in,out] o an output iterator to which all variables occurring in x are added.
307template <typename T, typename OutputIterator>
308void find_free_variables(const T& x, OutputIterator o)
309{
311}
312
313/// \brief Writes all free variables that occur in an object to an output iterator.
314/// \param[in] x an object containing variables
315/// \param[in,out] o an output iterator to which all variables occurring in x are written.
316/// \param[in] bound a container of variables
317template <typename T, typename OutputIterator, typename VariableContainer>
318void find_free_variables_with_bound(const T& x, OutputIterator o, const VariableContainer& bound)
319{
320 data::detail::make_find_free_variables_traverser<state_formulas::data_expression_traverser, state_formulas::add_data_variable_traverser_binding>(o, bound).apply(x);
321}
322
323/// \brief Returns all free variables that occur in an object.
324/// \param[in] x an object containing variables
325/// \return All free variables that occur in the object x
326template <typename T>
328{
329 std::set<data::variable> result;
330 state_formulas::find_free_variables(x, std::inserter(result, result.end()));
331 return result;
332}
333
334/// \brief Returns all free variables that occur in an object.
335/// \param[in] x an object containing variables
336/// \param[in] bound a container of variables
337/// \return All free variables that occur in the object x
338template <typename T, typename VariableContainer>
340{
341 std::set<data::variable> result;
342 state_formulas::find_free_variables_with_bound(x, std::inserter(result, result.end()), bound);
343 return result;
344}
345
346/// \brief Writes all identifiers that occur in an object to an output iterator.
347/// \param[in] x an object containing identifiers
348/// \param[in,out] o an output iterator to which all identifiers occurring in x are written.
349template <typename T, typename OutputIterator>
350void find_identifiers(const T& x, OutputIterator o)
351{
352 data::detail::make_find_identifiers_traverser<state_formulas::identifier_string_traverser>(o).apply(x);
353}
354
355/// \brief Returns all identifiers that occur in an object.
356/// \param[in] x an object containing identifiers
357/// \return All identifiers that occur in the object x
358template <typename T>
360{
361 std::set<core::identifier_string> result;
362 state_formulas::find_identifiers(x, std::inserter(result, result.end()));
363 return result;
364}
365
366/// \brief Writes all sort expressions that occur in an object to an output iterator.
367/// \param[in] x an object containing sort expressions
368/// \param[in,out] o an output iterator to which all sort expressions occurring in x are written.
369template <typename T, typename OutputIterator>
370void find_sort_expressions(const T& x, OutputIterator o)
371{
372 data::detail::make_find_sort_expressions_traverser<state_formulas::sort_expression_traverser>(o).apply(x);
373}
374
375/// \brief Returns all sort expressions that occur in an object.
376/// \param[in] x an object containing sort expressions
377/// \return All sort expressions that occur in the object x
378template <typename T>
380{
381 std::set<data::sort_expression> result;
382 state_formulas::find_sort_expressions(x, std::inserter(result, result.end()));
383 return result;
384}
385
386/// \brief Writes all function symbols that occur in an object to an output iterator.
387/// \param[in] x an object containing function symbols
388/// \param[in,out] o an output iterator to which all function symbols occurring in x are written.
389template <typename T, typename OutputIterator>
390void find_function_symbols(const T& x, OutputIterator o)
391{
392 data::detail::make_find_function_symbols_traverser<state_formulas::data_expression_traverser>(o).apply(x);
393}
394
395/// \brief Returns all function symbols that occur in an object.
396/// \param[in] x an object containing function symbols
397/// \return All function symbols that occur in the object x
398template <typename T>
400{
401 std::set<data::function_symbol> result;
402 state_formulas::find_function_symbols(x, std::inserter(result, result.end()));
403 return result;
404}
405//--- end generated state_formulas find code ---//
406
407namespace detail {
408
409// collects state variable names in a set
411{
413 using super::enter;
414 using super::leave;
415 using super::apply;
416
418
420 {
421 names.insert(x.name());
422 }
423};
424
425template <template <class> class Traverser, class OutputIterator>
427{
429 using super::enter;
430 using super::leave;
431 using super::apply;
432
433 OutputIterator out;
434
436 : out(out_)
437 {}
438
439 void apply(const variable& v)
440 {
441 *out = v;
442 }
443};
444
445template <template <class> class Traverser, class OutputIterator>
448{
449 return find_state_variables_traverser<Traverser, OutputIterator>(out);
450}
451
452template <template <class> class Traverser, template <template <class> class, class> class Binder, class OutputIterator>
454{
456 using super::enter;
457 using super::leave;
458 using super::apply;
459 using super::is_bound;
460 using super::bound_variables;
462
463 OutputIterator out;
464
466 : out(out_)
467 {}
468
469/*
470 template <typename VariableContainer>
471 find_free_state_variables_traverser(OutputIterator out_, const VariableContainer& v)
472 : out(out_)
473 {
474 increase_bind_count(v);
475 }
476*/
477
478 void apply(const variable& v)
479 {
480 if (!is_bound(v.name()))
481 {
482 *out = v;
483 }
484 }
485};
486
487template <template <class> class Traverser, template <template <class> class, class> class Binder, class OutputIterator>
490{
491 return find_free_state_variables_traverser<Traverser, Binder, OutputIterator>(out);
492}
493
494template <template <class> class Traverser, template <template <class> class, class> class Binder, class OutputIterator, class VariableContainer>
497{
498 return find_free_state_variables_traverser<Traverser, Binder, OutputIterator>(out, v);
499}
500
501} // namespace detail
502
503/// \brief Returns the names of the state variables that occur in x.
504/// \param[in] x A state formula
505inline
507{
509 f.apply(x);
510 return f.names;
511}
512
513/// \brief Writes all state variables that occur in an object to an output iterator.
514/// \param[in] x an object containing state variables
515/// \param[in,out] o an output iterator to which all state variables occurring in x are written.
516template <typename T, typename OutputIterator>
517void find_state_variables(const T& x, OutputIterator o)
518{
519 state_formulas::detail::make_find_state_variables_traverser<state_formulas::state_variable_traverser>(o).apply(x);
520}
521
522/// \brief Returns all state variables that occur in an object
523/// \param[in] x an object containing variables
524/// \return All state variables that occur in the object x
525template <typename T>
527{
528 std::set<state_formulas::variable> result;
529 state_formulas::find_state_variables(x, std::inserter(result, result.end()));
530 return result;
531}
532
533/// \brief Writes all free state variables that occur in an object to an output iterator.
534/// \param[in] x an object containing state variables
535/// \param[in,out] o an output iterator to which all state variables occurring in x are added.
536template <typename T, typename OutputIterator>
537void find_free_state_variables(const T& x, OutputIterator o)
538{
539 state_formulas::detail::make_find_free_state_variables_traverser<state_formulas::state_variable_traverser, state_formulas::add_state_variable_binding>(o).apply(x);
540}
541
542/// \brief Returns all free state variables that occur in an object
543/// \param[in] x an object containing variables
544/// \return All state variables that occur in the object x
545template <typename T>
547{
548 std::set<state_formulas::variable> result;
549 state_formulas::find_free_state_variables(x, std::inserter(result, result.end()));
550 return result;
551}
552
553/// \brief Writes all action labels that occur in an object to an output iterator.
554/// \param[in] x an object containing action labels
555/// \param[in,out] o an output iterator to which all action labels occurring in x are written.
556template <typename T, typename OutputIterator>
557void find_action_labels(const T& x, OutputIterator o)
558{
559 process::detail::make_find_action_labels_traverser<state_formulas::action_label_traverser>(o).apply(x);
560}
561
562/// \brief Returns all action labels that occur in an object
563/// \param[in] x an object containing action labels
564/// \return All action labels that occur in the object x
565template <typename T>
567{
568 std::set<process::action_label> result;
569 state_formulas::find_action_labels(x, std::inserter(result, result.end()));
570 return result;
571}
572
573} // namespace state_formulas
574
575} // namespace mcrl2
576
577#endif // MCRL2_MODAL_FORMULA_FIND_H
aterm_string(const aterm_string &t) noexcept=default
aterm()
Default constructor.
Definition aterm.h:51
A unordered_map class in which aterms can be stored.
\brief The and operator for action formulas
and_(const action_formula &left, const action_formula &right)
\brief Constructor Z14.
const action_formula & left() const
const action_formula & right() const
\brief The at operator for action formulas
const data::data_expression & time_stamp() const
const action_formula & operand() const
at(const action_formula &operand, const data::data_expression &time_stamp)
\brief Constructor Z14.
\brief The existential quantification operator for action formulas
const data::variable_list & variables() const
const action_formula & body() const
\brief The value false for action formulas
false_()
\brief Default constructor X3.
\brief The universal quantification operator for action formulas
const action_formula & body() const
const data::variable_list & variables() const
\brief The implication operator for action formulas
const action_formula & left() const
imp(const action_formula &left, const action_formula &right)
\brief Constructor Z14.
const action_formula & right() const
\brief The multi action for action formulas
const process::action_list & actions() const
\brief The not operator for action formulas
not_(const action_formula &operand)
\brief Constructor Z14.
const action_formula & operand() const
\brief The or operator for action formulas
or_(const action_formula &left, const action_formula &right)
\brief Constructor Z14.
const action_formula & right() const
const action_formula & left() const
\brief The value true for action formulas
true_()
\brief Default constructor X3.
parse_node_unexpected_exception(const parser &p, const parse_node &node)
Definition parse.h:76
\brief Assignment of a data expression to a variable
Definition assignment.h:88
assignment(const variable &lhs, const data_expression &rhs)
\brief Constructor Z14.
Definition assignment.h:104
\brief A container sort
const sort_expression & element_sort() const
sort_expression sort() const
Returns the sort of the data expression.
Definition data.cpp:107
void translate_user_notation()
Translate user notation within the equations of the data specification.
data_specification()=default
Default constructor. Generate a data specification that contains only booleans and positive numbers.
data_type_checker(const data_specification &data_spec)
make a data type checker. Throws a mcrl2::runtime_error exception if the data_specification is not we...
data_specification operator()() const
Yields a type checked data specification, provided typechecking was successful. If not successful an ...
const data_specification & typechecked_data_specification() const
Definition typecheck.h:117
Identifier generator that stores the identifiers of the context in a set. Using the operator()() and ...
\brief A sort expression
const core::identifier_string & name() const
const data_expression_list & arguments() const
\brief A data variable
Definition variable.h:25
variable(const core::identifier_string &name, const sort_expression &sort)
Constructor.
Definition variable.h:59
Linear process specification.
stochastic_specification(const specification &other)
Constructor. This constructor is explicit as implicit conversions of this kind is a source of bugs.
\brief An untyped multi action or data application
\brief The alt operator for regular formulas
const regular_formula & right() const
alt(const regular_formula &left, const regular_formula &right)
\brief Constructor Z14.
const regular_formula & left() const
\brief The seq operator for regular formulas
seq(const regular_formula &left, const regular_formula &right)
\brief Constructor Z14.
const regular_formula & right() const
const regular_formula & left() const
\brief The 'trans or nil' operator for regular formulas
trans_or_nil(const regular_formula &operand)
\brief Constructor Z14.
const regular_formula & operand() const
\brief The trans operator for regular formulas
const regular_formula & operand() const
trans(const regular_formula &operand)
\brief Constructor Z14.
\brief An untyped regular formula or action formula
untyped_regular_formula(const core::identifier_string &name, const regular_formula &left, const regular_formula &right)
\brief Constructor Z14.
const core::identifier_string & name() const
\brief The and operator for state formulas
const state_formula & right() const
and_(const state_formula &left, const state_formula &right)
\brief Constructor Z14.
const state_formula & left() const
\brief The multiply operator for state formulas with values
const state_formula & left() const
const_multiply_alt(const state_formula &left, const data::data_expression &right)
\brief Constructor Z14.
const_multiply_alt(const const_multiply_alt &) noexcept=default
Move semantics.
const data::data_expression & right() const
\brief The multiply operator for state formulas with values
const data::data_expression & left() const
const_multiply(const const_multiply &) noexcept=default
Move semantics.
const_multiply(const data::data_expression &left, const state_formula &right)
\brief Constructor Z14.
const state_formula & right() const
\brief The timed delay operator for state formulas
const data::data_expression & time_stamp() const
delay_timed(const data::data_expression &time_stamp)
\brief Constructor Z14.
\brief The delay operator for state formulas
delay()
\brief Default constructor X3.
data::data_expression operator()(const data::variable &v) const
Traverser that checks for name clashes in parameters of nested mu's/nu's and forall/exists.
void insert(const core::identifier_string &name, const state_formula &x)
data::assignment_list apply_assignments(const data::assignment_list &x)
state_formula_data_variable_name_clash_resolver(data::set_identifier_generator &generator_)
std::map< core::identifier_string, data::sort_expression_list > m_state_variables
bool is_declared(const core::identifier_string &name) const
data::sort_expression_list matching_state_variable_sorts(const core::identifier_string &name, const data::data_expression_list &arguments) const
void add_state_variable(const core::identifier_string &name, const data::variable_list &parameters, const data::sort_type_checker &sort_typechecker)
Traverser that checks for name clashes in nested mu's/nu's.
void push(const core::identifier_string &name)
Pushes name on the stack.
std::vector< core::identifier_string > m_name_stack
The stack of names.
utilities::number_postfix_generator m_generator
Generator for fresh variable names.
void pop(const core::identifier_string &name)
Pops the name of the stack.
void push(const core::identifier_string &name)
Pushes name on the stack.
\brief The existential quantification operator for state formulas
exists(const data::variable_list &variables, const state_formula &body)
\brief Constructor Z14.
const state_formula & body() const
const data::variable_list & variables() const
\brief The value false for state formulas
false_()
\brief Default constructor X3.
\brief The universal quantification operator for state formulas
const state_formula & body() const
const data::variable_list & variables() const
forall(const data::variable_list &variables, const state_formula &body)
\brief Constructor Z14.
\brief The implication operator for state formulas
imp(const state_formula &left, const state_formula &right)
\brief Constructor Z14.
const state_formula & left() const
const state_formula & right() const
\brief The infimum over a data type for state formulas
infimum(const data::variable_list &variables, const state_formula &body)
\brief Constructor Z14.
const data::variable_list & variables() const
const state_formula & body() const
\brief The may operator for state formulas
const state_formula & operand() const
const regular_formulas::regular_formula & formula() const
may(const regular_formulas::regular_formula &formula, const state_formula &operand)
\brief Constructor Z14.
\brief The minus operator for state formulas
minus(const minus &) noexcept=default
Move semantics.
minus(const state_formula &operand)
\brief Constructor Z14.
const state_formula & operand() const
\brief The mu operator for state formulas
const core::identifier_string & name() const
const data::assignment_list & assignments() const
mu(const core::identifier_string &name, const data::assignment_list &assignments, const state_formula &operand)
\brief Constructor Z14.
const state_formula & operand() const
\brief The must operator for state formulas
must(const regular_formulas::regular_formula &formula, const state_formula &operand)
\brief Constructor Z14.
const regular_formulas::regular_formula & formula() const
const state_formula & operand() const
\brief The not operator for state formulas
not_(const not_ &) noexcept=default
Move semantics.
const state_formula & operand() const
not_(const state_formula &operand)
\brief Constructor Z14.
\brief The nu operator for state formulas
nu(const core::identifier_string &name, const data::assignment_list &assignments, const state_formula &operand)
\brief Constructor Z14.
const core::identifier_string & name() const
const state_formula & operand() const
const data::assignment_list & assignments() const
\brief The or operator for state formulas
or_(const state_formula &left, const state_formula &right)
\brief Constructor Z14.
const state_formula & right() const
const state_formula & left() const
\brief The plus operator for state formulas with values
plus(const plus &) noexcept=default
Move semantics.
const state_formula & left() const
const state_formula & right() const
plus(const state_formula &left, const state_formula &right)
\brief Constructor Z14.
process::action_label_list m_action_labels
The action specification of the specification.
const state_formula & formula() const
Returns the formula of the state formula specification.
state_formula_specification(const state_formula &formula, const data::data_specification &data=data::data_specification(), const process::action_label_list &action_labels={})
Constructor of a state formula specification.
state_formula m_formula
The formula of the specification.
data::data_specification m_data
The data specification of the specification.
state_formula & formula()
Returns the formula of the state formula specification.
const process::action_label_list & action_labels() const
Returns the action label specification.
process::action_label_list & action_labels()
Returns the action label specification.
detail::state_variable_context m_state_variable_context
Definition typecheck.h:736
data::detail::variable_context m_variable_context
Definition typecheck.h:734
process::detail::action_context m_action_context
Definition typecheck.h:735
state_formula_type_checker(const data::data_specification &dataspec, const bool formula_is_quantitative, const ActionLabelContainer &action_labels=ActionLabelContainer(), const VariableContainer &variables=VariableContainer())
Constructor for a state_formula type checker.
Definition typecheck.h:746
state_formula typecheck_state_formula(const state_formula &x)
Definition typecheck.h:766
state_formula(const state_formula &) noexcept=default
Move semantics.
state_formula & operator=(state_formula &&) noexcept=default
state_formula(const atermpp::aterm &term)
state_formula & operator=(const state_formula &) noexcept=default
\brief The sum over a data type for state formulas
sum(const data::variable_list &variables, const state_formula &body)
\brief Constructor Z14.
const data::variable_list & variables() const
const state_formula & body() const
\brief The supremum over a data type for state formulas
const state_formula & body() const
const data::variable_list & variables() const
supremum(const data::variable_list &variables, const state_formula &body)
\brief Constructor Z14.
\brief The value true for state formulas
true_()
\brief Default constructor X3.
\brief The state formula variable
const core::identifier_string & name() const
const data::data_expression_list & arguments() const
\brief The timed yaled operator for state formulas
yaled_timed(const data::data_expression &time_stamp)
\brief Constructor Z14.
const data::data_expression & time_stamp() const
\brief The yaled operator for state formulas
yaled()
\brief Default constructor X3.
D_ParserTables parser_tables_mcrl2
#define mCRL2log(LEVEL)
mCRL2log(LEVEL) provides the stream used to log.
Definition logger.h:392
action_formula parse_action_formula(const std::string &text)
typecheck_builder make_typecheck_builder(data::data_type_checker &data_typechecker, const data::detail::variable_context &variables, const process::detail::action_context &actions)
Definition typecheck.h:131
bool is_left_associative(const and_ &)
Definition print.h:44
std::set< data::variable > find_free_variables(const T &x)
Returns all free variables that occur in an object.
Definition find.h:69
std::string pp(const action_formulas::exists &x, bool arg0)
bool is_at(const atermpp::aterm &x)
std::string pp(const action_formulas::imp &x, bool arg0)
void pp(const T &t, std::ostream &out, bool precendence_aware)
Prints the object t to a stream.
Definition print.h:167
bool is_right_associative(const and_ &)
Definition print.h:55
std::string pp(const action_formulas::at &x, bool arg0)
std::string pp(const action_formulas::forall &x, bool arg0)
int precedence(const action_formula &x)
Definition print.h:29
std::set< data::variable > find_all_variables(const T &x)
Returns all variables that occur in an object.
Definition find.h:39
std::string pp(const action_formulas::or_ &x, bool arg0)
void find_free_variables_with_bound(const T &x, OutputIterator o, const VariableContainer &bound)
Writes all free variables that occur in an object to an output iterator.
Definition find.h:60
void find_all_variables(const T &x, OutputIterator o)
Writes all variables that occur in an object to an output iterator.
Definition find.h:30
std::string pp(const action_formulas::action_formula &x, bool arg0)
void find_free_variables(const T &x, OutputIterator o)
Writes all free variables that occur in an object to an output iterator.
Definition find.h:50
action_formula typecheck_action_formula(const action_formula &x, const data::data_specification &dataspec, const VariableContainer &variables, const ActionLabelContainer &actions)
Definition typecheck.h:143
constexpr int precedence(const exists &)
Definition print.h:23
std::set< core::identifier_string > find_identifiers(const T &x)
Returns all identifiers that occur in an object.
Definition find.h:101
std::string pp(const action_formulas::true_ &x, bool arg0)
bool is_right_associative(const or_ &)
Definition print.h:54
void replace_sort_expressions(T &x, const Substitution &sigma, bool innermost)
Definition replace.h:26
std::set< data::variable > find_all_variables(const action_formulas::action_formula &x)
action_formula parse_action_formula(const std::string &text, const data::data_specification &dataspec, const VariableContainer &variables, const ActionLabelContainer &actions)
Definition parse.h:37
constexpr int precedence(const and_ &)
Definition print.h:26
bool is_or(const atermpp::aterm &x)
bool is_true(const atermpp::aterm &x)
bool is_forall(const atermpp::aterm &x)
std::string pp(const action_formulas::not_ &x, bool arg0)
bool is_left_associative(const or_ &)
Definition print.h:43
void replace_variables_capture_avoiding(T &x, Substitution &sigma, data::set_identifier_generator &id_generator)
bool is_false(const atermpp::aterm &x)
action_formula typecheck_action_formula(const action_formula &x, const lps::stochastic_specification &lpsspec)
Definition typecheck.h:161
bool is_left_associative(const imp &)
Definition print.h:42
bool is_not(const atermpp::aterm &x)
T replace_variables_capture_avoiding(const T &x, Substitution &sigma, data::set_identifier_generator &id_generator)
std::set< data::sort_expression > find_sort_expressions(const T &x)
Returns all sort expressions that occur in an object.
Definition find.h:121
constexpr int precedence(const imp &)
Definition print.h:24
bool is_right_associative(const imp &)
Definition print.h:53
void find_function_symbols(const T &x, OutputIterator o)
Writes all function symbols that occur in an object to an output iterator.
Definition find.h:132
bool is_imp(const atermpp::aterm &x)
bool is_and(const atermpp::aterm &x)
constexpr int precedence(const at &)
Definition print.h:27
constexpr int precedence(const or_ &)
Definition print.h:25
std::set< data::variable > find_free_variables_with_bound(const T &x, VariableContainer const &bound)
Returns all free variables that occur in an object.
Definition find.h:81
std::set< data::function_symbol > find_function_symbols(const T &x)
Returns all function symbols that occur in an object.
Definition find.h:141
T replace_sort_expressions(const T &x, const Substitution &sigma, bool innermost)
Definition replace.h:36
void find_identifiers(const T &x, OutputIterator o)
Writes all identifiers that occur in an object to an output iterator.
Definition find.h:92
std::string pp(const T &t, bool precendence_aware=true)
Returns a string representation of the object t.
Definition print.h:175
action_formula parse_action_formula(const std::string &text, const lps::stochastic_specification &lpsspec)
Definition parse.h:50
void find_sort_expressions(const T &x, OutputIterator o)
Writes all sort expressions that occur in an object to an output iterator.
Definition find.h:112
constexpr int precedence(const not_ &)
Definition print.h:28
bool is_multi_action(const atermpp::aterm &x)
constexpr int precedence(const forall &)
Definition print.h:22
bool is_right_associative(const action_formula &x)
Definition print.h:56
bool is_left_associative(const action_formula &x)
Definition print.h:45
std::string pp(const action_formulas::multi_action &x, bool arg0)
std::string pp(const action_formulas::false_ &x, bool arg0)
bool is_exists(const atermpp::aterm &x)
std::string pp(const action_formulas::and_ &x, bool arg0)
bool is_action_formula(const atermpp::aterm &x)
void warn_left_merge_merge(const parse_node &)
Prints a warning for each occurrence of 'x ||_ y || z' in the parse tree.
void warn_and_or(const parse_node &)
Prints a warning for each occurrence of 'x && y || z' in the parse tree.
Namespace for system defined sort bag.
Definition bag1.h:35
bool is_union_application(const atermpp::aterm &e)
Recogniser for application of +.
Definition bag1.h:491
application union_(const sort_expression &s, const data_expression &arg0, const data_expression &arg1)
Application of function symbol +.
Definition bag1.h:470
Namespace for system defined sort bool_.
Definition bool.h:29
const basic_sort & bool_()
Constructor for sort expression Bool.
Definition bool.h:41
Namespace for system defined sort fbag.
Definition fbag1.h:34
application union_(const sort_expression &s, const data_expression &arg0, const data_expression &arg1)
Application of function symbol +.
Definition fbag1.h:554
bool is_union_application(const atermpp::aterm &e)
Recogniser for application of +.
Definition fbag1.h:575
Namespace for system defined sort fset.
Definition fset1.h:32
application union_(const sort_expression &s, const data_expression &arg0, const data_expression &arg1)
Application of function symbol +.
Definition fset1.h:486
bool is_union_application(const atermpp::aterm &e)
Recogniser for application of +.
Definition fset1.h:507
Namespace for system defined sort int_.
application plus(const data_expression &arg0, const data_expression &arg1)
Application of function symbol +.
Definition int1.h:999
bool is_int(const sort_expression &e)
Recogniser for sort expression Int.
Definition int1.h:54
Namespace for system defined sort list.
Definition list1.h:33
application element_at(const sort_expression &s, const data_expression &arg0, const data_expression &arg1)
Application of function symbol ..
Definition list1.h:483
Namespace for system defined sort nat.
bool is_nat(const sort_expression &e)
Recogniser for sort expression Nat.
Definition nat1.h:53
application plus(const data_expression &arg0, const data_expression &arg1)
Application of function symbol +.
Definition nat1.h:879
Namespace for system defined sort pos.
bool is_pos(const sort_expression &e)
Recogniser for sort expression Pos.
Definition pos1.h:52
application plus(const data_expression &arg0, const data_expression &arg1)
Application of function symbol +.
Definition pos1.h:480
Namespace for system defined sort real_.
bool is_real(const sort_expression &e)
Recogniser for sort expression Real.
Definition real1.h:55
application plus(const data_expression &arg0, const data_expression &arg1)
Application of function symbol +.
Definition real1.h:1112
Namespace for system defined sort set_.
Definition set1.h:33
bool is_union_application(const atermpp::aterm &e)
Recogniser for application of +.
Definition set1.h:479
application union_(const sort_expression &s, const data_expression &arg0, const data_expression &arg1)
Application of function symbol +.
Definition set1.h:458
int precedence(const data_expression &x)
Definition print.h:402
bool is_data_expression(const atermpp::aterm &x)
Test for a data_expression expression.
data_specification merge_data_specifications(const data_specification &dataspec1, const data_specification &dataspec2)
Merges two data specifications. Throws an exception if conflicts are detected.
bool is_untyped_data_parameter(const atermpp::aterm &x)
A class that takes a linear process specification and checks all tau-summands of that LPS for conflue...
The main namespace for the LPS library.
Definition constelm.h:18
specification remove_stochastic_operators(const stochastic_specification &spec)
Converts a stochastic specification to a specification. Throws an exception if non-empty distribution...
The main namespace for the Process library.
action_label_list merge_action_specifications(const action_label_list &actspec1, const action_label_list &actspec2)
Merges two action specifications.
bool is_untyped_multi_action(const atermpp::aterm &x)
state_formula translate_reg_frms(const state_formula &state_frm)
Translate regular formulas in terms of state and action formulas.
typecheck_builder make_typecheck_builder(data::data_type_checker &data_typechecker, const data::detail::variable_context &variables, const process::detail::action_context &actions)
Definition typecheck.h:304
regular_formula parse_regular_formula(const std::string &text)
std::set< data::variable > find_free_variables(const T &x)
Returns all free variables that occur in an object.
Definition find.h:198
bool is_left_associative(const seq &)
Definition print.h:200
T replace_variables_capture_avoiding(const T &x, Substitution &sigma, data::set_identifier_generator &id_generator)
bool is_alt(const atermpp::aterm &x)
bool is_untyped_regular_formula(const atermpp::aterm &x)
regular_formula parse_regular_formula(const std::string &text, const data::data_specification &dataspec, const VariableContainer &variables, const ActionLabelContainer &actions)
Definition parse.h:68
bool is_trans(const atermpp::aterm &x)
regular_formula parse_regular_formula(const std::string &text, const lps::stochastic_specification &lpsspec)
Definition parse.h:81
constexpr int precedence(const trans &)
Definition print.h:188
bool is_right_associative(const seq &)
Definition print.h:209
regular_formula typecheck_regular_formula(const regular_formula &x, const lps::stochastic_specification &lpsspec)
Definition typecheck.h:334
void replace_sort_expressions(T &x, const Substitution &sigma, bool innermost)
Definition replace.h:173
bool is_right_associative(const alt &)
Definition print.h:210
std::string pp(const regular_formulas::trans &x, bool arg0)
std::string pp(const regular_formulas::alt &x, bool arg0)
void find_function_symbols(const T &x, OutputIterator o)
Writes all function symbols that occur in an object to an output iterator.
Definition find.h:261
bool is_trans_or_nil(const atermpp::aterm &x)
constexpr int precedence(const seq &)
Definition print.h:186
void find_sort_expressions(const T &x, OutputIterator o)
Writes all sort expressions that occur in an object to an output iterator.
Definition find.h:241
std::set< data::sort_expression > find_sort_expressions(const T &x)
Returns all sort expressions that occur in an object.
Definition find.h:250
bool is_right_associative(const regular_formula &x)
Definition print.h:211
std::set< data::variable > find_free_variables_with_bound(const T &x, VariableContainer const &bound)
Returns all free variables that occur in an object.
Definition find.h:210
void pp(const T &t, std::ostream &out, bool precendence_aware)
Prints the object t to a stream.
Definition print.h:279
void find_free_variables_with_bound(const T &x, OutputIterator o, const VariableContainer &bound)
Writes all free variables that occur in an object to an output iterator.
Definition find.h:189
bool is_seq(const atermpp::aterm &x)
bool is_left_associative(const alt &)
Definition print.h:201
std::string pp(const regular_formulas::untyped_regular_formula &x, bool arg0)
std::string pp(const regular_formulas::seq &x, bool arg0)
std::string pp(const regular_formulas::trans_or_nil &x, bool arg0)
std::set< data::function_symbol > find_function_symbols(const T &x)
Returns all function symbols that occur in an object.
Definition find.h:270
T replace_sort_expressions(const T &x, const Substitution &sigma, bool innermost)
Definition replace.h:183
constexpr int precedence(const alt &)
Definition print.h:187
void replace_variables_capture_avoiding(T &x, Substitution &sigma, data::set_identifier_generator &id_generator)
int precedence(const regular_formula &x)
Definition print.h:190
constexpr int precedence(const trans_or_nil &)
Definition print.h:189
void find_all_variables(const T &x, OutputIterator o)
Writes all variables that occur in an object to an output iterator.
Definition find.h:159
std::set< data::variable > find_all_variables(const T &x)
Returns all variables that occur in an object.
Definition find.h:168
regular_formula typecheck_regular_formula(const regular_formula &x, const data::data_specification &dataspec, const VariableContainer &variables, const ActionLabelContainer &actions)
Definition typecheck.h:316
bool is_left_associative(const regular_formula &x)
Definition print.h:202
std::set< core::identifier_string > find_identifiers(const T &x)
Returns all identifiers that occur in an object.
Definition find.h:230
void find_identifiers(const T &x, OutputIterator o)
Writes all identifiers that occur in an object to an output iterator.
Definition find.h:221
void find_free_variables(const T &x, OutputIterator o)
Writes all free variables that occur in an object to an output iterator.
Definition find.h:179
std::string pp(const regular_formulas::regular_formula &x, bool arg0)
std::string pp(const T &t, bool precendence_aware=true)
Returns a string representation of the object t.
Definition print.h:287
state_formula_specification parse_state_formula_specification(const std::string &text, const bool formula_is_quantitative)
Parses a state formula specification from text.
state_formula normalize(const state_formula &x)
Normalizes a state formula, i.e. removes any occurrences of ! or =>.
bool is_normalized(const state_formula &x)
Checks if a state formula is normalized.
state_formula parse_state_formula(std::istream &in, lps::stochastic_specification &lpsspec, const bool formula_is_quantitative)
Parses a state formula from an input stream.
state_formula normalize(const state_formula &x, bool quantitative=false, bool negated=false)
bool is_monotonous(const state_formula &f)
Returns true if the state formula is monotonous.
state_formula parse_state_formula(const std::string &text, lps::stochastic_specification &lpsspec, const bool formula_is_quantitative)
Parses a state formula from text.
state_formula_specification parse_state_formula_specification(std::istream &in, const bool formula_is_quantitative)
Parses a state formula specification from an input stream.
state_formula_specification parse_state_formula_specification(const std::string &text, lps::stochastic_specification &lpsspec, const bool formula_is_quantitative)
Parses a state formula specification from text.
bool is_timed(const state_formula &x)
std::set< core::identifier_string > find_state_variable_names(const state_formula &x)
Returns the names of the state variables that occur in x.
state_formula_specification parse_state_formula_specification(std::istream &in, lps::stochastic_specification &lpsspec, const bool formula_is_quantitative)
Parses a state formula specification from an input stream.
state_formula_specification parse_state_formula_specification(const std::string &text)
typecheck_builder make_typecheck_builder(data::data_type_checker &data_typechecker, const data::detail::variable_context &variable_context, const process::detail::action_context &action_context, const detail::state_variable_context &state_variable_context, const bool formula_is_quantitative)
Definition typecheck.h:717
find_free_state_variables_traverser< Traverser, Binder, OutputIterator > make_find_free_state_variables_traverser(OutputIterator out)
Definition find.h:489
find_free_state_variables_traverser< Traverser, Binder, OutputIterator > make_find_free_state_variables_traverser(OutputIterator out, const VariableContainer &v)
Definition find.h:496
state_formula parse_state_formula(const std::string &text)
find_state_variables_traverser< Traverser, OutputIterator > make_find_state_variables_traverser(OutputIterator out)
Definition find.h:447
void replace_variables_capture_avoiding(T &x, Substitution &sigma, data::set_identifier_generator &id_generator)
void check_data_variable_name_clashes(const state_formula &x)
Throws an exception if the formula contains name clashes in the parameters of mu/nu/exists/forall.
bool is_infimum(const atermpp::aterm &x)
std::string pp(const state_formulas::nu &x, bool arg0)
std::string pp(const state_formulas::exists &x, bool arg0)
std::string pp(const state_formulas::not_ &x, bool arg0)
bool is_left_associative(const const_multiply_alt &)
Definition print.h:343
bool is_and(const atermpp::aterm &x)
std::set< process::action_label > find_action_labels(const T &x)
Returns all action labels that occur in an object.
Definition find.h:566
constexpr int precedence(const forall &)
Definition print.h:300
constexpr int precedence(const exists &)
Definition print.h:301
state_formula_specification parse_state_formula_specification(std::istream &in, const bool formula_is_quantitative, parse_state_formula_options options=parse_state_formula_options())
Parses a state formula specification from an input stream.
Definition parse.h:241
state_formula_specification parse_state_formula_specification(std::istream &in, lps::specification &lpsspec, const bool formula_is_quantitative, parse_state_formula_options options=parse_state_formula_options())
Parses a state formula specification from an input stream.
Definition parse.h:327
constexpr int precedence(const const_multiply &)
Definition print.h:309
std::string pp(const state_formulas::supremum &x, bool arg0)
constexpr int precedence(const imp &)
Definition print.h:305
bool is_delay_timed(const atermpp::aterm &x)
state_formula resolve_state_formula_data_variable_name_clashes(const state_formula &x, const std::set< core::identifier_string > &context_ids=std::set< core::identifier_string >())
Resolves name clashes in data variables of formula x.
bool is_right_associative(const const_multiply_alt &)
Definition print.h:360
std::set< data::variable > find_all_variables(const T &x)
Returns all variables that occur in an object.
Definition find.h:297
bool is_const_multiply(const atermpp::aterm &x)
std::ostream & operator<<(std::ostream &out, const state_formula_specification &x)
std::string pp(const state_formulas::must &x, bool arg0)
bool is_minus(const atermpp::aterm &x)
bool is_right_associative(const and_ &)
Definition print.h:357
state_formula_specification parse_state_formula_specification(const std::string &text, lps::specification &lpsspec, const bool formula_is_quantitative, parse_state_formula_options options=parse_state_formula_options())
Parses a state formula specification from a string.
Definition parse.h:291
int precedence(const state_formula &x)
Definition print.h:315
bool is_left_associative(const or_ &)
Definition print.h:339
state_formula typecheck_state_formula(const state_formula &x, const lps::stochastic_specification &lpsspec, const bool formula_is_quantitative)
Type check a state formula. Throws an exception if something went wrong.
Definition typecheck.h:811
bool is_exists(const atermpp::aterm &x)
void typecheck_state_formula_specification(state_formula_specification &formspec, const lps::stochastic_specification &lpsspec, const bool formula_is_quantitative)
Typecheck the state formula specification formspec. It is assumed that the formula is not self contai...
Definition typecheck.h:843
bool is_not(const atermpp::aterm &x)
state_formula parse_state_formula(std::istream &in, lps::stochastic_specification &lpsspec, const bool formula_is_quantitative, parse_state_formula_options options=parse_state_formula_options())
Parses a state formula from an input stream.
Definition parse.h:185
std::string pp(const state_formulas::minus &x, bool arg0)
state_formula post_process_state_formula(const state_formula &formula, parse_state_formula_options options=parse_state_formula_options())
Definition parse.h:108
bool is_left_associative(const imp &)
Definition print.h:338
constexpr int precedence(const must &)
Definition print.h:311
T replace_sort_expressions(const T &x, const Substitution &sigma, bool innermost)
Definition replace.h:330
constexpr int precedence(const plus &)
Definition print.h:308
bool is_supremum(const atermpp::aterm &x)
bool is_right_associative(const imp &)
Definition print.h:355
constexpr int precedence(const or_ &)
Definition print.h:306
std::string pp(const T &t, bool precendence_aware=true)
Returns a string representation of the object t.
Definition print.h:686
state_formula parse_state_formula(const std::string &text, lps::stochastic_specification &lpsspec, const bool formula_is_quantitative, parse_state_formula_options options=parse_state_formula_options())
Parses a state formula from an input stream.
Definition parse.h:144
bool is_must(const atermpp::aterm &x)
std::set< data::variable > find_all_variables(const state_formulas::state_formula &x)
bool is_yaled(const atermpp::aterm &x)
void find_function_symbols(const T &x, OutputIterator o)
Writes all function symbols that occur in an object to an output iterator.
Definition find.h:390
bool has_data_variable_name_clashes(const state_formula &x)
Returns true if the formula contains parameter name clashes.
void pp(const T &t, std::ostream &out, bool precendence_aware)
Prints the object t to a stream.
Definition print.h:678
bool is_normalized(const T &x)
Checks if a state formula is normalized.
Definition normalize.h:407
std::set< data::variable > find_free_variables(const state_formulas::state_formula &x)
bool is_true(const atermpp::aterm &x)
std::string pp(const state_formulas::true_ &x, bool arg0)
bool is_right_associative(const const_multiply &)
Definition print.h:359
bool is_left_associative(const and_ &)
Definition print.h:340
T replace_variables_capture_avoiding(const T &x, Substitution &sigma, data::set_identifier_generator &id_generator)
state_formula_specification parse_state_formula_specification(const std::string &text, lps::stochastic_specification &lpsspec, const bool formula_is_quantitative, parse_state_formula_options options=parse_state_formula_options())
Parses a state formula specification from a string.
Definition parse.h:258
void check_state_variable_name_clashes(const state_formula &x)
Throws an exception if the formula contains name clashes.
std::set< core::identifier_string > find_identifiers(const T &x)
Returns all identifiers that occur in an object.
Definition find.h:359
std::string pp(const state_formulas::state_formula &x, bool arg0)
std::string pp(const state_formulas::const_multiply &x, bool arg0)
constexpr int precedence(const may &)
Definition print.h:312
state_formula parse_state_formula(std::istream &in, lps::specification &lpsspec, const bool formula_is_quantitative, parse_state_formula_options options=parse_state_formula_options())
Parses a state formula from an input stream.
Definition parse.h:202
std::set< state_formulas::variable > find_free_state_variables(const T &x)
Returns all free state variables that occur in an object.
Definition find.h:546
std::set< state_formulas::variable > find_state_variables(const T &x)
Returns all state variables that occur in an object.
Definition find.h:526
std::string pp(const state_formulas::delay_timed &x, bool arg0)
constexpr int precedence(const infimum &)
Definition print.h:302
void find_identifiers(const T &x, OutputIterator o)
Writes all identifiers that occur in an object to an output iterator.
Definition find.h:350
bool is_variable(const atermpp::aterm &x)
void replace_sort_expressions(T &x, const Substitution &sigma, bool innermost)
Definition replace.h:320
bool is_may(const atermpp::aterm &x)
bool is_yaled_timed(const atermpp::aterm &x)
bool is_imp(const atermpp::aterm &x)
bool is_timed(const state_formula &x)
Checks if a state formula is timed.
Definition is_timed.h:71
std::string pp(const state_formulas::imp &x, bool arg0)
state_formula translate_regular_formulas(const state_formula &x)
Translates regular formulas appearing in f into action formulas.
bool has_state_variable_name_clashes(const state_formula &x)
Returns true if the formula contains name clashes.
std::string pp(const state_formulas::mu &x, bool arg0)
bool is_monotonous(const state_formula &f)
Returns true if the state formula is monotonous.
state_formula parse_state_formula(const std::string &text, lps::specification &lpsspec, const bool formula_is_quantitative, parse_state_formula_options options=parse_state_formula_options())
Parses a state formula from an input stream.
Definition parse.h:166
void find_sort_expressions(const T &x, OutputIterator o)
Writes all sort expressions that occur in an object to an output iterator.
Definition find.h:370
bool is_sum(const atermpp::aterm &x)
state_formulas::state_formula translate_user_notation(const state_formulas::state_formula &x)
constexpr int precedence(const not_ &)
Definition print.h:313
std::set< data::variable > find_free_variables(const T &x)
Returns all free variables that occur in an object.
Definition find.h:327
std::set< data::sort_expression > find_sort_expressions(const T &x)
Returns all sort expressions that occur in an object.
Definition find.h:379
state_formulas::state_formula normalize_sorts(const state_formulas::state_formula &x, const data::sort_specification &sortspec)
void typecheck_state_formula_specification(state_formula_specification &formspec, const bool formula_is_quantitative)
Typecheck the state formula specification formspec. It is assumed that the formula is self contained,...
Definition typecheck.h:822
bool is_left_associative(const state_formula &x)
Definition print.h:344
bool is_nu(const atermpp::aterm &x)
std::string pp(const state_formulas::delay &x, bool arg0)
void find_action_labels(const T &x, OutputIterator o)
Writes all action labels that occur in an object to an output iterator.
Definition find.h:557
state_formula typecheck_state_formula(const state_formula &x, const bool formula_is_quantitative, const data::data_specification &dataspec=data::data_specification(), const ActionLabelContainer &action_labels=ActionLabelContainer(), const VariableContainer &variables=VariableContainer())
Type check a state formula. Throws an exception if something went wrong.
Definition typecheck.h:785
std::string pp(const state_formulas::forall &x, bool arg0)
constexpr int precedence(const const_multiply_alt &)
Definition print.h:310
std::string pp(const state_formulas::sum &x, bool arg0)
constexpr int precedence(const minus &)
Definition print.h:314
std::string pp(const state_formulas::yaled &x, bool arg0)
bool is_delay(const atermpp::aterm &x)
std::string pp(const state_formulas::infimum &x, bool arg0)
std::string pp(const state_formulas::or_ &x, bool arg0)
std::string pp(const state_formulas::may &x, bool arg0)
bool is_false(const atermpp::aterm &x)
bool is_left_associative(const plus &)
Definition print.h:341
state_formula negate_variables(const core::identifier_string &name, bool quantitative, const state_formula &x)
Negates variable instantiations in a state formula with a given name.
bool is_plus(const atermpp::aterm &x)
state_formula_specification parse_state_formula_specification(const std::string &text, const bool formula_is_quantitative, parse_state_formula_options options=parse_state_formula_options())
Parses a state formula specification from a string.
Definition parse.h:220
state_formula resolve_state_variable_name_clashes(const state_formula &x)
Resolves name clashes in state variables of formula x.
bool is_monotonous(const state_formula &f, const std::set< core::identifier_string > &non_negated_variables, const std::set< core::identifier_string > &negated_variables)
Returns true if the state formula is monotonous.
std::string pp(const state_formulas::and_ &x, bool arg0)
constexpr int precedence(const nu &)
Definition print.h:299
std::string pp(const state_formulas::false_ &x, bool arg0)
std::string pp(const state_formulas::const_multiply_alt &x, bool arg0)
bool is_left_associative(const const_multiply &)
Definition print.h:342
bool is_mu(const atermpp::aterm &x)
constexpr int precedence(const mu &)
Definition print.h:298
bool is_forall(const atermpp::aterm &x)
void find_all_variables(const T &x, OutputIterator o)
Writes all variables that occur in an object to an output iterator.
Definition find.h:288
void find_state_variables(const T &x, OutputIterator o)
Writes all state variables that occur in an object to an output iterator.
Definition find.h:517
std::string pp(const state_formulas::state_formula_specification &x, bool arg0)
constexpr int precedence(const supremum &)
Definition print.h:303
std::set< core::identifier_string > find_state_variable_names(const state_formula &x)
Returns the names of the state variables that occur in x.
Definition find.h:506
void find_free_state_variables(const T &x, OutputIterator o)
Writes all free state variables that occur in an object to an output iterator.
Definition find.h:537
bool is_const_multiply_alt(const atermpp::aterm &x)
constexpr int precedence(const sum &)
Definition print.h:304
state_formula_specification parse_state_formula_specification(std::istream &in, lps::stochastic_specification &lpsspec, const bool formula_is_quantitative, parse_state_formula_options options=parse_state_formula_options())
Parses a state formula specification from an input stream.
Definition parse.h:310
std::string pp(const state_formulas::yaled_timed &x, bool arg0)
bool is_right_associative(const state_formula &x)
Definition print.h:361
std::string pp(const state_formulas::plus &x, bool arg0)
bool is_or(const atermpp::aterm &x)
std::string pp(const state_formulas::variable &x, bool arg0)
std::set< data::variable > find_free_variables_with_bound(const T &x, VariableContainer const &bound)
Returns all free variables that occur in an object.
Definition find.h:339
std::set< data::sort_expression > find_sort_expressions(const state_formulas::state_formula &x)
std::set< data::function_symbol > find_function_symbols(const T &x)
Returns all function symbols that occur in an object.
Definition find.h:399
void find_free_variables_with_bound(const T &x, OutputIterator o, const VariableContainer &bound)
Writes all free variables that occur in an object to an output iterator.
Definition find.h:318
std::set< process::action_label > find_action_labels(const state_formulas::state_formula &x)
bool is_right_associative(const plus &)
Definition print.h:358
constexpr int precedence(const and_ &)
Definition print.h:307
std::set< core::identifier_string > find_identifiers(const state_formulas::state_formula &x)
void find_free_variables(const T &x, OutputIterator o)
Writes all free variables that occur in an object to an output iterator.
Definition find.h:308
bool is_right_associative(const or_ &)
Definition print.h:356
Base class for action_formula_builder.
Definition builder.h:27
void apply(T &result, const data::untyped_data_parameter &x)
Definition builder.h:41
void apply(T &result, const data::data_expression &x)
Definition builder.h:32
Base class for action_formula_traverser.
Definition traverser.h:27
void apply(const data::data_expression &x)
Definition traverser.h:33
void apply(const process::untyped_multi_action &x)
Definition traverser.h:47
void apply(const data::untyped_data_parameter &x)
Definition traverser.h:40
void apply(T &result, const action_formulas::forall &x)
Definition builder.h:591
void apply(T &result, const action_formulas::not_ &x)
Definition builder.h:559
void apply(T &result, const action_formulas::at &x)
Definition builder.h:607
void apply(T &result, const action_formulas::multi_action &x)
Definition builder.h:615
void apply(T &result, const action_formulas::and_ &x)
Definition builder.h:567
void apply(T &result, const action_formulas::exists &x)
Definition builder.h:599
void apply(T &result, const action_formulas::imp &x)
Definition builder.h:583
void apply(T &result, const action_formulas::action_formula &x)
Definition builder.h:624
void apply(T &result, const action_formulas::true_ &x)
Definition builder.h:541
void apply(T &result, const action_formulas::or_ &x)
Definition builder.h:575
void apply(T &result, const action_formulas::false_ &x)
Definition builder.h:550
void apply(T &result, const action_formulas::action_formula &x)
Definition builder.h:303
void apply(T &result, const action_formulas::and_ &x)
Definition builder.h:247
void apply(T &result, const action_formulas::exists &x)
Definition builder.h:279
void apply(T &result, const action_formulas::false_ &x)
Definition builder.h:230
void apply(T &result, const action_formulas::at &x)
Definition builder.h:287
void apply(T &result, const action_formulas::or_ &x)
Definition builder.h:255
void apply(T &result, const action_formulas::multi_action &x)
Definition builder.h:295
void apply(T &result, const action_formulas::true_ &x)
Definition builder.h:221
void apply(T &result, const action_formulas::not_ &x)
Definition builder.h:239
void apply(T &result, const action_formulas::imp &x)
Definition builder.h:263
void apply(T &result, const action_formulas::forall &x)
Definition builder.h:271
void apply(T &result, const action_formulas::exists &x)
Definition builder.h:119
void apply(T &result, const action_formulas::forall &x)
Definition builder.h:111
void apply(T &result, const action_formulas::true_ &x)
Definition builder.h:61
void apply(T &result, const action_formulas::or_ &x)
Definition builder.h:95
void apply(T &result, const action_formulas::false_ &x)
Definition builder.h:70
void apply(T &result, const action_formulas::at &x)
Definition builder.h:127
void apply(T &result, const action_formulas::and_ &x)
Definition builder.h:87
void apply(T &result, const action_formulas::imp &x)
Definition builder.h:103
void apply(T &result, const action_formulas::not_ &x)
Definition builder.h:79
void apply(T &result, const action_formulas::action_formula &x)
Definition builder.h:143
void apply(T &result, const action_formulas::multi_action &x)
Definition builder.h:135
void apply(const action_formulas::action_formula &x)
Definition traverser.h:439
void apply(const action_formulas::multi_action &x)
Definition traverser.h:432
void apply(const action_formulas::forall &x)
Definition traverser.h:864
void apply(const action_formulas::false_ &x)
Definition traverser.h:826
void apply(const action_formulas::true_ &x)
Definition traverser.h:819
void apply(const action_formulas::not_ &x)
Definition traverser.h:833
void apply(const action_formulas::at &x)
Definition traverser.h:878
void apply(const action_formulas::action_formula &x)
Definition traverser.h:892
void apply(const action_formulas::multi_action &x)
Definition traverser.h:885
void apply(const action_formulas::exists &x)
Definition traverser.h:871
void apply(const action_formulas::imp &x)
Definition traverser.h:856
void apply(const action_formulas::and_ &x)
Definition traverser.h:840
void apply(const action_formulas::or_ &x)
Definition traverser.h:848
void apply(const action_formulas::multi_action &x)
Definition traverser.h:283
void apply(const action_formulas::at &x)
Definition traverser.h:275
void apply(const action_formulas::exists &x)
Definition traverser.h:268
void apply(const action_formulas::action_formula &x)
Definition traverser.h:290
void apply(const action_formulas::forall &x)
Definition traverser.h:261
void apply(const action_formulas::not_ &x)
Definition traverser.h:230
void apply(const action_formulas::false_ &x)
Definition traverser.h:223
void apply(const action_formulas::or_ &x)
Definition traverser.h:245
void apply(const action_formulas::true_ &x)
Definition traverser.h:216
void apply(const action_formulas::and_ &x)
Definition traverser.h:237
void apply(const action_formulas::imp &x)
Definition traverser.h:253
void apply(const action_formulas::forall &x)
Definition traverser.h:712
void apply(const action_formulas::or_ &x)
Definition traverser.h:696
void apply(const action_formulas::false_ &x)
Definition traverser.h:674
void apply(const action_formulas::and_ &x)
Definition traverser.h:688
void apply(const action_formulas::action_formula &x)
Definition traverser.h:743
void apply(const action_formulas::multi_action &x)
Definition traverser.h:736
void apply(const action_formulas::true_ &x)
Definition traverser.h:667
void apply(const action_formulas::imp &x)
Definition traverser.h:704
void apply(const action_formulas::not_ &x)
Definition traverser.h:681
void apply(const action_formulas::exists &x)
Definition traverser.h:720
void apply(const action_formulas::action_formula &x)
Definition traverser.h:140
void apply(const action_formulas::true_ &x)
Definition traverser.h:64
void apply(const action_formulas::or_ &x)
Definition traverser.h:93
void apply(const action_formulas::multi_action &x)
Definition traverser.h:133
void apply(const action_formulas::forall &x)
Definition traverser.h:109
void apply(const action_formulas::and_ &x)
Definition traverser.h:85
void apply(const action_formulas::false_ &x)
Definition traverser.h:71
void apply(const action_formulas::at &x)
Definition traverser.h:125
void apply(const action_formulas::not_ &x)
Definition traverser.h:78
void apply(const action_formulas::imp &x)
Definition traverser.h:101
void apply(const action_formulas::exists &x)
Definition traverser.h:117
void apply(const action_formulas::imp &x)
Definition traverser.h:552
void apply(const action_formulas::and_ &x)
Definition traverser.h:536
void apply(const action_formulas::or_ &x)
Definition traverser.h:544
void apply(const action_formulas::forall &x)
Definition traverser.h:560
void apply(const action_formulas::at &x)
Definition traverser.h:576
void apply(const action_formulas::multi_action &x)
Definition traverser.h:584
void apply(const action_formulas::true_ &x)
Definition traverser.h:515
void apply(const action_formulas::action_formula &x)
Definition traverser.h:591
void apply(const action_formulas::exists &x)
Definition traverser.h:568
void apply(const action_formulas::not_ &x)
Definition traverser.h:529
void apply(const action_formulas::false_ &x)
Definition traverser.h:522
void apply(T &result, const action_formulas::action_formula &x)
Definition builder.h:463
void apply(T &result, const action_formulas::not_ &x)
Definition builder.h:399
void apply(T &result, const action_formulas::true_ &x)
Definition builder.h:381
void apply(T &result, const action_formulas::or_ &x)
Definition builder.h:415
void apply(T &result, const action_formulas::exists &x)
Definition builder.h:439
void apply(T &result, const action_formulas::and_ &x)
Definition builder.h:407
void apply(T &result, const action_formulas::imp &x)
Definition builder.h:423
void apply(T &result, const action_formulas::at &x)
Definition builder.h:447
void apply(T &result, const action_formulas::false_ &x)
Definition builder.h:390
void apply(T &result, const action_formulas::forall &x)
Definition builder.h:431
void apply(T &result, const action_formulas::multi_action &x)
Definition builder.h:455
action_formula_actions(const core::parser &parser_)
Definition parse_impl.h:27
action_formulas::action_formula parse_ActFrm(const core::parse_node &node) const
Definition parse_impl.h:31
add_capture_avoiding_replacement(data::detail::capture_avoiding_substitution_updater< Substitution > &sigma)
void apply(const action_formulas::exists &x)
Definition print.h:132
void apply(const action_formulas::at &x)
Definition print.h:139
void apply(const action_formulas::or_ &x)
Definition print.h:111
void apply(const action_formulas::false_ &x)
Definition print.h:90
void apply(const action_formulas::forall &x)
Definition print.h:125
void apply(const action_formulas::imp &x)
Definition print.h:118
void apply(const action_formulas::not_ &x)
Definition print.h:97
void apply(const action_formulas::and_ &x)
Definition print.h:104
void apply(const action_formulas::true_ &x)
Definition print.h:83
void apply(const action_formulas::multi_action &x)
Definition print.h:148
void apply(T &result, const process::untyped_multi_action &x)
Definition typecheck.h:66
typecheck_builder(data::data_type_checker &data_typechecker, const data::detail::variable_context &variable_context, const process::detail::action_context &action_context)
Definition typecheck.h:38
process::action typecheck_action(const core::identifier_string &name, const data::data_expression_list &parameters)
Definition typecheck.h:47
data::data_type_checker & m_data_type_checker
Definition typecheck.h:34
data::detail::variable_context m_variable_context
Definition typecheck.h:35
void apply(T &result, const action_formulas::exists &x)
Definition typecheck.h:112
const process::detail::action_context & m_action_context
Definition typecheck.h:36
void apply(T &result, const action_formulas::at &x)
Definition typecheck.h:59
void apply(T &result, const data::data_expression &x)
Definition typecheck.h:53
void apply(T &result, const action_formulas::forall &x)
Definition typecheck.h:94
expression builder that visits all sub expressions
Definition builder.h:32
core::identifier_string parse_Id(const parse_node &node) const
Definition parse.h:231
const parser & m_parser
Definition parse.h:83
expression traverser that visits all sub expressions
Definition traverser.h:29
data::data_expression parse_DataValExpr(const core::parse_node &node) const
Definition parse_impl.h:269
data::data_expression parse_DataExpr(const core::parse_node &node) const
Definition parse_impl.h:208
bool callback_DataSpecElement(const core::parse_node &node, untyped_data_specification &result) const
Definition parse_impl.h:410
data::sort_expression parse_SortExpr(const core::parse_node &node, data::sort_expression_list *product=nullptr) const
Definition parse_impl.h:32
multi_action_actions(const core::parser &parser_)
Definition parse_impl.h:25
void apply(T &result, const regular_formulas::trans &x)
Definition builder.h:845
void apply(T &result, const regular_formulas::trans_or_nil &x)
Definition builder.h:853
void apply(T &result, const regular_formulas::seq &x)
Definition builder.h:829
void apply(T &result, const regular_formulas::regular_formula &x)
Definition builder.h:869
void apply(T &result, const regular_formulas::alt &x)
Definition builder.h:837
void apply(T &result, const regular_formulas::untyped_regular_formula &x)
Definition builder.h:861
void apply(T &result, const regular_formulas::trans_or_nil &x)
Definition builder.h:1041
void apply(T &result, const regular_formulas::seq &x)
Definition builder.h:1017
void apply(T &result, const regular_formulas::regular_formula &x)
Definition builder.h:1057
void apply(T &result, const regular_formulas::untyped_regular_formula &x)
Definition builder.h:1049
void apply(T &result, const regular_formulas::trans &x)
Definition builder.h:1033
void apply(T &result, const regular_formulas::alt &x)
Definition builder.h:1025
void apply(T &result, const regular_formulas::trans &x)
Definition builder.h:751
void apply(T &result, const regular_formulas::seq &x)
Definition builder.h:735
void apply(T &result, const regular_formulas::regular_formula &x)
Definition builder.h:775
void apply(T &result, const regular_formulas::untyped_regular_formula &x)
Definition builder.h:767
void apply(T &result, const regular_formulas::alt &x)
Definition builder.h:743
void apply(T &result, const regular_formulas::trans_or_nil &x)
Definition builder.h:759
void apply(const regular_formulas::alt &x)
Definition traverser.h:1456
void apply(const regular_formulas::trans_or_nil &x)
Definition traverser.h:1471
void apply(const regular_formulas::untyped_regular_formula &x)
Definition traverser.h:1478
void apply(const regular_formulas::trans &x)
Definition traverser.h:1464
void apply(const regular_formulas::seq &x)
Definition traverser.h:1448
void apply(const regular_formulas::regular_formula &x)
Definition traverser.h:1486
void apply(const regular_formulas::trans_or_nil &x)
Definition traverser.h:1110
void apply(const regular_formulas::regular_formula &x)
Definition traverser.h:1125
void apply(const regular_formulas::seq &x)
Definition traverser.h:1087
void apply(const regular_formulas::alt &x)
Definition traverser.h:1095
void apply(const regular_formulas::untyped_regular_formula &x)
Definition traverser.h:1117
void apply(const regular_formulas::trans &x)
Definition traverser.h:1103
void apply(const regular_formulas::untyped_regular_formula &x)
Definition traverser.h:1387
void apply(const regular_formulas::regular_formula &x)
Definition traverser.h:1396
void apply(const regular_formulas::trans &x)
Definition traverser.h:1373
void apply(const regular_formulas::trans_or_nil &x)
Definition traverser.h:1380
void apply(const regular_formulas::untyped_regular_formula &x)
Definition traverser.h:1207
void apply(const regular_formulas::regular_formula &x)
Definition traverser.h:1215
void apply(const regular_formulas::trans_or_nil &x)
Definition traverser.h:1200
void apply(const regular_formulas::trans &x)
Definition traverser.h:1013
void apply(const regular_formulas::alt &x)
Definition traverser.h:1005
void apply(const regular_formulas::untyped_regular_formula &x)
Definition traverser.h:1027
void apply(const regular_formulas::trans_or_nil &x)
Definition traverser.h:1020
void apply(const regular_formulas::regular_formula &x)
Definition traverser.h:1035
void apply(const regular_formulas::seq &x)
Definition traverser.h:997
void apply(const regular_formulas::trans_or_nil &x)
Definition traverser.h:1290
void apply(const regular_formulas::regular_formula &x)
Definition traverser.h:1305
void apply(const regular_formulas::alt &x)
Definition traverser.h:1275
void apply(const regular_formulas::untyped_regular_formula &x)
Definition traverser.h:1297
void apply(const regular_formulas::seq &x)
Definition traverser.h:1267
void apply(const regular_formulas::trans &x)
Definition traverser.h:1283
void apply(T &result, const regular_formulas::untyped_regular_formula &x)
Definition builder.h:955
void apply(T &result, const regular_formulas::trans_or_nil &x)
Definition builder.h:947
void apply(T &result, const regular_formulas::seq &x)
Definition builder.h:923
void apply(T &result, const regular_formulas::trans &x)
Definition builder.h:939
void apply(T &result, const regular_formulas::alt &x)
Definition builder.h:931
void apply(T &result, const regular_formulas::regular_formula &x)
Definition builder.h:963
add_capture_avoiding_replacement(data::detail::capture_avoiding_substitution_updater< Substitution > &sigma)
void apply(const regular_formulas::trans_or_nil &x)
Definition print.h:258
void apply(const regular_formulas::alt &x)
Definition print.h:244
void apply(const regular_formulas::trans &x)
Definition print.h:251
void apply(const regular_formulas::seq &x)
Definition print.h:237
void apply(const regular_formulas::untyped_regular_formula &x)
Definition print.h:265
regular_formulas::regular_formula parse_RegFrm(const core::parse_node &node) const
Definition parse_impl.h:61
const data::detail::variable_context & m_variable_context
Definition typecheck.h:180
data::data_expression make_element_at(const data::data_expression &left, const data::data_expression &right) const
Definition typecheck.h:257
void apply(regular_formula &result, const action_formulas::action_formula &x)
Definition typecheck.h:297
data::data_expression make_plus(const data::data_expression &left, const data::data_expression &right)
Definition typecheck.h:220
void apply(T &result, const regular_formulas::untyped_regular_formula &x)
Definition typecheck.h:265
typecheck_builder(data::data_type_checker &data_typechecker, const data::detail::variable_context &variables, const process::detail::action_context &actions)
Definition typecheck.h:183
data::data_expression make_fset_union(const data::data_expression &left, const data::data_expression &right)
Definition typecheck.h:206
data::data_expression make_set_union(const data::data_expression &left, const data::data_expression &right)
Definition typecheck.h:213
data::data_expression make_fbag_union(const data::data_expression &left, const data::data_expression &right)
Definition typecheck.h:192
data::data_expression make_bag_union(const data::data_expression &left, const data::data_expression &right)
Definition typecheck.h:199
const process::detail::action_context & m_action_context
Definition typecheck.h:181
Builder class for regular_formula_builder. Used as a base class for pbes_expression_builder.
Definition builder.h:699
void apply(T &result, const data::data_expression &x)
Definition builder.h:704
void apply(T &result, const action_formulas::action_formula &x)
Definition builder.h:714
Traversal class for regular_formula_traverser. Used as a base class for pbes_expression_traverser.
Definition traverser.h:967
void apply(const action_formulas::action_formula &x)
Definition traverser.h:980
void apply(const data::data_expression &x)
Definition traverser.h:973
void apply(T &result, const state_formulas::nu &x)
Definition builder.h:1661
void apply(T &result, const state_formulas::supremum &x)
Definition builder.h:1587
void apply(T &result, const state_formulas::imp &x)
Definition builder.h:1531
void apply(T &result, const state_formulas::state_formula &x)
Definition builder.h:1686
void apply(T &result, const state_formulas::plus &x)
Definition builder.h:1539
void apply(T &result, const state_formulas::yaled &x)
Definition builder.h:1619
void apply(T &result, const state_formulas::false_ &x)
Definition builder.h:1490
void apply(T &result, const state_formulas::yaled_timed &x)
Definition builder.h:1628
void apply(T &result, const state_formulas::const_multiply &x)
Definition builder.h:1547
void apply(T &result, const state_formulas::and_ &x)
Definition builder.h:1515
void apply(T &result, const state_formulas::exists &x)
Definition builder.h:1571
void apply(T &result, const state_formulas::may &x)
Definition builder.h:1611
void apply(T &result, const state_formulas::minus &x)
Definition builder.h:1507
void apply(T &result, const state_formulas::infimum &x)
Definition builder.h:1579
void apply(T &result, const state_formulas::or_ &x)
Definition builder.h:1523
void apply(T &result, const state_formulas::sum &x)
Definition builder.h:1595
void apply(T &result, const state_formulas::mu &x)
Definition builder.h:1669
void apply(T &result, const state_formulas::must &x)
Definition builder.h:1603
void apply(T &result, const state_formulas::variable &x)
Definition builder.h:1653
void apply(T &result, const state_formulas::not_ &x)
Definition builder.h:1499
void update(state_formulas::state_formula_specification &x)
Definition builder.h:1676
void apply(T &result, const state_formulas::delay &x)
Definition builder.h:1636
void apply(T &result, const state_formulas::true_ &x)
Definition builder.h:1481
void apply(T &result, const state_formulas::const_multiply_alt &x)
Definition builder.h:1555
void apply(T &result, const state_formulas::forall &x)
Definition builder.h:1563
void apply(T &result, const state_formulas::delay_timed &x)
Definition builder.h:1645
void apply(T &result, const state_formulas::supremum &x)
Definition builder.h:1249
void apply(T &result, const state_formulas::yaled &x)
Definition builder.h:1281
void apply(T &result, const state_formulas::true_ &x)
Definition builder.h:1143
void apply(T &result, const state_formulas::const_multiply &x)
Definition builder.h:1209
void apply(T &result, const state_formulas::false_ &x)
Definition builder.h:1152
void apply(T &result, const state_formulas::const_multiply_alt &x)
Definition builder.h:1217
void apply(T &result, const state_formulas::sum &x)
Definition builder.h:1257
void apply(T &result, const state_formulas::not_ &x)
Definition builder.h:1161
void apply(T &result, const state_formulas::may &x)
Definition builder.h:1273
void apply(T &result, const state_formulas::forall &x)
Definition builder.h:1225
void apply(T &result, const state_formulas::exists &x)
Definition builder.h:1233
void apply(T &result, const state_formulas::delay_timed &x)
Definition builder.h:1307
void apply(T &result, const state_formulas::yaled_timed &x)
Definition builder.h:1290
void apply(T &result, const state_formulas::mu &x)
Definition builder.h:1331
void apply(T &result, const state_formulas::delay &x)
Definition builder.h:1298
void apply(T &result, const state_formulas::must &x)
Definition builder.h:1265
void apply(T &result, const state_formulas::infimum &x)
Definition builder.h:1241
void apply(T &result, const state_formulas::imp &x)
Definition builder.h:1193
void update(state_formulas::state_formula_specification &x)
Definition builder.h:1338
void apply(T &result, const state_formulas::state_formula &x)
Definition builder.h:1351
void apply(T &result, const state_formulas::nu &x)
Definition builder.h:1323
void apply(T &result, const state_formulas::and_ &x)
Definition builder.h:1177
void apply(T &result, const state_formulas::minus &x)
Definition builder.h:1169
void apply(T &result, const state_formulas::variable &x)
Definition builder.h:1315
void apply(T &result, const state_formulas::plus &x)
Definition builder.h:1201
void apply(T &result, const state_formulas::or_ &x)
Definition builder.h:1185
void apply(T &result, const state_formulas::exists &x)
Definition builder.h:2241
void apply(T &result, const state_formulas::yaled &x)
Definition builder.h:2289
void apply(T &result, const state_formulas::plus &x)
Definition builder.h:2209
void apply(T &result, const state_formulas::delay_timed &x)
Definition builder.h:2316
void apply(T &result, const state_formulas::must &x)
Definition builder.h:2273
void apply(T &result, const state_formulas::sum &x)
Definition builder.h:2265
void apply(T &result, const state_formulas::infimum &x)
Definition builder.h:2249
void apply(T &result, const state_formulas::const_multiply &x)
Definition builder.h:2217
void update(state_formulas::state_formula_specification &x)
Definition builder.h:2349
void apply(T &result, const state_formulas::may &x)
Definition builder.h:2281
void apply(T &result, const state_formulas::false_ &x)
Definition builder.h:2160
void apply(T &result, const state_formulas::or_ &x)
Definition builder.h:2193
void apply(T &result, const state_formulas::imp &x)
Definition builder.h:2201
void apply(T &result, const state_formulas::not_ &x)
Definition builder.h:2169
void apply(T &result, const state_formulas::variable &x)
Definition builder.h:2325
void apply(T &result, const state_formulas::forall &x)
Definition builder.h:2233
void apply(T &result, const state_formulas::delay &x)
Definition builder.h:2307
void apply(T &result, const state_formulas::yaled_timed &x)
Definition builder.h:2298
void apply(T &result, const state_formulas::supremum &x)
Definition builder.h:2257
void apply(T &result, const state_formulas::const_multiply_alt &x)
Definition builder.h:2225
void apply(T &result, const state_formulas::nu &x)
Definition builder.h:2334
void apply(T &result, const state_formulas::and_ &x)
Definition builder.h:2185
void apply(T &result, const state_formulas::minus &x)
Definition builder.h:2177
void apply(T &result, const state_formulas::mu &x)
Definition builder.h:2342
void apply(T &result, const state_formulas::true_ &x)
Definition builder.h:2151
void apply(T &result, const state_formulas::state_formula &x)
Definition builder.h:2359
Maintains a multiset of bound state variables during traversal.
void apply(const state_formulas::mu &x)
Definition traverser.h:3929
void apply(const state_formulas::state_formula &x)
Definition traverser.h:3944
void apply(const state_formulas::delay &x)
Definition traverser.h:3901
void apply(const state_formulas::variable &x)
Definition traverser.h:3915
void apply(const state_formulas::infimum &x)
Definition traverser.h:3850
void apply(const state_formulas::minus &x)
Definition traverser.h:3783
void apply(const state_formulas::false_ &x)
Definition traverser.h:3769
void apply(const state_formulas::sum &x)
Definition traverser.h:3864
void apply(const state_formulas::const_multiply &x)
Definition traverser.h:3822
void apply(const state_formulas::delay_timed &x)
Definition traverser.h:3908
void apply(const state_formulas::must &x)
Definition traverser.h:3871
void apply(const state_formulas::plus &x)
Definition traverser.h:3814
void apply(const state_formulas::imp &x)
Definition traverser.h:3806
void apply(const state_formulas::yaled_timed &x)
Definition traverser.h:3894
void apply(const state_formulas::nu &x)
Definition traverser.h:3922
void apply(const state_formulas::exists &x)
Definition traverser.h:3843
void apply(const state_formulas::supremum &x)
Definition traverser.h:3857
void apply(const state_formulas::true_ &x)
Definition traverser.h:3762
void apply(const state_formulas::not_ &x)
Definition traverser.h:3776
void apply(const state_formulas::const_multiply_alt &x)
Definition traverser.h:3829
void apply(const state_formulas::state_formula_specification &x)
Definition traverser.h:3936
void apply(const state_formulas::and_ &x)
Definition traverser.h:3790
void apply(const state_formulas::or_ &x)
Definition traverser.h:3798
void apply(const state_formulas::may &x)
Definition traverser.h:3879
void apply(const state_formulas::yaled &x)
Definition traverser.h:3887
void apply(const state_formulas::forall &x)
Definition traverser.h:3836
void apply(const state_formulas::plus &x)
Definition traverser.h:1938
void apply(const state_formulas::supremum &x)
Definition traverser.h:1983
void apply(const state_formulas::and_ &x)
Definition traverser.h:1914
void apply(const state_formulas::sum &x)
Definition traverser.h:1990
void apply(const state_formulas::variable &x)
Definition traverser.h:2041
void apply(const state_formulas::not_ &x)
Definition traverser.h:1900
void apply(const state_formulas::state_formula_specification &x)
Definition traverser.h:2064
void apply(const state_formulas::may &x)
Definition traverser.h:2005
void apply(const state_formulas::forall &x)
Definition traverser.h:1962
void apply(const state_formulas::or_ &x)
Definition traverser.h:1922
void apply(const state_formulas::exists &x)
Definition traverser.h:1969
void apply(const state_formulas::false_ &x)
Definition traverser.h:1893
void apply(const state_formulas::yaled_timed &x)
Definition traverser.h:2020
void apply(const state_formulas::true_ &x)
Definition traverser.h:1886
void apply(const state_formulas::delay_timed &x)
Definition traverser.h:2034
void apply(const state_formulas::must &x)
Definition traverser.h:1997
void apply(const state_formulas::yaled &x)
Definition traverser.h:2013
void apply(const state_formulas::state_formula &x)
Definition traverser.h:2071
void apply(const state_formulas::imp &x)
Definition traverser.h:1930
void apply(const state_formulas::delay &x)
Definition traverser.h:2027
void apply(const state_formulas::const_multiply_alt &x)
Definition traverser.h:1954
void apply(const state_formulas::minus &x)
Definition traverser.h:1907
void apply(const state_formulas::const_multiply &x)
Definition traverser.h:1946
void apply(const state_formulas::infimum &x)
Definition traverser.h:1976
void apply(const state_formulas::plus &x)
Definition traverser.h:3183
void apply(const state_formulas::variable &x)
Definition traverser.h:3291
void apply(const state_formulas::supremum &x)
Definition traverser.h:3231
void apply(const state_formulas::const_multiply &x)
Definition traverser.h:3191
void apply(const state_formulas::delay &x)
Definition traverser.h:3277
void apply(const state_formulas::exists &x)
Definition traverser.h:3215
void apply(const state_formulas::yaled &x)
Definition traverser.h:3263
void apply(const state_formulas::yaled_timed &x)
Definition traverser.h:3270
void apply(const state_formulas::false_ &x)
Definition traverser.h:3138
void apply(const state_formulas::state_formula &x)
Definition traverser.h:3325
void apply(const state_formulas::and_ &x)
Definition traverser.h:3159
void apply(const state_formulas::const_multiply_alt &x)
Definition traverser.h:3199
void apply(const state_formulas::state_formula_specification &x)
Definition traverser.h:3317
void apply(const state_formulas::minus &x)
Definition traverser.h:3152
void apply(const state_formulas::must &x)
Definition traverser.h:3247
void apply(const state_formulas::delay_timed &x)
Definition traverser.h:3284
void apply(const state_formulas::forall &x)
Definition traverser.h:3207
void apply(const state_formulas::infimum &x)
Definition traverser.h:3223
void apply(const state_formulas::not_ &x)
Definition traverser.h:3145
void apply(const state_formulas::true_ &x)
Definition traverser.h:3131
void apply(const state_formulas::state_formula_specification &x)
Definition traverser.h:3627
void apply(const state_formulas::yaled_timed &x)
Definition traverser.h:3585
void apply(const state_formulas::const_multiply &x)
Definition traverser.h:3513
void apply(const state_formulas::delay_timed &x)
Definition traverser.h:3599
void apply(const state_formulas::state_formula &x)
Definition traverser.h:3634
void apply(const state_formulas::const_multiply_alt &x)
Definition traverser.h:3520
void apply(const state_formulas::yaled &x)
Definition traverser.h:1699
void apply(const state_formulas::const_multiply &x)
Definition traverser.h:1627
void apply(const state_formulas::variable &x)
Definition traverser.h:1727
void apply(const state_formulas::state_formula &x)
Definition traverser.h:1758
void apply(const state_formulas::delay_timed &x)
Definition traverser.h:1720
void apply(const state_formulas::plus &x)
Definition traverser.h:1619
void apply(const state_formulas::supremum &x)
Definition traverser.h:1667
void apply(const state_formulas::and_ &x)
Definition traverser.h:1595
void apply(const state_formulas::must &x)
Definition traverser.h:1683
void apply(const state_formulas::exists &x)
Definition traverser.h:1651
void apply(const state_formulas::false_ &x)
Definition traverser.h:1574
void apply(const state_formulas::delay &x)
Definition traverser.h:1713
void apply(const state_formulas::not_ &x)
Definition traverser.h:1581
void apply(const state_formulas::const_multiply_alt &x)
Definition traverser.h:1635
void apply(const state_formulas::may &x)
Definition traverser.h:1691
void apply(const state_formulas::forall &x)
Definition traverser.h:1643
void apply(const state_formulas::yaled_timed &x)
Definition traverser.h:1706
void apply(const state_formulas::infimum &x)
Definition traverser.h:1659
void apply(const state_formulas::or_ &x)
Definition traverser.h:1603
void apply(const state_formulas::true_ &x)
Definition traverser.h:1567
void apply(const state_formulas::state_formula_specification &x)
Definition traverser.h:1750
void apply(const state_formulas::imp &x)
Definition traverser.h:1611
void apply(const state_formulas::minus &x)
Definition traverser.h:1588
void apply(const state_formulas::sum &x)
Definition traverser.h:1675
void apply(const state_formulas::const_multiply &x)
Definition traverser.h:2259
void apply(const state_formulas::yaled_timed &x)
Definition traverser.h:2329
void apply(const state_formulas::const_multiply_alt &x)
Definition traverser.h:2266
void apply(const state_formulas::state_formula &x)
Definition traverser.h:2378
void apply(const state_formulas::delay_timed &x)
Definition traverser.h:2343
void apply(const state_formulas::state_formula_specification &x)
Definition traverser.h:2371
void apply(const state_formulas::delay &x)
Definition traverser.h:2961
void apply(const state_formulas::variable &x)
Definition traverser.h:2975
void apply(const state_formulas::may &x)
Definition traverser.h:2940
void apply(const state_formulas::infimum &x)
Definition traverser.h:2912
void apply(const state_formulas::and_ &x)
Definition traverser.h:2852
void apply(const state_formulas::state_formula &x)
Definition traverser.h:3003
void apply(const state_formulas::exists &x)
Definition traverser.h:2905
void apply(const state_formulas::mu &x)
Definition traverser.h:2989
void apply(const state_formulas::false_ &x)
Definition traverser.h:2831
void apply(const state_formulas::or_ &x)
Definition traverser.h:2860
void apply(const state_formulas::const_multiply &x)
Definition traverser.h:2884
void apply(const state_formulas::yaled_timed &x)
Definition traverser.h:2954
void apply(const state_formulas::not_ &x)
Definition traverser.h:2838
void apply(const state_formulas::true_ &x)
Definition traverser.h:2824
void apply(const state_formulas::imp &x)
Definition traverser.h:2868
void apply(const state_formulas::sum &x)
Definition traverser.h:2926
void apply(const state_formulas::plus &x)
Definition traverser.h:2876
void apply(const state_formulas::state_formula_specification &x)
Definition traverser.h:2996
void apply(const state_formulas::must &x)
Definition traverser.h:2933
void apply(const state_formulas::yaled &x)
Definition traverser.h:2947
void apply(const state_formulas::forall &x)
Definition traverser.h:2898
void apply(const state_formulas::const_multiply_alt &x)
Definition traverser.h:2891
void apply(const state_formulas::minus &x)
Definition traverser.h:2845
void apply(const state_formulas::delay_timed &x)
Definition traverser.h:2968
void apply(const state_formulas::nu &x)
Definition traverser.h:2982
void apply(const state_formulas::supremum &x)
Definition traverser.h:2919
void apply(const state_formulas::false_ &x)
Definition traverser.h:2513
void apply(const state_formulas::const_multiply_alt &x)
Definition traverser.h:2574
void apply(const state_formulas::true_ &x)
Definition traverser.h:2506
void apply(const state_formulas::and_ &x)
Definition traverser.h:2534
void apply(const state_formulas::exists &x)
Definition traverser.h:2590
void apply(const state_formulas::or_ &x)
Definition traverser.h:2542
void apply(const state_formulas::infimum &x)
Definition traverser.h:2598
void apply(const state_formulas::yaled &x)
Definition traverser.h:2638
void apply(const state_formulas::yaled_timed &x)
Definition traverser.h:2645
void apply(const state_formulas::plus &x)
Definition traverser.h:2558
void apply(const state_formulas::sum &x)
Definition traverser.h:2614
void apply(const state_formulas::delay_timed &x)
Definition traverser.h:2659
void apply(const state_formulas::must &x)
Definition traverser.h:2622
void apply(const state_formulas::forall &x)
Definition traverser.h:2582
void apply(const state_formulas::mu &x)
Definition traverser.h:2681
void apply(const state_formulas::delay &x)
Definition traverser.h:2652
void apply(const state_formulas::state_formula_specification &x)
Definition traverser.h:2689
void apply(const state_formulas::const_multiply &x)
Definition traverser.h:2566
void apply(const state_formulas::variable &x)
Definition traverser.h:2666
void apply(const state_formulas::supremum &x)
Definition traverser.h:2606
void apply(const state_formulas::may &x)
Definition traverser.h:2630
void apply(const state_formulas::state_formula &x)
Definition traverser.h:2696
void apply(const state_formulas::nu &x)
Definition traverser.h:2673
void apply(const state_formulas::imp &x)
Definition traverser.h:2550
void apply(const state_formulas::minus &x)
Definition traverser.h:2527
void apply(const state_formulas::not_ &x)
Definition traverser.h:2520
void apply(T &result, const state_formulas::true_ &x)
Definition builder.h:1816
void apply(T &result, const state_formulas::may &x)
Definition builder.h:1946
void apply(T &result, const state_formulas::not_ &x)
Definition builder.h:1834
void apply(T &result, const state_formulas::and_ &x)
Definition builder.h:1850
void apply(T &result, const state_formulas::minus &x)
Definition builder.h:1842
void apply(T &result, const state_formulas::delay &x)
Definition builder.h:1971
void apply(T &result, const state_formulas::plus &x)
Definition builder.h:1874
void apply(T &result, const state_formulas::yaled &x)
Definition builder.h:1954
void apply(T &result, const state_formulas::exists &x)
Definition builder.h:1906
void apply(T &result, const state_formulas::variable &x)
Definition builder.h:1988
void apply(T &result, const state_formulas::sum &x)
Definition builder.h:1930
void apply(T &result, const state_formulas::forall &x)
Definition builder.h:1898
void apply(T &result, const state_formulas::infimum &x)
Definition builder.h:1914
void apply(T &result, const state_formulas::mu &x)
Definition builder.h:2004
void apply(T &result, const state_formulas::yaled_timed &x)
Definition builder.h:1963
void apply(T &result, const state_formulas::supremum &x)
Definition builder.h:1922
void apply(T &result, const state_formulas::false_ &x)
Definition builder.h:1825
void apply(T &result, const state_formulas::or_ &x)
Definition builder.h:1858
void apply(T &result, const state_formulas::delay_timed &x)
Definition builder.h:1980
void apply(T &result, const state_formulas::const_multiply &x)
Definition builder.h:1882
void apply(T &result, const state_formulas::state_formula &x)
Definition builder.h:2021
void update(state_formulas::state_formula_specification &x)
Definition builder.h:2011
void apply(T &result, const state_formulas::must &x)
Definition builder.h:1938
void apply(T &result, const state_formulas::imp &x)
Definition builder.h:1866
void apply(T &result, const state_formulas::const_multiply_alt &x)
Definition builder.h:1890
void apply(T &result, const state_formulas::nu &x)
Definition builder.h:1996
add_capture_avoiding_replacement(data::detail::capture_avoiding_substitution_updater< Substitution > &sigma)
Function that determines if a state formula is time dependent.
Definition is_timed.h:25
void apply(const process::untyped_multi_action &)
Definition is_timed.h:43
void enter(const action_formulas::at &)
Definition is_timed.h:58
void apply(const data::data_expression &)
Definition is_timed.h:33
void apply(const data::untyped_data_parameter &)
Definition is_timed.h:38
void apply(const state_formulas::delay &x)
Definition print.h:577
void apply(const state_formulas::forall &x)
Definition print.h:500
void apply(const state_formulas::infimum &x)
Definition print.h:514
void apply(const state_formulas::yaled &x)
Definition print.h:559
void apply(const state_formulas::nu &x)
Definition print.h:640
void apply(const state_formulas::mu &x)
Definition print.h:651
void apply(const state_formulas::false_ &x)
Definition print.h:433
void apply(const state_formulas::const_multiply &x)
Definition print.h:482
void apply(const state_formulas::plus &x)
Definition print.h:475
void apply(const state_formulas::must &x)
Definition print.h:535
void apply(const state_formulas::supremum &x)
Definition print.h:521
void apply(const state_formulas::or_ &x)
Definition print.h:461
void apply(const state_formulas::state_formula_specification &x)
Definition print.h:662
void apply(const state_formulas::exists &x)
Definition print.h:507
void print_assignments(const data::assignment_list &assignments)
Definition print.h:616
void apply(const state_formulas::and_ &x)
Definition print.h:454
void apply(const state_formulas::variable &x)
Definition print.h:595
void apply(const state_formulas::not_ &x)
Definition print.h:440
void apply(const state_formulas::delay_timed &x)
Definition print.h:584
void apply(const data::untyped_data_parameter &x)
Definition print.h:605
void apply(const state_formulas::imp &x)
Definition print.h:468
void apply(const data::data_expression &x)
Definition print.h:408
void apply(const state_formulas::const_multiply_alt &x)
Definition print.h:491
void apply(const state_formulas::sum &x)
Definition print.h:528
void apply(const state_formulas::true_ &x)
Definition print.h:426
void apply(const state_formulas::minus &x)
Definition print.h:447
void apply(const state_formulas::yaled_timed &x)
Definition print.h:566
void apply(const state_formulas::may &x)
Definition print.h:547
untyped_state_formula_specification parse_StateFrmSpec(const core::parse_node &node) const
Definition parse_impl.h:204
state_formula make_delay(const core::parse_node &node) const
Definition parse_impl.h:99
data::assignment parse_StateVarAssignment(const core::parse_node &node) const
Definition parse_impl.h:123
state_formula_actions(const core::parser &parser_)
Definition parse_impl.h:95
bool callback_StateFrmSpec(const core::parse_node &node, untyped_state_formula_specification &result) const
Definition parse_impl.h:168
state_formulas::state_formula parse_StateFrm(const core::parse_node &node) const
Definition parse_impl.h:133
state_formula parse_FormSpec(const core::parse_node &node) const
Definition parse_impl.h:163
data::assignment_list parse_StateVarAssignmentList(const core::parse_node &node) const
Definition parse_impl.h:128
state_formula make_yaled(const core::parse_node &node) const
Definition parse_impl.h:111
std::set< core::identifier_string > names
Definition find.h:417
void apply(const state_formulas::variable &x)
Definition find.h:419
Visitor that negates propositional variable instantiations with a given name.
state_variable_negator(const core::identifier_string &name, bool quantitative)
void apply(T &result, const variable &x)
Visit variable node.
state_formula apply_untyped_parameter(const core::identifier_string &name, const data::data_expression_list &arguments)
Definition typecheck.h:559
void apply(T &result, const state_formulas::mu &x)
Definition typecheck.h:634
void apply(T &result, const state_formulas::exists &x)
Definition typecheck.h:426
void apply(T &result, const state_formulas::const_multiply_alt &x)
Definition typecheck.h:700
state_formula apply_mu_nu(const MuNuFormula &x, bool is_mu)
Definition typecheck.h:596
void apply(T &result, const state_formulas::must &x)
Definition typecheck.h:536
void apply(T &result, const state_formulas::delay_timed &x)
Definition typecheck.h:546
void apply(T &result, const state_formulas::not_ &x)
Definition typecheck.h:640
void apply(T &result, const state_formulas::infimum &x)
Definition typecheck.h:451
const process::detail::action_context & m_action_context
Definition typecheck.h:354
void apply(T &result, const state_formulas::forall &x)
Definition typecheck.h:401
void apply(T &result, const state_formulas::supremum &x)
Definition typecheck.h:476
void apply(T &result, const data::untyped_data_parameter &x)
Definition typecheck.h:580
typecheck_builder(data::data_type_checker &data_typechecker, const data::detail::variable_context &variable_context, const process::detail::action_context &action_context, const detail::state_variable_context &state_variable_context, const bool formula_is_quantitative)
Definition typecheck.h:358
void apply(T &result, const state_formulas::may &x)
Definition typecheck.h:526
data::detail::variable_context m_variable_context
Definition typecheck.h:353
void apply(T &result, const state_formulas::const_multiply &x)
Definition typecheck.h:684
void apply(T &result, const state_formulas::plus &x)
Definition typecheck.h:668
void apply(T &result, const state_formulas::sum &x)
Definition typecheck.h:501
void apply(T &result, const state_formulas::nu &x)
Definition typecheck.h:628
void apply(T &result, const state_formulas::variable &x)
Definition typecheck.h:574
void apply(T &result, const state_formulas::yaled_timed &x)
Definition typecheck.h:553
data::data_type_checker & m_data_type_checker
Definition typecheck.h:352
void apply(T &result, const state_formulas::minus &x)
Definition typecheck.h:654
void apply(T &result, const data::data_expression &x)
Definition typecheck.h:372
detail::state_variable_context m_state_variable_context
Definition typecheck.h:355
data::variable_list assignment_variables(const data::assignment_list &x) const
Definition typecheck.h:585
Builder class for pbes_expressions. Used as a base class for pbes_expression_builder.
Definition builder.h:1108
void apply(T &result, const data::data_expression &x)
Definition builder.h:1113
void apply(T &result, const data::untyped_data_parameter &x)
Definition builder.h:1122
Traversal class for pbes_expressions. Used as a base class for pbes_expression_traverser.
Definition traverser.h:1537
void apply(const data::data_expression &x)
Definition traverser.h:1543
void apply(const data::untyped_data_parameter &x)
Definition traverser.h:1550