12#ifndef MCRL2_MODAL_FORMULA_TRAVERSER_H
13#define MCRL2_MODAL_FORMULA_TRAVERSER_H
21namespace action_formulas
25template <
typename Derived>
35 static_cast<Derived&
>(*this).enter(x);
37 static_cast<Derived&
>(*this).leave(x);
42template <
template <
class>
class Traverser,
class Derived>
45 typedef Traverser<Derived>
super;
52 static_cast<Derived&
>(*this).enter(x);
54 static_cast<Derived&
>(*this).leave(x);
59 static_cast<Derived&
>(*this).enter(x);
61 static_cast<Derived&
>(*this).leave(x);
66 static_cast<Derived&
>(*this).enter(x);
67 static_cast<Derived&
>(*this).apply(x.
operand());
68 static_cast<Derived&
>(*this).leave(x);
73 static_cast<Derived&
>(*this).enter(x);
74 static_cast<Derived&
>(*this).apply(x.
left());
75 static_cast<Derived&
>(*this).apply(x.
right());
76 static_cast<Derived&
>(*this).leave(x);
81 static_cast<Derived&
>(*this).enter(x);
82 static_cast<Derived&
>(*this).apply(x.
left());
83 static_cast<Derived&
>(*this).apply(x.
right());
84 static_cast<Derived&
>(*this).leave(x);
89 static_cast<Derived&
>(*this).enter(x);
90 static_cast<Derived&
>(*this).apply(x.
left());
91 static_cast<Derived&
>(*this).apply(x.
right());
92 static_cast<Derived&
>(*this).leave(x);
97 static_cast<Derived&
>(*this).enter(x);
98 static_cast<Derived&
>(*this).apply(x.
variables());
99 static_cast<Derived&
>(*this).apply(x.
body());
100 static_cast<Derived&
>(*this).leave(x);
105 static_cast<Derived&
>(*this).enter(x);
106 static_cast<Derived&
>(*this).apply(x.
variables());
107 static_cast<Derived&
>(*this).apply(x.
body());
108 static_cast<Derived&
>(*this).leave(x);
113 static_cast<Derived&
>(*this).enter(x);
114 static_cast<Derived&
>(*this).apply(x.
operand());
115 static_cast<Derived&
>(*this).apply(x.
time_stamp());
116 static_cast<Derived&
>(*this).leave(x);
121 static_cast<Derived&
>(*this).enter(x);
122 static_cast<Derived&
>(*this).apply(x.
actions());
123 static_cast<Derived&
>(*this).leave(x);
128 static_cast<Derived&
>(*this).enter(x);
131 static_cast<Derived&
>(*this).apply(atermpp::down_cast<data::data_expression>(x));
135 static_cast<Derived&
>(*this).apply(atermpp::down_cast<data::untyped_data_parameter>(x));
139 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::true_>(x));
143 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::false_>(x));
147 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::not_>(x));
151 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::and_>(x));
155 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::or_>(x));
159 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::imp>(x));
163 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::forall>(x));
167 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::exists>(x));
171 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::at>(x));
175 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::multi_action>(x));
179 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::untyped_multi_action>(x));
181 static_cast<Derived&
>(*this).leave(x);
187template <
typename Derived>
194template <
template <
class>
class Traverser,
class Derived>
204 static_cast<Derived&
>(*this).enter(x);
206 static_cast<Derived&
>(*this).leave(x);
211 static_cast<Derived&
>(*this).enter(x);
213 static_cast<Derived&
>(*this).leave(x);
218 static_cast<Derived&
>(*this).enter(x);
219 static_cast<Derived&
>(*this).apply(x.
operand());
220 static_cast<Derived&
>(*this).leave(x);
225 static_cast<Derived&
>(*this).enter(x);
226 static_cast<Derived&
>(*this).apply(x.
left());
227 static_cast<Derived&
>(*this).apply(x.
right());
228 static_cast<Derived&
>(*this).leave(x);
233 static_cast<Derived&
>(*this).enter(x);
234 static_cast<Derived&
>(*this).apply(x.
left());
235 static_cast<Derived&
>(*this).apply(x.
right());
236 static_cast<Derived&
>(*this).leave(x);
241 static_cast<Derived&
>(*this).enter(x);
242 static_cast<Derived&
>(*this).apply(x.
left());
243 static_cast<Derived&
>(*this).apply(x.
right());
244 static_cast<Derived&
>(*this).leave(x);
249 static_cast<Derived&
>(*this).enter(x);
250 static_cast<Derived&
>(*this).apply(x.
body());
251 static_cast<Derived&
>(*this).leave(x);
256 static_cast<Derived&
>(*this).enter(x);
257 static_cast<Derived&
>(*this).apply(x.
body());
258 static_cast<Derived&
>(*this).leave(x);
263 static_cast<Derived&
>(*this).enter(x);
264 static_cast<Derived&
>(*this).apply(x.
operand());
265 static_cast<Derived&
>(*this).apply(x.
time_stamp());
266 static_cast<Derived&
>(*this).leave(x);
271 static_cast<Derived&
>(*this).enter(x);
272 static_cast<Derived&
>(*this).apply(x.
actions());
273 static_cast<Derived&
>(*this).leave(x);
278 static_cast<Derived&
>(*this).enter(x);
281 static_cast<Derived&
>(*this).apply(atermpp::down_cast<data::data_expression>(x));
285 static_cast<Derived&
>(*this).apply(atermpp::down_cast<data::untyped_data_parameter>(x));
289 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::true_>(x));
293 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::false_>(x));
297 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::not_>(x));
301 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::and_>(x));
305 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::or_>(x));
309 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::imp>(x));
313 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::forall>(x));
317 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::exists>(x));
321 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::at>(x));
325 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::multi_action>(x));
329 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::untyped_multi_action>(x));
331 static_cast<Derived&
>(*this).leave(x);
337template <
typename Derived>
344template <
template <
class>
class Traverser,
class Derived>
354 static_cast<Derived&
>(*this).enter(x);
356 static_cast<Derived&
>(*this).leave(x);
361 static_cast<Derived&
>(*this).enter(x);
363 static_cast<Derived&
>(*this).leave(x);
368 static_cast<Derived&
>(*this).enter(x);
369 static_cast<Derived&
>(*this).apply(x.
operand());
370 static_cast<Derived&
>(*this).leave(x);
375 static_cast<Derived&
>(*this).enter(x);
376 static_cast<Derived&
>(*this).apply(x.
left());
377 static_cast<Derived&
>(*this).apply(x.
right());
378 static_cast<Derived&
>(*this).leave(x);
383 static_cast<Derived&
>(*this).enter(x);
384 static_cast<Derived&
>(*this).apply(x.
left());
385 static_cast<Derived&
>(*this).apply(x.
right());
386 static_cast<Derived&
>(*this).leave(x);
391 static_cast<Derived&
>(*this).enter(x);
392 static_cast<Derived&
>(*this).apply(x.
left());
393 static_cast<Derived&
>(*this).apply(x.
right());
394 static_cast<Derived&
>(*this).leave(x);
399 static_cast<Derived&
>(*this).enter(x);
400 static_cast<Derived&
>(*this).apply(x.
body());
401 static_cast<Derived&
>(*this).leave(x);
406 static_cast<Derived&
>(*this).enter(x);
407 static_cast<Derived&
>(*this).apply(x.
body());
408 static_cast<Derived&
>(*this).leave(x);
413 static_cast<Derived&
>(*this).enter(x);
414 static_cast<Derived&
>(*this).apply(x.
operand());
415 static_cast<Derived&
>(*this).leave(x);
420 static_cast<Derived&
>(*this).enter(x);
422 static_cast<Derived&
>(*this).leave(x);
427 static_cast<Derived&
>(*this).enter(x);
430 static_cast<Derived&
>(*this).apply(atermpp::down_cast<data::data_expression>(x));
434 static_cast<Derived&
>(*this).apply(atermpp::down_cast<data::untyped_data_parameter>(x));
438 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::true_>(x));
442 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::false_>(x));
446 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::not_>(x));
450 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::and_>(x));
454 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::or_>(x));
458 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::imp>(x));
462 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::forall>(x));
466 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::exists>(x));
470 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::at>(x));
474 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::multi_action>(x));
478 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::untyped_multi_action>(x));
480 static_cast<Derived&
>(*this).leave(x);
486template <
typename Derived>
493template <
template <
class>
class Traverser,
class Derived>
503 static_cast<Derived&
>(*this).enter(x);
505 static_cast<Derived&
>(*this).leave(x);
510 static_cast<Derived&
>(*this).enter(x);
512 static_cast<Derived&
>(*this).leave(x);
517 static_cast<Derived&
>(*this).enter(x);
518 static_cast<Derived&
>(*this).apply(x.
operand());
519 static_cast<Derived&
>(*this).leave(x);
524 static_cast<Derived&
>(*this).enter(x);
525 static_cast<Derived&
>(*this).apply(x.
left());
526 static_cast<Derived&
>(*this).apply(x.
right());
527 static_cast<Derived&
>(*this).leave(x);
532 static_cast<Derived&
>(*this).enter(x);
533 static_cast<Derived&
>(*this).apply(x.
left());
534 static_cast<Derived&
>(*this).apply(x.
right());
535 static_cast<Derived&
>(*this).leave(x);
540 static_cast<Derived&
>(*this).enter(x);
541 static_cast<Derived&
>(*this).apply(x.
left());
542 static_cast<Derived&
>(*this).apply(x.
right());
543 static_cast<Derived&
>(*this).leave(x);
548 static_cast<Derived&
>(*this).enter(x);
549 static_cast<Derived&
>(*this).apply(x.
variables());
550 static_cast<Derived&
>(*this).apply(x.
body());
551 static_cast<Derived&
>(*this).leave(x);
556 static_cast<Derived&
>(*this).enter(x);
557 static_cast<Derived&
>(*this).apply(x.
variables());
558 static_cast<Derived&
>(*this).apply(x.
body());
559 static_cast<Derived&
>(*this).leave(x);
564 static_cast<Derived&
>(*this).enter(x);
565 static_cast<Derived&
>(*this).apply(x.
operand());
566 static_cast<Derived&
>(*this).apply(x.
time_stamp());
567 static_cast<Derived&
>(*this).leave(x);
572 static_cast<Derived&
>(*this).enter(x);
573 static_cast<Derived&
>(*this).apply(x.
actions());
574 static_cast<Derived&
>(*this).leave(x);
579 static_cast<Derived&
>(*this).enter(x);
582 static_cast<Derived&
>(*this).apply(atermpp::down_cast<data::data_expression>(x));
586 static_cast<Derived&
>(*this).apply(atermpp::down_cast<data::untyped_data_parameter>(x));
590 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::true_>(x));
594 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::false_>(x));
598 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::not_>(x));
602 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::and_>(x));
606 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::or_>(x));
610 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::imp>(x));
614 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::forall>(x));
618 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::exists>(x));
622 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::at>(x));
626 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::multi_action>(x));
630 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::untyped_multi_action>(x));
632 static_cast<Derived&
>(*this).leave(x);
638template <
typename Derived>
645template <
template <
class>
class Traverser,
class Derived>
655 static_cast<Derived&
>(*this).enter(x);
657 static_cast<Derived&
>(*this).leave(x);
662 static_cast<Derived&
>(*this).enter(x);
664 static_cast<Derived&
>(*this).leave(x);
669 static_cast<Derived&
>(*this).enter(x);
670 static_cast<Derived&
>(*this).apply(x.
operand());
671 static_cast<Derived&
>(*this).leave(x);
676 static_cast<Derived&
>(*this).enter(x);
677 static_cast<Derived&
>(*this).apply(x.
left());
678 static_cast<Derived&
>(*this).apply(x.
right());
679 static_cast<Derived&
>(*this).leave(x);
684 static_cast<Derived&
>(*this).enter(x);
685 static_cast<Derived&
>(*this).apply(x.
left());
686 static_cast<Derived&
>(*this).apply(x.
right());
687 static_cast<Derived&
>(*this).leave(x);
692 static_cast<Derived&
>(*this).enter(x);
693 static_cast<Derived&
>(*this).apply(x.
left());
694 static_cast<Derived&
>(*this).apply(x.
right());
695 static_cast<Derived&
>(*this).leave(x);
700 static_cast<Derived&
>(*this).enter(x);
701 static_cast<Derived&
>(*this).apply(x.
variables());
702 static_cast<Derived&
>(*this).apply(x.
body());
703 static_cast<Derived&
>(*this).leave(x);
708 static_cast<Derived&
>(*this).enter(x);
709 static_cast<Derived&
>(*this).apply(x.
variables());
710 static_cast<Derived&
>(*this).apply(x.
body());
711 static_cast<Derived&
>(*this).leave(x);
716 static_cast<Derived&
>(*this).enter(x);
717 static_cast<Derived&
>(*this).apply(x.
operand());
718 static_cast<Derived&
>(*this).apply(x.
time_stamp());
719 static_cast<Derived&
>(*this).leave(x);
724 static_cast<Derived&
>(*this).enter(x);
725 static_cast<Derived&
>(*this).apply(x.
actions());
726 static_cast<Derived&
>(*this).leave(x);
731 static_cast<Derived&
>(*this).enter(x);
734 static_cast<Derived&
>(*this).apply(atermpp::down_cast<data::data_expression>(x));
738 static_cast<Derived&
>(*this).apply(atermpp::down_cast<data::untyped_data_parameter>(x));
742 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::true_>(x));
746 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::false_>(x));
750 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::not_>(x));
754 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::and_>(x));
758 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::or_>(x));
762 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::imp>(x));
766 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::forall>(x));
770 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::exists>(x));
774 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::at>(x));
778 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::multi_action>(x));
782 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::untyped_multi_action>(x));
784 static_cast<Derived&
>(*this).leave(x);
790template <
typename Derived>
797template <
template <
class>
class Traverser,
class Derived>
807 static_cast<Derived&
>(*this).enter(x);
809 static_cast<Derived&
>(*this).leave(x);
814 static_cast<Derived&
>(*this).enter(x);
816 static_cast<Derived&
>(*this).leave(x);
821 static_cast<Derived&
>(*this).enter(x);
822 static_cast<Derived&
>(*this).apply(x.
operand());
823 static_cast<Derived&
>(*this).leave(x);
828 static_cast<Derived&
>(*this).enter(x);
829 static_cast<Derived&
>(*this).apply(x.
left());
830 static_cast<Derived&
>(*this).apply(x.
right());
831 static_cast<Derived&
>(*this).leave(x);
836 static_cast<Derived&
>(*this).enter(x);
837 static_cast<Derived&
>(*this).apply(x.
left());
838 static_cast<Derived&
>(*this).apply(x.
right());
839 static_cast<Derived&
>(*this).leave(x);
844 static_cast<Derived&
>(*this).enter(x);
845 static_cast<Derived&
>(*this).apply(x.
left());
846 static_cast<Derived&
>(*this).apply(x.
right());
847 static_cast<Derived&
>(*this).leave(x);
852 static_cast<Derived&
>(*this).enter(x);
853 static_cast<Derived&
>(*this).apply(x.
body());
854 static_cast<Derived&
>(*this).leave(x);
859 static_cast<Derived&
>(*this).enter(x);
860 static_cast<Derived&
>(*this).apply(x.
body());
861 static_cast<Derived&
>(*this).leave(x);
866 static_cast<Derived&
>(*this).enter(x);
867 static_cast<Derived&
>(*this).apply(x.
operand());
868 static_cast<Derived&
>(*this).leave(x);
873 static_cast<Derived&
>(*this).enter(x);
874 static_cast<Derived&
>(*this).apply(x.
actions());
875 static_cast<Derived&
>(*this).leave(x);
880 static_cast<Derived&
>(*this).enter(x);
883 static_cast<Derived&
>(*this).apply(atermpp::down_cast<data::data_expression>(x));
887 static_cast<Derived&
>(*this).apply(atermpp::down_cast<data::untyped_data_parameter>(x));
891 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::true_>(x));
895 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::false_>(x));
899 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::not_>(x));
903 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::and_>(x));
907 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::or_>(x));
911 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::imp>(x));
915 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::forall>(x));
919 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::exists>(x));
923 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::at>(x));
927 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::multi_action>(x));
931 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::untyped_multi_action>(x));
933 static_cast<Derived&
>(*this).leave(x);
939template <
typename Derived>
947namespace regular_formulas
951template <
typename Derived>
961 static_cast<Derived&
>(*this).enter(x);
963 static_cast<Derived&
>(*this).leave(x);
968 static_cast<Derived&
>(*this).enter(x);
970 static_cast<Derived&
>(*this).leave(x);
975template <
template <
class>
class Traverser,
class Derived>
985 static_cast<Derived&
>(*this).enter(x);
986 static_cast<Derived&
>(*this).apply(x.
left());
987 static_cast<Derived&
>(*this).apply(x.
right());
988 static_cast<Derived&
>(*this).leave(x);
993 static_cast<Derived&
>(*this).enter(x);
994 static_cast<Derived&
>(*this).apply(x.
left());
995 static_cast<Derived&
>(*this).apply(x.
right());
996 static_cast<Derived&
>(*this).leave(x);
1001 static_cast<Derived&
>(*this).enter(x);
1002 static_cast<Derived&
>(*this).apply(x.
operand());
1003 static_cast<Derived&
>(*this).leave(x);
1008 static_cast<Derived&
>(*this).enter(x);
1009 static_cast<Derived&
>(*this).apply(x.
operand());
1010 static_cast<Derived&
>(*this).leave(x);
1015 static_cast<Derived&
>(*this).enter(x);
1016 static_cast<Derived&
>(*this).apply(x.
left());
1017 static_cast<Derived&
>(*this).apply(x.
right());
1018 static_cast<Derived&
>(*this).leave(x);
1023 static_cast<Derived&
>(*this).enter(x);
1026 static_cast<Derived&
>(*this).apply(atermpp::down_cast<data::data_expression>(x));
1030 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::action_formula>(x));
1034 static_cast<Derived&
>(*this).apply(atermpp::down_cast<regular_formulas::seq>(x));
1038 static_cast<Derived&
>(*this).apply(atermpp::down_cast<regular_formulas::alt>(x));
1042 static_cast<Derived&
>(*this).apply(atermpp::down_cast<regular_formulas::trans>(x));
1046 static_cast<Derived&
>(*this).apply(atermpp::down_cast<regular_formulas::trans_or_nil>(x));
1050 static_cast<Derived&
>(*this).apply(atermpp::down_cast<regular_formulas::untyped_regular_formula>(x));
1052 static_cast<Derived&
>(*this).leave(x);
1058template <
typename Derived>
1065template <
template <
class>
class Traverser,
class Derived>
1075 static_cast<Derived&
>(*this).enter(x);
1076 static_cast<Derived&
>(*this).apply(x.
left());
1077 static_cast<Derived&
>(*this).apply(x.
right());
1078 static_cast<Derived&
>(*this).leave(x);
1083 static_cast<Derived&
>(*this).enter(x);
1084 static_cast<Derived&
>(*this).apply(x.
left());
1085 static_cast<Derived&
>(*this).apply(x.
right());
1086 static_cast<Derived&
>(*this).leave(x);
1091 static_cast<Derived&
>(*this).enter(x);
1092 static_cast<Derived&
>(*this).apply(x.
operand());
1093 static_cast<Derived&
>(*this).leave(x);
1098 static_cast<Derived&
>(*this).enter(x);
1099 static_cast<Derived&
>(*this).apply(x.
operand());
1100 static_cast<Derived&
>(*this).leave(x);
1105 static_cast<Derived&
>(*this).enter(x);
1106 static_cast<Derived&
>(*this).apply(x.
left());
1107 static_cast<Derived&
>(*this).apply(x.
right());
1108 static_cast<Derived&
>(*this).leave(x);
1113 static_cast<Derived&
>(*this).enter(x);
1116 static_cast<Derived&
>(*this).apply(atermpp::down_cast<data::data_expression>(x));
1120 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::action_formula>(x));
1124 static_cast<Derived&
>(*this).apply(atermpp::down_cast<regular_formulas::seq>(x));
1128 static_cast<Derived&
>(*this).apply(atermpp::down_cast<regular_formulas::alt>(x));
1132 static_cast<Derived&
>(*this).apply(atermpp::down_cast<regular_formulas::trans>(x));
1136 static_cast<Derived&
>(*this).apply(atermpp::down_cast<regular_formulas::trans_or_nil>(x));
1140 static_cast<Derived&
>(*this).apply(atermpp::down_cast<regular_formulas::untyped_regular_formula>(x));
1142 static_cast<Derived&
>(*this).leave(x);
1148template <
typename Derived>
1155template <
template <
class>
class Traverser,
class Derived>
1165 static_cast<Derived&
>(*this).enter(x);
1166 static_cast<Derived&
>(*this).apply(x.
left());
1167 static_cast<Derived&
>(*this).apply(x.
right());
1168 static_cast<Derived&
>(*this).leave(x);
1173 static_cast<Derived&
>(*this).enter(x);
1174 static_cast<Derived&
>(*this).apply(x.
left());
1175 static_cast<Derived&
>(*this).apply(x.
right());
1176 static_cast<Derived&
>(*this).leave(x);
1181 static_cast<Derived&
>(*this).enter(x);
1182 static_cast<Derived&
>(*this).apply(x.
operand());
1183 static_cast<Derived&
>(*this).leave(x);
1188 static_cast<Derived&
>(*this).enter(x);
1189 static_cast<Derived&
>(*this).apply(x.
operand());
1190 static_cast<Derived&
>(*this).leave(x);
1195 static_cast<Derived&
>(*this).enter(x);
1196 static_cast<Derived&
>(*this).apply(x.
left());
1197 static_cast<Derived&
>(*this).apply(x.
right());
1198 static_cast<Derived&
>(*this).leave(x);
1203 static_cast<Derived&
>(*this).enter(x);
1206 static_cast<Derived&
>(*this).apply(atermpp::down_cast<data::data_expression>(x));
1210 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::action_formula>(x));
1214 static_cast<Derived&
>(*this).apply(atermpp::down_cast<regular_formulas::seq>(x));
1218 static_cast<Derived&
>(*this).apply(atermpp::down_cast<regular_formulas::alt>(x));
1222 static_cast<Derived&
>(*this).apply(atermpp::down_cast<regular_formulas::trans>(x));
1226 static_cast<Derived&
>(*this).apply(atermpp::down_cast<regular_formulas::trans_or_nil>(x));
1230 static_cast<Derived&
>(*this).apply(atermpp::down_cast<regular_formulas::untyped_regular_formula>(x));
1232 static_cast<Derived&
>(*this).leave(x);
1238template <
typename Derived>
1245template <
template <
class>
class Traverser,
class Derived>
1255 static_cast<Derived&
>(*this).enter(x);
1256 static_cast<Derived&
>(*this).apply(x.
left());
1257 static_cast<Derived&
>(*this).apply(x.
right());
1258 static_cast<Derived&
>(*this).leave(x);
1263 static_cast<Derived&
>(*this).enter(x);
1264 static_cast<Derived&
>(*this).apply(x.
left());
1265 static_cast<Derived&
>(*this).apply(x.
right());
1266 static_cast<Derived&
>(*this).leave(x);
1271 static_cast<Derived&
>(*this).enter(x);
1272 static_cast<Derived&
>(*this).apply(x.
operand());
1273 static_cast<Derived&
>(*this).leave(x);
1278 static_cast<Derived&
>(*this).enter(x);
1279 static_cast<Derived&
>(*this).apply(x.
operand());
1280 static_cast<Derived&
>(*this).leave(x);
1285 static_cast<Derived&
>(*this).enter(x);
1286 static_cast<Derived&
>(*this).apply(x.
left());
1287 static_cast<Derived&
>(*this).apply(x.
right());
1288 static_cast<Derived&
>(*this).leave(x);
1293 static_cast<Derived&
>(*this).enter(x);
1296 static_cast<Derived&
>(*this).apply(atermpp::down_cast<data::data_expression>(x));
1300 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::action_formula>(x));
1304 static_cast<Derived&
>(*this).apply(atermpp::down_cast<regular_formulas::seq>(x));
1308 static_cast<Derived&
>(*this).apply(atermpp::down_cast<regular_formulas::alt>(x));
1312 static_cast<Derived&
>(*this).apply(atermpp::down_cast<regular_formulas::trans>(x));
1316 static_cast<Derived&
>(*this).apply(atermpp::down_cast<regular_formulas::trans_or_nil>(x));
1320 static_cast<Derived&
>(*this).apply(atermpp::down_cast<regular_formulas::untyped_regular_formula>(x));
1322 static_cast<Derived&
>(*this).leave(x);
1328template <
typename Derived>
1335template <
template <
class>
class Traverser,
class Derived>
1345 static_cast<Derived&
>(*this).enter(x);
1346 static_cast<Derived&
>(*this).apply(x.
left());
1347 static_cast<Derived&
>(*this).apply(x.
right());
1348 static_cast<Derived&
>(*this).leave(x);
1353 static_cast<Derived&
>(*this).enter(x);
1354 static_cast<Derived&
>(*this).apply(x.
left());
1355 static_cast<Derived&
>(*this).apply(x.
right());
1356 static_cast<Derived&
>(*this).leave(x);
1361 static_cast<Derived&
>(*this).enter(x);
1362 static_cast<Derived&
>(*this).apply(x.
operand());
1363 static_cast<Derived&
>(*this).leave(x);
1368 static_cast<Derived&
>(*this).enter(x);
1369 static_cast<Derived&
>(*this).apply(x.
operand());
1370 static_cast<Derived&
>(*this).leave(x);
1375 static_cast<Derived&
>(*this).enter(x);
1376 static_cast<Derived&
>(*this).apply(x.
name());
1377 static_cast<Derived&
>(*this).apply(x.
left());
1378 static_cast<Derived&
>(*this).apply(x.
right());
1379 static_cast<Derived&
>(*this).leave(x);
1384 static_cast<Derived&
>(*this).enter(x);
1387 static_cast<Derived&
>(*this).apply(atermpp::down_cast<data::data_expression>(x));
1391 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::action_formula>(x));
1395 static_cast<Derived&
>(*this).apply(atermpp::down_cast<regular_formulas::seq>(x));
1399 static_cast<Derived&
>(*this).apply(atermpp::down_cast<regular_formulas::alt>(x));
1403 static_cast<Derived&
>(*this).apply(atermpp::down_cast<regular_formulas::trans>(x));
1407 static_cast<Derived&
>(*this).apply(atermpp::down_cast<regular_formulas::trans_or_nil>(x));
1411 static_cast<Derived&
>(*this).apply(atermpp::down_cast<regular_formulas::untyped_regular_formula>(x));
1413 static_cast<Derived&
>(*this).leave(x);
1419template <
typename Derived>
1426template <
template <
class>
class Traverser,
class Derived>
1436 static_cast<Derived&
>(*this).enter(x);
1437 static_cast<Derived&
>(*this).apply(x.
left());
1438 static_cast<Derived&
>(*this).apply(x.
right());
1439 static_cast<Derived&
>(*this).leave(x);
1444 static_cast<Derived&
>(*this).enter(x);
1445 static_cast<Derived&
>(*this).apply(x.
left());
1446 static_cast<Derived&
>(*this).apply(x.
right());
1447 static_cast<Derived&
>(*this).leave(x);
1452 static_cast<Derived&
>(*this).enter(x);
1453 static_cast<Derived&
>(*this).apply(x.
operand());
1454 static_cast<Derived&
>(*this).leave(x);
1459 static_cast<Derived&
>(*this).enter(x);
1460 static_cast<Derived&
>(*this).apply(x.
operand());
1461 static_cast<Derived&
>(*this).leave(x);
1466 static_cast<Derived&
>(*this).enter(x);
1467 static_cast<Derived&
>(*this).apply(x.
left());
1468 static_cast<Derived&
>(*this).apply(x.
right());
1469 static_cast<Derived&
>(*this).leave(x);
1474 static_cast<Derived&
>(*this).enter(x);
1477 static_cast<Derived&
>(*this).apply(atermpp::down_cast<data::data_expression>(x));
1481 static_cast<Derived&
>(*this).apply(atermpp::down_cast<action_formulas::action_formula>(x));
1485 static_cast<Derived&
>(*this).apply(atermpp::down_cast<regular_formulas::seq>(x));
1489 static_cast<Derived&
>(*this).apply(atermpp::down_cast<regular_formulas::alt>(x));
1493 static_cast<Derived&
>(*this).apply(atermpp::down_cast<regular_formulas::trans>(x));
1497 static_cast<Derived&
>(*this).apply(atermpp::down_cast<regular_formulas::trans_or_nil>(x));
1501 static_cast<Derived&
>(*this).apply(atermpp::down_cast<regular_formulas::untyped_regular_formula>(x));
1503 static_cast<Derived&
>(*this).leave(x);
1509template <
typename Derived>
1517namespace state_formulas
1521template <
typename Derived>
1531 static_cast<Derived&
>(*this).enter(x);
1533 static_cast<Derived&
>(*this).leave(x);
1538template <
template <
class>
class Traverser,
class Derived>
1548 static_cast<Derived&
>(*this).enter(x);
1550 static_cast<Derived&
>(*this).leave(x);
1555 static_cast<Derived&
>(*this).enter(x);
1557 static_cast<Derived&
>(*this).leave(x);
1562 static_cast<Derived&
>(*this).enter(x);
1563 static_cast<Derived&
>(*this).apply(x.
operand());
1564 static_cast<Derived&
>(*this).leave(x);
1569 static_cast<Derived&
>(*this).enter(x);
1570 static_cast<Derived&
>(*this).apply(x.
operand());
1571 static_cast<Derived&
>(*this).leave(x);
1576 static_cast<Derived&
>(*this).enter(x);
1577 static_cast<Derived&
>(*this).apply(x.
left());
1578 static_cast<Derived&
>(*this).apply(x.
right());
1579 static_cast<Derived&
>(*this).leave(x);
1584 static_cast<Derived&
>(*this).enter(x);
1585 static_cast<Derived&
>(*this).apply(x.
left());
1586 static_cast<Derived&
>(*this).apply(x.
right());
1587 static_cast<Derived&
>(*this).leave(x);
1592 static_cast<Derived&
>(*this).enter(x);
1593 static_cast<Derived&
>(*this).apply(x.
left());
1594 static_cast<Derived&
>(*this).apply(x.
right());
1595 static_cast<Derived&
>(*this).leave(x);
1600 static_cast<Derived&
>(*this).enter(x);
1601 static_cast<Derived&
>(*this).apply(x.
left());
1602 static_cast<Derived&
>(*this).apply(x.
right());
1603 static_cast<Derived&
>(*this).leave(x);
1608 static_cast<Derived&
>(*this).enter(x);
1609 static_cast<Derived&
>(*this).apply(x.
left());
1610 static_cast<Derived&
>(*this).apply(x.
right());
1611 static_cast<Derived&
>(*this).leave(x);
1616 static_cast<Derived&
>(*this).enter(x);
1617 static_cast<Derived&
>(*this).apply(x.
left());
1618 static_cast<Derived&
>(*this).apply(x.
right());
1619 static_cast<Derived&
>(*this).leave(x);
1624 static_cast<Derived&
>(*this).enter(x);
1625 static_cast<Derived&
>(*this).apply(x.
variables());
1626 static_cast<Derived&
>(*this).apply(x.
body());
1627 static_cast<Derived&
>(*this).leave(x);
1632 static_cast<Derived&
>(*this).enter(x);
1633 static_cast<Derived&
>(*this).apply(x.
variables());
1634 static_cast<Derived&
>(*this).apply(x.
body());
1635 static_cast<Derived&
>(*this).leave(x);
1640 static_cast<Derived&
>(*this).enter(x);
1641 static_cast<Derived&
>(*this).apply(x.
variables());
1642 static_cast<Derived&
>(*this).apply(x.
body());
1643 static_cast<Derived&
>(*this).leave(x);
1648 static_cast<Derived&
>(*this).enter(x);
1649 static_cast<Derived&
>(*this).apply(x.
variables());
1650 static_cast<Derived&
>(*this).apply(x.
body());
1651 static_cast<Derived&
>(*this).leave(x);
1656 static_cast<Derived&
>(*this).enter(x);
1657 static_cast<Derived&
>(*this).apply(x.
variables());
1658 static_cast<Derived&
>(*this).apply(x.
body());
1659 static_cast<Derived&
>(*this).leave(x);
1664 static_cast<Derived&
>(*this).enter(x);
1665 static_cast<Derived&
>(*this).apply(x.
formula());
1666 static_cast<Derived&
>(*this).apply(x.
operand());
1667 static_cast<Derived&
>(*this).leave(x);
1672 static_cast<Derived&
>(*this).enter(x);
1673 static_cast<Derived&
>(*this).apply(x.
formula());
1674 static_cast<Derived&
>(*this).apply(x.
operand());
1675 static_cast<Derived&
>(*this).leave(x);
1680 static_cast<Derived&
>(*this).enter(x);
1682 static_cast<Derived&
>(*this).leave(x);
1687 static_cast<Derived&
>(*this).enter(x);
1688 static_cast<Derived&
>(*this).apply(x.
time_stamp());
1689 static_cast<Derived&
>(*this).leave(x);
1694 static_cast<Derived&
>(*this).enter(x);
1696 static_cast<Derived&
>(*this).leave(x);
1701 static_cast<Derived&
>(*this).enter(x);
1702 static_cast<Derived&
>(*this).apply(x.
time_stamp());
1703 static_cast<Derived&
>(*this).leave(x);
1708 static_cast<Derived&
>(*this).enter(x);
1709 static_cast<Derived&
>(*this).apply(x.
arguments());
1710 static_cast<Derived&
>(*this).leave(x);
1715 static_cast<Derived&
>(*this).enter(x);
1716 static_cast<Derived&
>(*this).apply(x.
assignments());
1717 static_cast<Derived&
>(*this).apply(x.
operand());
1718 static_cast<Derived&
>(*this).leave(x);
1723 static_cast<Derived&
>(*this).enter(x);
1724 static_cast<Derived&
>(*this).apply(x.
assignments());
1725 static_cast<Derived&
>(*this).apply(x.
operand());
1726 static_cast<Derived&
>(*this).leave(x);
1731 static_cast<Derived&
>(*this).enter(x);
1733 static_cast<Derived&
>(*this).apply(x.
formula());
1734 static_cast<Derived&
>(*this).leave(x);
1739 static_cast<Derived&
>(*this).enter(x);
1742 static_cast<Derived&
>(*this).apply(atermpp::down_cast<data::data_expression>(x));
1746 static_cast<Derived&
>(*this).apply(atermpp::down_cast<data::untyped_data_parameter>(x));
1750 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::true_>(x));
1754 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::false_>(x));
1758 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::not_>(x));
1762 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::minus>(x));
1766 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::and_>(x));
1770 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::or_>(x));
1774 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::imp>(x));
1778 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::plus>(x));
1782 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::const_multiply>(x));
1786 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::const_multiply_alt>(x));
1790 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::forall>(x));
1794 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::exists>(x));
1798 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::infimum>(x));
1802 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::supremum>(x));
1806 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::sum>(x));
1810 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::must>(x));
1814 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::may>(x));
1818 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::yaled>(x));
1822 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::yaled_timed>(x));
1826 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::delay>(x));
1830 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::delay_timed>(x));
1834 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::variable>(x));
1838 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::nu>(x));
1842 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::mu>(x));
1844 static_cast<Derived&
>(*this).leave(x);
1850template <
typename Derived>
1857template <
template <
class>
class Traverser,
class Derived>
1867 static_cast<Derived&
>(*this).enter(x);
1869 static_cast<Derived&
>(*this).leave(x);
1874 static_cast<Derived&
>(*this).enter(x);
1876 static_cast<Derived&
>(*this).leave(x);
1881 static_cast<Derived&
>(*this).enter(x);
1882 static_cast<Derived&
>(*this).apply(x.
operand());
1883 static_cast<Derived&
>(*this).leave(x);
1888 static_cast<Derived&
>(*this).enter(x);
1889 static_cast<Derived&
>(*this).apply(x.
operand());
1890 static_cast<Derived&
>(*this).leave(x);
1895 static_cast<Derived&
>(*this).enter(x);
1896 static_cast<Derived&
>(*this).apply(x.
left());
1897 static_cast<Derived&
>(*this).apply(x.
right());
1898 static_cast<Derived&
>(*this).leave(x);
1903 static_cast<Derived&
>(*this).enter(x);
1904 static_cast<Derived&
>(*this).apply(x.
left());
1905 static_cast<Derived&
>(*this).apply(x.
right());
1906 static_cast<Derived&
>(*this).leave(x);
1911 static_cast<Derived&
>(*this).enter(x);
1912 static_cast<Derived&
>(*this).apply(x.
left());
1913 static_cast<Derived&
>(*this).apply(x.
right());
1914 static_cast<Derived&
>(*this).leave(x);
1919 static_cast<Derived&
>(*this).enter(x);
1920 static_cast<Derived&
>(*this).apply(x.
left());
1921 static_cast<Derived&
>(*this).apply(x.
right());
1922 static_cast<Derived&
>(*this).leave(x);
1927 static_cast<Derived&
>(*this).enter(x);
1928 static_cast<Derived&
>(*this).apply(x.
left());
1929 static_cast<Derived&
>(*this).apply(x.
right());
1930 static_cast<Derived&
>(*this).leave(x);
1935 static_cast<Derived&
>(*this).enter(x);
1936 static_cast<Derived&
>(*this).apply(x.
left());
1937 static_cast<Derived&
>(*this).apply(x.
right());
1938 static_cast<Derived&
>(*this).leave(x);
1943 static_cast<Derived&
>(*this).enter(x);
1944 static_cast<Derived&
>(*this).apply(x.
body());
1945 static_cast<Derived&
>(*this).leave(x);
1950 static_cast<Derived&
>(*this).enter(x);
1951 static_cast<Derived&
>(*this).apply(x.
body());
1952 static_cast<Derived&
>(*this).leave(x);
1957 static_cast<Derived&
>(*this).enter(x);
1958 static_cast<Derived&
>(*this).apply(x.
body());
1959 static_cast<Derived&
>(*this).leave(x);
1964 static_cast<Derived&
>(*this).enter(x);
1965 static_cast<Derived&
>(*this).apply(x.
body());
1966 static_cast<Derived&
>(*this).leave(x);
1971 static_cast<Derived&
>(*this).enter(x);
1972 static_cast<Derived&
>(*this).apply(x.
body());
1973 static_cast<Derived&
>(*this).leave(x);
1978 static_cast<Derived&
>(*this).enter(x);
1979 static_cast<Derived&
>(*this).apply(x.
formula());
1980 static_cast<Derived&
>(*this).apply(x.
operand());
1981 static_cast<Derived&
>(*this).leave(x);
1986 static_cast<Derived&
>(*this).enter(x);
1987 static_cast<Derived&
>(*this).apply(x.
formula());
1988 static_cast<Derived&
>(*this).apply(x.
operand());
1989 static_cast<Derived&
>(*this).leave(x);
1994 static_cast<Derived&
>(*this).enter(x);
1996 static_cast<Derived&
>(*this).leave(x);
2001 static_cast<Derived&
>(*this).enter(x);
2002 static_cast<Derived&
>(*this).apply(x.
time_stamp());
2003 static_cast<Derived&
>(*this).leave(x);
2008 static_cast<Derived&
>(*this).enter(x);
2010 static_cast<Derived&
>(*this).leave(x);
2015 static_cast<Derived&
>(*this).enter(x);
2016 static_cast<Derived&
>(*this).apply(x.
time_stamp());
2017 static_cast<Derived&
>(*this).leave(x);
2022 static_cast<Derived&
>(*this).enter(x);
2023 static_cast<Derived&
>(*this).apply(x.
arguments());
2024 static_cast<Derived&
>(*this).leave(x);
2029 static_cast<Derived&
>(*this).enter(x);
2030 static_cast<Derived&
>(*this).apply(x.
assignments());
2031 static_cast<Derived&
>(*this).apply(x.
operand());
2032 static_cast<Derived&
>(*this).leave(x);
2037 static_cast<Derived&
>(*this).enter(x);
2038 static_cast<Derived&
>(*this).apply(x.
assignments());
2039 static_cast<Derived&
>(*this).apply(x.
operand());
2040 static_cast<Derived&
>(*this).leave(x);
2045 static_cast<Derived&
>(*this).enter(x);
2046 static_cast<Derived&
>(*this).apply(x.
formula());
2047 static_cast<Derived&
>(*this).leave(x);
2052 static_cast<Derived&
>(*this).enter(x);
2055 static_cast<Derived&
>(*this).apply(atermpp::down_cast<data::data_expression>(x));
2059 static_cast<Derived&
>(*this).apply(atermpp::down_cast<data::untyped_data_parameter>(x));
2063 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::true_>(x));
2067 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::false_>(x));
2071 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::not_>(x));
2075 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::minus>(x));
2079 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::and_>(x));
2083 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::or_>(x));
2087 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::imp>(x));
2091 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::plus>(x));
2095 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::const_multiply>(x));
2099 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::const_multiply_alt>(x));
2103 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::forall>(x));
2107 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::exists>(x));
2111 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::infimum>(x));
2115 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::supremum>(x));
2119 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::sum>(x));
2123 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::must>(x));
2127 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::may>(x));
2131 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::yaled>(x));
2135 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::yaled_timed>(x));
2139 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::delay>(x));
2143 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::delay_timed>(x));
2147 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::variable>(x));
2151 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::nu>(x));
2155 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::mu>(x));
2157 static_cast<Derived&
>(*this).leave(x);
2163template <
typename Derived>
2170template <
template <
class>
class Traverser,
class Derived>
2180 static_cast<Derived&
>(*this).enter(x);
2182 static_cast<Derived&
>(*this).leave(x);
2187 static_cast<Derived&
>(*this).enter(x);
2189 static_cast<Derived&
>(*this).leave(x);
2194 static_cast<Derived&
>(*this).enter(x);
2195 static_cast<Derived&
>(*this).apply(x.
operand());
2196 static_cast<Derived&
>(*this).leave(x);
2201 static_cast<Derived&
>(*this).enter(x);
2202 static_cast<Derived&
>(*this).apply(x.
operand());
2203 static_cast<Derived&
>(*this).leave(x);
2208 static_cast<Derived&
>(*this).enter(x);
2209 static_cast<Derived&
>(*this).apply(x.
left());
2210 static_cast<Derived&
>(*this).apply(x.
right());
2211 static_cast<Derived&
>(*this).leave(x);
2216 static_cast<Derived&
>(*this).enter(x);
2217 static_cast<Derived&
>(*this).apply(x.
left());
2218 static_cast<Derived&
>(*this).apply(x.
right());
2219 static_cast<Derived&
>(*this).leave(x);
2224 static_cast<Derived&
>(*this).enter(x);
2225 static_cast<Derived&
>(*this).apply(x.
left());
2226 static_cast<Derived&
>(*this).apply(x.
right());
2227 static_cast<Derived&
>(*this).leave(x);
2232 static_cast<Derived&
>(*this).enter(x);
2233 static_cast<Derived&
>(*this).apply(x.
left());
2234 static_cast<Derived&
>(*this).apply(x.
right());
2235 static_cast<Derived&
>(*this).leave(x);
2240 static_cast<Derived&
>(*this).enter(x);
2241 static_cast<Derived&
>(*this).apply(x.
right());
2242 static_cast<Derived&
>(*this).leave(x);
2247 static_cast<Derived&
>(*this).enter(x);
2248 static_cast<Derived&
>(*this).apply(x.
left());
2249 static_cast<Derived&
>(*this).leave(x);
2254 static_cast<Derived&
>(*this).enter(x);
2255 static_cast<Derived&
>(*this).apply(x.
body());
2256 static_cast<Derived&
>(*this).leave(x);
2261 static_cast<Derived&
>(*this).enter(x);
2262 static_cast<Derived&
>(*this).apply(x.
body());
2263 static_cast<Derived&
>(*this).leave(x);
2268 static_cast<Derived&
>(*this).enter(x);
2269 static_cast<Derived&
>(*this).apply(x.
body());
2270 static_cast<Derived&
>(*this).leave(x);
2275 static_cast<Derived&
>(*this).enter(x);
2276 static_cast<Derived&
>(*this).apply(x.
body());
2277 static_cast<Derived&
>(*this).leave(x);
2282 static_cast<Derived&
>(*this).enter(x);
2283 static_cast<Derived&
>(*this).apply(x.
body());
2284 static_cast<Derived&
>(*this).leave(x);
2289 static_cast<Derived&
>(*this).enter(x);
2290 static_cast<Derived&
>(*this).apply(x.
operand());
2291 static_cast<Derived&
>(*this).leave(x);
2296 static_cast<Derived&
>(*this).enter(x);
2297 static_cast<Derived&
>(*this).apply(x.
operand());
2298 static_cast<Derived&
>(*this).leave(x);
2303 static_cast<Derived&
>(*this).enter(x);
2305 static_cast<Derived&
>(*this).leave(x);
2310 static_cast<Derived&
>(*this).enter(x);
2312 static_cast<Derived&
>(*this).leave(x);
2317 static_cast<Derived&
>(*this).enter(x);
2319 static_cast<Derived&
>(*this).leave(x);
2324 static_cast<Derived&
>(*this).enter(x);
2326 static_cast<Derived&
>(*this).leave(x);
2331 static_cast<Derived&
>(*this).enter(x);
2333 static_cast<Derived&
>(*this).leave(x);
2338 static_cast<Derived&
>(*this).enter(x);
2339 static_cast<Derived&
>(*this).apply(x.
operand());
2340 static_cast<Derived&
>(*this).leave(x);
2345 static_cast<Derived&
>(*this).enter(x);
2346 static_cast<Derived&
>(*this).apply(x.
operand());
2347 static_cast<Derived&
>(*this).leave(x);
2352 static_cast<Derived&
>(*this).enter(x);
2353 static_cast<Derived&
>(*this).apply(x.
formula());
2354 static_cast<Derived&
>(*this).leave(x);
2359 static_cast<Derived&
>(*this).enter(x);
2362 static_cast<Derived&
>(*this).apply(atermpp::down_cast<data::data_expression>(x));
2366 static_cast<Derived&
>(*this).apply(atermpp::down_cast<data::untyped_data_parameter>(x));
2370 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::true_>(x));
2374 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::false_>(x));
2378 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::not_>(x));
2382 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::minus>(x));
2386 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::and_>(x));
2390 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::or_>(x));
2394 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::imp>(x));
2398 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::plus>(x));
2402 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::const_multiply>(x));
2406 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::const_multiply_alt>(x));
2410 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::forall>(x));
2414 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::exists>(x));
2418 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::infimum>(x));
2422 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::supremum>(x));
2426 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::sum>(x));
2430 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::must>(x));
2434 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::may>(x));
2438 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::yaled>(x));
2442 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::yaled_timed>(x));
2446 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::delay>(x));
2450 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::delay_timed>(x));
2454 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::variable>(x));
2458 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::nu>(x));
2462 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::mu>(x));
2464 static_cast<Derived&
>(*this).leave(x);
2470template <
typename Derived>
2477template <
template <
class>
class Traverser,
class Derived>
2487 static_cast<Derived&
>(*this).enter(x);
2489 static_cast<Derived&
>(*this).leave(x);
2494 static_cast<Derived&
>(*this).enter(x);
2496 static_cast<Derived&
>(*this).leave(x);
2501 static_cast<Derived&
>(*this).enter(x);
2502 static_cast<Derived&
>(*this).apply(x.
operand());
2503 static_cast<Derived&
>(*this).leave(x);
2508 static_cast<Derived&
>(*this).enter(x);
2509 static_cast<Derived&
>(*this).apply(x.
operand());
2510 static_cast<Derived&
>(*this).leave(x);
2515 static_cast<Derived&
>(*this).enter(x);
2516 static_cast<Derived&
>(*this).apply(x.
left());
2517 static_cast<Derived&
>(*this).apply(x.
right());
2518 static_cast<Derived&
>(*this).leave(x);
2523 static_cast<Derived&
>(*this).enter(x);
2524 static_cast<Derived&
>(*this).apply(x.
left());
2525 static_cast<Derived&
>(*this).apply(x.
right());
2526 static_cast<Derived&
>(*this).leave(x);
2531 static_cast<Derived&
>(*this).enter(x);
2532 static_cast<Derived&
>(*this).apply(x.
left());
2533 static_cast<Derived&
>(*this).apply(x.
right());
2534 static_cast<Derived&
>(*this).leave(x);
2539 static_cast<Derived&
>(*this).enter(x);
2540 static_cast<Derived&
>(*this).apply(x.
left());
2541 static_cast<Derived&
>(*this).apply(x.
right());
2542 static_cast<Derived&
>(*this).leave(x);
2547 static_cast<Derived&
>(*this).enter(x);
2548 static_cast<Derived&
>(*this).apply(x.
left());
2549 static_cast<Derived&
>(*this).apply(x.
right());
2550 static_cast<Derived&
>(*this).leave(x);
2555 static_cast<Derived&
>(*this).enter(x);
2556 static_cast<Derived&
>(*this).apply(x.
left());
2557 static_cast<Derived&
>(*this).apply(x.
right());
2558 static_cast<Derived&
>(*this).leave(x);
2563 static_cast<Derived&
>(*this).enter(x);
2564 static_cast<Derived&
>(*this).apply(x.
variables());
2565 static_cast<Derived&
>(*this).apply(x.
body());
2566 static_cast<Derived&
>(*this).leave(x);
2571 static_cast<Derived&
>(*this).enter(x);
2572 static_cast<Derived&
>(*this).apply(x.
variables());
2573 static_cast<Derived&
>(*this).apply(x.
body());
2574 static_cast<Derived&
>(*this).leave(x);
2579 static_cast<Derived&
>(*this).enter(x);
2580 static_cast<Derived&
>(*this).apply(x.
variables());
2581 static_cast<Derived&
>(*this).apply(x.
body());
2582 static_cast<Derived&
>(*this).leave(x);
2587 static_cast<Derived&
>(*this).enter(x);
2588 static_cast<Derived&
>(*this).apply(x.
variables());
2589 static_cast<Derived&
>(*this).apply(x.
body());
2590 static_cast<Derived&
>(*this).leave(x);
2595 static_cast<Derived&
>(*this).enter(x);
2596 static_cast<Derived&
>(*this).apply(x.
variables());
2597 static_cast<Derived&
>(*this).apply(x.
body());
2598 static_cast<Derived&
>(*this).leave(x);
2603 static_cast<Derived&
>(*this).enter(x);
2604 static_cast<Derived&
>(*this).apply(x.
formula());
2605 static_cast<Derived&
>(*this).apply(x.
operand());
2606 static_cast<Derived&
>(*this).leave(x);
2611 static_cast<Derived&
>(*this).enter(x);
2612 static_cast<Derived&
>(*this).apply(x.
formula());
2613 static_cast<Derived&
>(*this).apply(x.
operand());
2614 static_cast<Derived&
>(*this).leave(x);
2619 static_cast<Derived&
>(*this).enter(x);
2621 static_cast<Derived&
>(*this).leave(x);
2626 static_cast<Derived&
>(*this).enter(x);
2627 static_cast<Derived&
>(*this).apply(x.
time_stamp());
2628 static_cast<Derived&
>(*this).leave(x);
2633 static_cast<Derived&
>(*this).enter(x);
2635 static_cast<Derived&
>(*this).leave(x);
2640 static_cast<Derived&
>(*this).enter(x);
2641 static_cast<Derived&
>(*this).apply(x.
time_stamp());
2642 static_cast<Derived&
>(*this).leave(x);
2647 static_cast<Derived&
>(*this).enter(x);
2648 static_cast<Derived&
>(*this).apply(x.
arguments());
2649 static_cast<Derived&
>(*this).leave(x);
2654 static_cast<Derived&
>(*this).enter(x);
2655 static_cast<Derived&
>(*this).apply(x.
assignments());
2656 static_cast<Derived&
>(*this).apply(x.
operand());
2657 static_cast<Derived&
>(*this).leave(x);
2662 static_cast<Derived&
>(*this).enter(x);
2663 static_cast<Derived&
>(*this).apply(x.
assignments());
2664 static_cast<Derived&
>(*this).apply(x.
operand());
2665 static_cast<Derived&
>(*this).leave(x);
2670 static_cast<Derived&
>(*this).enter(x);
2671 static_cast<Derived&
>(*this).apply(x.
formula());
2672 static_cast<Derived&
>(*this).leave(x);
2677 static_cast<Derived&
>(*this).enter(x);
2680 static_cast<Derived&
>(*this).apply(atermpp::down_cast<data::data_expression>(x));
2684 static_cast<Derived&
>(*this).apply(atermpp::down_cast<data::untyped_data_parameter>(x));
2688 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::true_>(x));
2692 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::false_>(x));
2696 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::not_>(x));
2700 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::minus>(x));
2704 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::and_>(x));
2708 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::or_>(x));
2712 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::imp>(x));
2716 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::plus>(x));
2720 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::const_multiply>(x));
2724 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::const_multiply_alt>(x));
2728 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::forall>(x));
2732 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::exists>(x));
2736 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::infimum>(x));
2740 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::supremum>(x));
2744 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::sum>(x));
2748 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::must>(x));
2752 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::may>(x));
2756 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::yaled>(x));
2760 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::yaled_timed>(x));
2764 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::delay>(x));
2768 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::delay_timed>(x));
2772 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::variable>(x));
2776 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::nu>(x));
2780 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::mu>(x));
2782 static_cast<Derived&
>(*this).leave(x);
2788template <
typename Derived>
2795template <
template <
class>
class Traverser,
class Derived>
2805 static_cast<Derived&
>(*this).enter(x);
2807 static_cast<Derived&
>(*this).leave(x);
2812 static_cast<Derived&
>(*this).enter(x);
2814 static_cast<Derived&
>(*this).leave(x);
2819 static_cast<Derived&
>(*this).enter(x);
2820 static_cast<Derived&
>(*this).apply(x.
operand());
2821 static_cast<Derived&
>(*this).leave(x);
2826 static_cast<Derived&
>(*this).enter(x);
2827 static_cast<Derived&
>(*this).apply(x.
operand());
2828 static_cast<Derived&
>(*this).leave(x);
2833 static_cast<Derived&
>(*this).enter(x);
2834 static_cast<Derived&
>(*this).apply(x.
left());
2835 static_cast<Derived&
>(*this).apply(x.
right());
2836 static_cast<Derived&
>(*this).leave(x);
2841 static_cast<Derived&
>(*this).enter(x);
2842 static_cast<Derived&
>(*this).apply(x.
left());
2843 static_cast<Derived&
>(*this).apply(x.
right());
2844 static_cast<Derived&
>(*this).leave(x);
2849 static_cast<Derived&
>(*this).enter(x);
2850 static_cast<Derived&
>(*this).apply(x.
left());
2851 static_cast<Derived&
>(*this).apply(x.
right());
2852 static_cast<Derived&
>(*this).leave(x);
2857 static_cast<Derived&
>(*this).enter(x);
2858 static_cast<Derived&
>(*this).apply(x.
left());
2859 static_cast<Derived&
>(*this).apply(x.
right());
2860 static_cast<Derived&
>(*this).leave(x);
2865 static_cast<Derived&
>(*this).enter(x);
2866 static_cast<Derived&
>(*this).apply(x.
right());
2867 static_cast<Derived&
>(*this).leave(x);
2872 static_cast<Derived&
>(*this).enter(x);
2873 static_cast<Derived&
>(*this).apply(x.
left());
2874 static_cast<Derived&
>(*this).leave(x);
2879 static_cast<Derived&
>(*this).enter(x);
2880 static_cast<Derived&
>(*this).apply(x.
body());
2881 static_cast<Derived&
>(*this).leave(x);
2886 static_cast<Derived&
>(*this).enter(x);
2887 static_cast<Derived&
>(*this).apply(x.
body());
2888 static_cast<Derived&
>(*this).leave(x);
2893 static_cast<Derived&
>(*this).enter(x);
2894 static_cast<Derived&
>(*this).apply(x.
body());
2895 static_cast<Derived&
>(*this).leave(x);
2900 static_cast<Derived&
>(*this).enter(x);
2901 static_cast<Derived&
>(*this).apply(x.
body());
2902 static_cast<Derived&
>(*this).leave(x);
2907 static_cast<Derived&
>(*this).enter(x);
2908 static_cast<Derived&
>(*this).apply(x.
body());
2909 static_cast<Derived&
>(*this).leave(x);
2914 static_cast<Derived&
>(*this).enter(x);
2915 static_cast<Derived&
>(*this).apply(x.
operand());
2916 static_cast<Derived&
>(*this).leave(x);
2921 static_cast<Derived&
>(*this).enter(x);
2922 static_cast<Derived&
>(*this).apply(x.
operand());
2923 static_cast<Derived&
>(*this).leave(x);
2928 static_cast<Derived&
>(*this).enter(x);
2930 static_cast<Derived&
>(*this).leave(x);
2935 static_cast<Derived&
>(*this).enter(x);
2937 static_cast<Derived&
>(*this).leave(x);
2942 static_cast<Derived&
>(*this).enter(x);
2944 static_cast<Derived&
>(*this).leave(x);
2949 static_cast<Derived&
>(*this).enter(x);
2951 static_cast<Derived&
>(*this).leave(x);
2956 static_cast<Derived&
>(*this).enter(x);
2958 static_cast<Derived&
>(*this).leave(x);
2963 static_cast<Derived&
>(*this).enter(x);
2964 static_cast<Derived&
>(*this).apply(x.
operand());
2965 static_cast<Derived&
>(*this).leave(x);
2970 static_cast<Derived&
>(*this).enter(x);
2971 static_cast<Derived&
>(*this).apply(x.
operand());
2972 static_cast<Derived&
>(*this).leave(x);
2977 static_cast<Derived&
>(*this).enter(x);
2978 static_cast<Derived&
>(*this).apply(x.
formula());
2979 static_cast<Derived&
>(*this).leave(x);
2984 static_cast<Derived&
>(*this).enter(x);
2987 static_cast<Derived&
>(*this).apply(atermpp::down_cast<data::data_expression>(x));
2991 static_cast<Derived&
>(*this).apply(atermpp::down_cast<data::untyped_data_parameter>(x));
2995 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::true_>(x));
2999 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::false_>(x));
3003 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::not_>(x));
3007 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::minus>(x));
3011 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::and_>(x));
3015 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::or_>(x));
3019 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::imp>(x));
3023 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::plus>(x));
3027 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::const_multiply>(x));
3031 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::const_multiply_alt>(x));
3035 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::forall>(x));
3039 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::exists>(x));
3043 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::infimum>(x));
3047 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::supremum>(x));
3051 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::sum>(x));
3055 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::must>(x));
3059 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::may>(x));
3063 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::yaled>(x));
3067 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::yaled_timed>(x));
3071 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::delay>(x));
3075 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::delay_timed>(x));
3079 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::variable>(x));
3083 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::nu>(x));
3087 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::mu>(x));
3089 static_cast<Derived&
>(*this).leave(x);
3095template <
typename Derived>
3102template <
template <
class>
class Traverser,
class Derived>
3112 static_cast<Derived&
>(*this).enter(x);
3114 static_cast<Derived&
>(*this).leave(x);
3119 static_cast<Derived&
>(*this).enter(x);
3121 static_cast<Derived&
>(*this).leave(x);
3126 static_cast<Derived&
>(*this).enter(x);
3127 static_cast<Derived&
>(*this).apply(x.
operand());
3128 static_cast<Derived&
>(*this).leave(x);
3133 static_cast<Derived&
>(*this).enter(x);
3134 static_cast<Derived&
>(*this).apply(x.
operand());
3135 static_cast<Derived&
>(*this).leave(x);
3140 static_cast<Derived&
>(*this).enter(x);
3141 static_cast<Derived&
>(*this).apply(x.
left());
3142 static_cast<Derived&
>(*this).apply(x.
right());
3143 static_cast<Derived&
>(*this).leave(x);
3148 static_cast<Derived&
>(*this).enter(x);
3149 static_cast<Derived&
>(*this).apply(x.
left());
3150 static_cast<Derived&
>(*this).apply(x.
right());
3151 static_cast<Derived&
>(*this).leave(x);
3156 static_cast<Derived&
>(*this).enter(x);
3157 static_cast<Derived&
>(*this).apply(x.
left());
3158 static_cast<Derived&
>(*this).apply(x.
right());
3159 static_cast<Derived&
>(*this).leave(x);
3164 static_cast<Derived&
>(*this).enter(x);
3165 static_cast<Derived&
>(*this).apply(x.
left());
3166 static_cast<Derived&
>(*this).apply(x.
right());
3167 static_cast<Derived&
>(*this).leave(x);
3172 static_cast<Derived&
>(*this).enter(x);
3173 static_cast<Derived&
>(*this).apply(x.
left());
3174 static_cast<Derived&
>(*this).apply(x.
right());
3175 static_cast<Derived&
>(*this).leave(x);
3180 static_cast<Derived&
>(*this).enter(x);
3181 static_cast<Derived&
>(*this).apply(x.
left());
3182 static_cast<Derived&
>(*this).apply(x.
right());
3183 static_cast<Derived&
>(*this).leave(x);
3188 static_cast<Derived&
>(*this).enter(x);
3189 static_cast<Derived&
>(*this).apply(x.
variables());
3190 static_cast<Derived&
>(*this).apply(x.
body());
3191 static_cast<Derived&
>(*this).leave(x);
3196 static_cast<Derived&
>(*this).enter(x);
3197 static_cast<Derived&
>(*this).apply(x.
variables());
3198 static_cast<Derived&
>(*this).apply(x.
body());
3199 static_cast<Derived&
>(*this).leave(x);
3204 static_cast<Derived&
>(*this).enter(x);
3205 static_cast<Derived&
>(*this).apply(x.
variables());
3206 static_cast<Derived&
>(*this).apply(x.
body());
3207 static_cast<Derived&
>(*this).leave(x);
3212 static_cast<Derived&
>(*this).enter(x);
3213 static_cast<Derived&
>(*this).apply(x.
variables());
3214 static_cast<Derived&
>(*this).apply(x.
body());
3215 static_cast<Derived&
>(*this).leave(x);
3220 static_cast<Derived&
>(*this).enter(x);
3221 static_cast<Derived&
>(*this).apply(x.
variables());
3222 static_cast<Derived&
>(*this).apply(x.
body());
3223 static_cast<Derived&
>(*this).leave(x);
3228 static_cast<Derived&
>(*this).enter(x);
3229 static_cast<Derived&
>(*this).apply(x.
formula());
3230 static_cast<Derived&
>(*this).apply(x.
operand());
3231 static_cast<Derived&
>(*this).leave(x);
3236 static_cast<Derived&
>(*this).enter(x);
3237 static_cast<Derived&
>(*this).apply(x.
formula());
3238 static_cast<Derived&
>(*this).apply(x.
operand());
3239 static_cast<Derived&
>(*this).leave(x);
3244 static_cast<Derived&
>(*this).enter(x);
3246 static_cast<Derived&
>(*this).leave(x);
3251 static_cast<Derived&
>(*this).enter(x);
3252 static_cast<Derived&
>(*this).apply(x.
time_stamp());
3253 static_cast<Derived&
>(*this).leave(x);
3258 static_cast<Derived&
>(*this).enter(x);
3260 static_cast<Derived&
>(*this).leave(x);
3265 static_cast<Derived&
>(*this).enter(x);
3266 static_cast<Derived&
>(*this).apply(x.
time_stamp());
3267 static_cast<Derived&
>(*this).leave(x);
3272 static_cast<Derived&
>(*this).enter(x);
3273 static_cast<Derived&
>(*this).apply(x.
name());
3274 static_cast<Derived&
>(*this).apply(x.
arguments());
3275 static_cast<Derived&
>(*this).leave(x);
3280 static_cast<Derived&
>(*this).enter(x);
3281 static_cast<Derived&
>(*this).apply(x.
name());
3282 static_cast<Derived&
>(*this).apply(x.
assignments());
3283 static_cast<Derived&
>(*this).apply(x.
operand());
3284 static_cast<Derived&
>(*this).leave(x);
3289 static_cast<Derived&
>(*this).enter(x);
3290 static_cast<Derived&
>(*this).apply(x.
name());
3291 static_cast<Derived&
>(*this).apply(x.
assignments());
3292 static_cast<Derived&
>(*this).apply(x.
operand());
3293 static_cast<Derived&
>(*this).leave(x);
3298 static_cast<Derived&
>(*this).enter(x);
3300 static_cast<Derived&
>(*this).apply(x.
formula());
3301 static_cast<Derived&
>(*this).leave(x);
3306 static_cast<Derived&
>(*this).enter(x);
3309 static_cast<Derived&
>(*this).apply(atermpp::down_cast<data::data_expression>(x));
3313 static_cast<Derived&
>(*this).apply(atermpp::down_cast<data::untyped_data_parameter>(x));
3317 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::true_>(x));
3321 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::false_>(x));
3325 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::not_>(x));
3329 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::minus>(x));
3333 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::and_>(x));
3337 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::or_>(x));
3341 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::imp>(x));
3345 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::plus>(x));
3349 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::const_multiply>(x));
3353 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::const_multiply_alt>(x));
3357 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::forall>(x));
3361 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::exists>(x));
3365 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::infimum>(x));
3369 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::supremum>(x));
3373 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::sum>(x));
3377 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::must>(x));
3381 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::may>(x));
3385 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::yaled>(x));
3389 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::yaled_timed>(x));
3393 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::delay>(x));
3397 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::delay_timed>(x));
3401 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::variable>(x));
3405 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::nu>(x));
3409 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::mu>(x));
3411 static_cast<Derived&
>(*this).leave(x);
3417template <
typename Derived>
3424template <
template <
class>
class Traverser,
class Derived>
3434 static_cast<Derived&
>(*this).enter(x);
3436 static_cast<Derived&
>(*this).leave(x);
3441 static_cast<Derived&
>(*this).enter(x);
3443 static_cast<Derived&
>(*this).leave(x);
3448 static_cast<Derived&
>(*this).enter(x);
3449 static_cast<Derived&
>(*this).apply(x.
operand());
3450 static_cast<Derived&
>(*this).leave(x);
3455 static_cast<Derived&
>(*this).enter(x);
3456 static_cast<Derived&
>(*this).apply(x.
operand());
3457 static_cast<Derived&
>(*this).leave(x);
3462 static_cast<Derived&
>(*this).enter(x);
3463 static_cast<Derived&
>(*this).apply(x.
left());
3464 static_cast<Derived&
>(*this).apply(x.
right());
3465 static_cast<Derived&
>(*this).leave(x);
3470 static_cast<Derived&
>(*this).enter(x);
3471 static_cast<Derived&
>(*this).apply(x.
left());
3472 static_cast<Derived&
>(*this).apply(x.
right());
3473 static_cast<Derived&
>(*this).leave(x);
3478 static_cast<Derived&
>(*this).enter(x);
3479 static_cast<Derived&
>(*this).apply(x.
left());
3480 static_cast<Derived&
>(*this).apply(x.
right());
3481 static_cast<Derived&
>(*this).leave(x);
3486 static_cast<Derived&
>(*this).enter(x);
3487 static_cast<Derived&
>(*this).apply(x.
left());
3488 static_cast<Derived&
>(*this).apply(x.
right());
3489 static_cast<Derived&
>(*this).leave(x);
3494 static_cast<Derived&
>(*this).enter(x);
3495 static_cast<Derived&
>(*this).apply(x.
right());
3496 static_cast<Derived&
>(*this).leave(x);
3501 static_cast<Derived&
>(*this).enter(x);
3502 static_cast<Derived&
>(*this).apply(x.
left());
3503 static_cast<Derived&
>(*this).leave(x);
3508 static_cast<Derived&
>(*this).enter(x);
3509 static_cast<Derived&
>(*this).apply(x.
body());
3510 static_cast<Derived&
>(*this).leave(x);
3515 static_cast<Derived&
>(*this).enter(x);
3516 static_cast<Derived&
>(*this).apply(x.
body());
3517 static_cast<Derived&
>(*this).leave(x);
3522 static_cast<Derived&
>(*this).enter(x);
3523 static_cast<Derived&
>(*this).apply(x.
body());
3524 static_cast<Derived&
>(*this).leave(x);
3529 static_cast<Derived&
>(*this).enter(x);
3530 static_cast<Derived&
>(*this).apply(x.
body());
3531 static_cast<Derived&
>(*this).leave(x);
3536 static_cast<Derived&
>(*this).enter(x);
3537 static_cast<Derived&
>(*this).apply(x.
body());
3538 static_cast<Derived&
>(*this).leave(x);
3543 static_cast<Derived&
>(*this).enter(x);
3544 static_cast<Derived&
>(*this).apply(x.
formula());
3545 static_cast<Derived&
>(*this).apply(x.
operand());
3546 static_cast<Derived&
>(*this).leave(x);
3551 static_cast<Derived&
>(*this).enter(x);
3552 static_cast<Derived&
>(*this).apply(x.
formula());
3553 static_cast<Derived&
>(*this).apply(x.
operand());
3554 static_cast<Derived&
>(*this).leave(x);
3559 static_cast<Derived&
>(*this).enter(x);
3561 static_cast<Derived&
>(*this).leave(x);
3566 static_cast<Derived&
>(*this).enter(x);
3568 static_cast<Derived&
>(*this).leave(x);
3573 static_cast<Derived&
>(*this).enter(x);
3575 static_cast<Derived&
>(*this).leave(x);
3580 static_cast<Derived&
>(*this).enter(x);
3582 static_cast<Derived&
>(*this).leave(x);
3587 static_cast<Derived&
>(*this).enter(x);
3589 static_cast<Derived&
>(*this).leave(x);
3594 static_cast<Derived&
>(*this).enter(x);
3595 static_cast<Derived&
>(*this).apply(x.
operand());
3596 static_cast<Derived&
>(*this).leave(x);
3601 static_cast<Derived&
>(*this).enter(x);
3602 static_cast<Derived&
>(*this).apply(x.
operand());
3603 static_cast<Derived&
>(*this).leave(x);
3608 static_cast<Derived&
>(*this).enter(x);
3609 static_cast<Derived&
>(*this).apply(x.
formula());
3610 static_cast<Derived&
>(*this).leave(x);
3615 static_cast<Derived&
>(*this).enter(x);
3618 static_cast<Derived&
>(*this).apply(atermpp::down_cast<data::data_expression>(x));
3622 static_cast<Derived&
>(*this).apply(atermpp::down_cast<data::untyped_data_parameter>(x));
3626 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::true_>(x));
3630 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::false_>(x));
3634 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::not_>(x));
3638 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::minus>(x));
3642 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::and_>(x));
3646 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::or_>(x));
3650 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::imp>(x));
3654 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::plus>(x));
3658 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::const_multiply>(x));
3662 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::const_multiply_alt>(x));
3666 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::forall>(x));
3670 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::exists>(x));
3674 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::infimum>(x));
3678 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::supremum>(x));
3682 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::sum>(x));
3686 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::must>(x));
3690 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::may>(x));
3694 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::yaled>(x));
3698 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::yaled_timed>(x));
3702 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::delay>(x));
3706 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::delay_timed>(x));
3710 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::variable>(x));
3714 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::nu>(x));
3718 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::mu>(x));
3720 static_cast<Derived&
>(*this).leave(x);
3726template <
typename Derived>
3733template <
template <
class>
class Traverser,
class Derived>
3743 static_cast<Derived&
>(*this).enter(x);
3745 static_cast<Derived&
>(*this).leave(x);
3750 static_cast<Derived&
>(*this).enter(x);
3752 static_cast<Derived&
>(*this).leave(x);
3757 static_cast<Derived&
>(*this).enter(x);
3758 static_cast<Derived&
>(*this).apply(x.
operand());
3759 static_cast<Derived&
>(*this).leave(x);
3764 static_cast<Derived&
>(*this).enter(x);
3765 static_cast<Derived&
>(*this).apply(x.
operand());
3766 static_cast<Derived&
>(*this).leave(x);
3771 static_cast<Derived&
>(*this).enter(x);
3772 static_cast<Derived&
>(*this).apply(x.
left());
3773 static_cast<Derived&
>(*this).apply(x.
right());
3774 static_cast<Derived&
>(*this).leave(x);
3779 static_cast<Derived&
>(*this).enter(x);
3780 static_cast<Derived&
>(*this).apply(x.
left());
3781 static_cast<Derived&
>(*this).apply(x.
right());
3782 static_cast<Derived&
>(*this).leave(x);
3787 static_cast<Derived&
>(*this).enter(x);
3788 static_cast<Derived&
>(*this).apply(x.
left());
3789 static_cast<Derived&
>(*this).apply(x.
right());
3790 static_cast<Derived&
>(*this).leave(x);
3795 static_cast<Derived&
>(*this).enter(x);
3796 static_cast<Derived&
>(*this).apply(x.
left());
3797 static_cast<Derived&
>(*this).apply(x.
right());
3798 static_cast<Derived&
>(*this).leave(x);
3803 static_cast<Derived&
>(*this).enter(x);
3804 static_cast<Derived&
>(*this).apply(x.
right());
3805 static_cast<Derived&
>(*this).leave(x);
3810 static_cast<Derived&
>(*this).enter(x);
3811 static_cast<Derived&
>(*this).apply(x.
left());
3812 static_cast<Derived&
>(*this).leave(x);
3817 static_cast<Derived&
>(*this).enter(x);
3818 static_cast<Derived&
>(*this).apply(x.
body());
3819 static_cast<Derived&
>(*this).leave(x);
3824 static_cast<Derived&
>(*this).enter(x);
3825 static_cast<Derived&
>(*this).apply(x.
body());
3826 static_cast<Derived&
>(*this).leave(x);
3831 static_cast<Derived&
>(*this).enter(x);
3832 static_cast<Derived&
>(*this).apply(x.
body());
3833 static_cast<Derived&
>(*this).leave(x);
3838 static_cast<Derived&
>(*this).enter(x);
3839 static_cast<Derived&
>(*this).apply(x.
body());
3840 static_cast<Derived&
>(*this).leave(x);
3845 static_cast<Derived&
>(*this).enter(x);
3846 static_cast<Derived&
>(*this).apply(x.
body());
3847 static_cast<Derived&
>(*this).leave(x);
3852 static_cast<Derived&
>(*this).enter(x);
3853 static_cast<Derived&
>(*this).apply(x.
formula());
3854 static_cast<Derived&
>(*this).apply(x.
operand());
3855 static_cast<Derived&
>(*this).leave(x);
3860 static_cast<Derived&
>(*this).enter(x);
3861 static_cast<Derived&
>(*this).apply(x.
formula());
3862 static_cast<Derived&
>(*this).apply(x.
operand());
3863 static_cast<Derived&
>(*this).leave(x);
3868 static_cast<Derived&
>(*this).enter(x);
3870 static_cast<Derived&
>(*this).leave(x);
3875 static_cast<Derived&
>(*this).enter(x);
3877 static_cast<Derived&
>(*this).leave(x);
3882 static_cast<Derived&
>(*this).enter(x);
3884 static_cast<Derived&
>(*this).leave(x);
3889 static_cast<Derived&
>(*this).enter(x);
3891 static_cast<Derived&
>(*this).leave(x);
3896 static_cast<Derived&
>(*this).enter(x);
3898 static_cast<Derived&
>(*this).leave(x);
3903 static_cast<Derived&
>(*this).enter(x);
3904 static_cast<Derived&
>(*this).apply(x.
operand());
3905 static_cast<Derived&
>(*this).leave(x);
3910 static_cast<Derived&
>(*this).enter(x);
3911 static_cast<Derived&
>(*this).apply(x.
operand());
3912 static_cast<Derived&
>(*this).leave(x);
3917 static_cast<Derived&
>(*this).enter(x);
3919 static_cast<Derived&
>(*this).apply(x.
formula());
3920 static_cast<Derived&
>(*this).leave(x);
3925 static_cast<Derived&
>(*this).enter(x);
3928 static_cast<Derived&
>(*this).apply(atermpp::down_cast<data::data_expression>(x));
3932 static_cast<Derived&
>(*this).apply(atermpp::down_cast<data::untyped_data_parameter>(x));
3936 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::true_>(x));
3940 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::false_>(x));
3944 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::not_>(x));
3948 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::minus>(x));
3952 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::and_>(x));
3956 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::or_>(x));
3960 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::imp>(x));
3964 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::plus>(x));
3968 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::const_multiply>(x));
3972 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::const_multiply_alt>(x));
3976 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::forall>(x));
3980 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::exists>(x));
3984 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::infimum>(x));
3988 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::supremum>(x));
3992 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::sum>(x));
3996 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::must>(x));
4000 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::may>(x));
4004 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::yaled>(x));
4008 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::yaled_timed>(x));
4012 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::delay>(x));
4016 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::delay_timed>(x));
4020 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::variable>(x));
4024 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::nu>(x));
4028 static_cast<Derived&
>(*this).apply(atermpp::down_cast<state_formulas::mu>(x));
4030 static_cast<Derived&
>(*this).leave(x);
4036template <
typename Derived>
add your file description here.
bool is_data_expression(const atermpp::aterm &x)
Test for a data_expression expression.
bool is_untyped_data_parameter(const atermpp::aterm &x)
bool is_untyped_multi_action(const atermpp::aterm &x)
A class that takes a linear process specification and checks all tau-summands of that LPS for conflue...
expression traverser that visits all sub expressions
void enter(Expression const &)
void apply(const T &x, typename atermpp::disable_if_container< T >::type *=nullptr)
void leave(Expression const &)