mCRL2
Loading...
Searching...
No Matches
pos1.h
Go to the documentation of this file.
1// Author(s): Jeroen Keiren
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//
14
15#ifndef MCRL2_DATA_POS1_H
16#define MCRL2_DATA_POS1_H
17
18#include "functional" // std::function
25#include "mcrl2/data/standard.h"
26#include "mcrl2/data/bool.h"
27
28namespace mcrl2 {
29
30 namespace data {
31
33 namespace sort_pos {
34
35 inline
37 {
39 return pos_name;
40 }
41
44 inline
45 const basic_sort& pos()
46 {
48 return pos;
49 }
50
54 inline
55 bool is_pos(const sort_expression& e)
56 {
57 if (is_basic_sort(e))
58 {
59 return basic_sort(e) == pos();
60 }
61 return false;
62 }
63
64
67 inline
69 {
71 return c1_name;
72 }
73
75
77 inline
79 {
80 static function_symbol c1(c1_name(), pos());
81 return c1;
82 }
83
87 inline
89 {
90 if (is_function_symbol(e))
91 {
92 return atermpp::down_cast<function_symbol>(e) == c1();
93 }
94 return false;
95 }
96
99 inline
101 {
103 return cdub_name;
104 }
105
107
109 inline
111 {
113 return cdub;
114 }
115
119 inline
121 {
122 if (is_function_symbol(e))
123 {
124 return atermpp::down_cast<function_symbol>(e) == cdub();
125 }
126 return false;
127 }
128
130
134 inline
136 {
137 return sort_pos::cdub()(arg0, arg1);
138 }
139
142
145 inline
147 {
148 make_application(result, sort_pos::cdub(),arg0, arg1);
149 }
150
155 inline
157 {
158 return is_application(e) && is_cdub_function_symbol(atermpp::down_cast<application>(e).head());
159 }
162 inline
164 {
166 result.push_back(sort_pos::c1());
167 result.push_back(sort_pos::cdub());
168
169 return result;
170 }
173 inline
175 {
177 result.push_back(sort_pos::c1());
178 result.push_back(sort_pos::cdub());
179
180 return result;
181 }
182 // The typedef is the sort that maps a function symbol to an function that rewrites it as well as a string of a function that can be used to implement it
183 typedef std::map<function_symbol,std::pair<std::function<void(data_expression&, const data_expression&)>, std::string> > implementation_map;
186 inline
188 {
189 implementation_map result;
190 return result;
191 }
192
195 inline
197 {
199 return maximum_name;
200 }
201
203
205 inline
207 {
209 return maximum;
210 }
211
215 inline
217 {
218 if (is_function_symbol(e))
219 {
220 return atermpp::down_cast<function_symbol>(e) == maximum();
221 }
222 return false;
223 }
224
226
230 inline
232 {
233 return sort_pos::maximum()(arg0, arg1);
234 }
235
238
241 inline
243 {
244 make_application(result, sort_pos::maximum(),arg0, arg1);
245 }
246
251 inline
253 {
254 return is_application(e) && is_maximum_function_symbol(atermpp::down_cast<application>(e).head());
255 }
256
259 inline
261 {
263 return minimum_name;
264 }
265
267
269 inline
271 {
273 return minimum;
274 }
275
279 inline
281 {
282 if (is_function_symbol(e))
283 {
284 return atermpp::down_cast<function_symbol>(e) == minimum();
285 }
286 return false;
287 }
288
290
294 inline
296 {
297 return sort_pos::minimum()(arg0, arg1);
298 }
299
302
305 inline
307 {
308 make_application(result, sort_pos::minimum(),arg0, arg1);
309 }
310
315 inline
317 {
318 return is_application(e) && is_minimum_function_symbol(atermpp::down_cast<application>(e).head());
319 }
320
323 inline
325 {
327 return succ_name;
328 }
329
331
333 inline
335 {
337 return succ;
338 }
339
343 inline
345 {
346 if (is_function_symbol(e))
347 {
348 return atermpp::down_cast<function_symbol>(e) == succ();
349 }
350 return false;
351 }
352
354
357 inline
359 {
360 return sort_pos::succ()(arg0);
361 }
362
365
367 inline
368 void make_succ(data_expression& result, const data_expression& arg0)
369 {
370 make_application(result, sort_pos::succ(),arg0);
371 }
372
377 inline
379 {
380 return is_application(e) && is_succ_function_symbol(atermpp::down_cast<application>(e).head());
381 }
382
385 inline
387 {
390 }
391
393
395 inline
397 {
399 return pos_predecessor;
400 }
401
405 inline
407 {
408 if (is_function_symbol(e))
409 {
410 return atermpp::down_cast<function_symbol>(e) == pos_predecessor();
411 }
412 return false;
413 }
414
416
419 inline
421 {
422 return sort_pos::pos_predecessor()(arg0);
423 }
424
427
429 inline
431 {
433 }
434
439 inline
441 {
442 return is_application(e) && is_pos_predecessor_function_symbol(atermpp::down_cast<application>(e).head());
443 }
444
447 inline
449 {
451 return plus_name;
452 }
453
455
457 inline
459 {
461 return plus;
462 }
463
467 inline
469 {
470 if (is_function_symbol(e))
471 {
472 return atermpp::down_cast<function_symbol>(e) == plus();
473 }
474 return false;
475 }
476
478
482 inline
484 {
485 return sort_pos::plus()(arg0, arg1);
486 }
487
490
493 inline
495 {
496 make_application(result, sort_pos::plus(),arg0, arg1);
497 }
498
503 inline
505 {
506 return is_application(e) && is_plus_function_symbol(atermpp::down_cast<application>(e).head());
507 }
508
511 inline
513 {
515 return add_with_carry_name;
516 }
517
519
521 inline
523 {
525 return add_with_carry;
526 }
527
531 inline
533 {
534 if (is_function_symbol(e))
535 {
536 return atermpp::down_cast<function_symbol>(e) == add_with_carry();
537 }
538 return false;
539 }
540
542
547 inline
549 {
550 return sort_pos::add_with_carry()(arg0, arg1, arg2);
551 }
552
555
559 inline
561 {
563 }
564
569 inline
571 {
572 return is_application(e) && is_add_with_carry_function_symbol(atermpp::down_cast<application>(e).head());
573 }
574
577 inline
579 {
581 return times_name;
582 }
583
585
587 inline
589 {
591 return times;
592 }
593
597 inline
599 {
600 if (is_function_symbol(e))
601 {
602 return atermpp::down_cast<function_symbol>(e) == times();
603 }
604 return false;
605 }
606
608
612 inline
614 {
615 return sort_pos::times()(arg0, arg1);
616 }
617
620
623 inline
625 {
626 make_application(result, sort_pos::times(),arg0, arg1);
627 }
628
633 inline
635 {
636 return is_application(e) && is_times_function_symbol(atermpp::down_cast<application>(e).head());
637 }
638
641 inline
643 {
645 return powerlog2_pos_name;
646 }
647
649
651 inline
653 {
655 return powerlog2_pos;
656 }
657
661 inline
663 {
664 if (is_function_symbol(e))
665 {
666 return atermpp::down_cast<function_symbol>(e) == powerlog2_pos();
667 }
668 return false;
669 }
670
672
675 inline
677 {
678 return sort_pos::powerlog2_pos()(arg0);
679 }
680
683
685 inline
687 {
689 }
690
695 inline
697 {
698 return is_application(e) && is_powerlog2_pos_function_symbol(atermpp::down_cast<application>(e).head());
699 }
702 inline
704 {
706 result.push_back(sort_pos::maximum());
707 result.push_back(sort_pos::minimum());
708 result.push_back(sort_pos::succ());
709 result.push_back(sort_pos::pos_predecessor());
710 result.push_back(sort_pos::plus());
711 result.push_back(sort_pos::add_with_carry());
712 result.push_back(sort_pos::times());
713 result.push_back(sort_pos::powerlog2_pos());
714 return result;
715 }
716
719 inline
721 {
724 {
725 result.push_back(f);
726 }
727 return result;
728 }
729
732 inline
734 {
736 result.push_back(sort_pos::maximum());
737 result.push_back(sort_pos::minimum());
738 result.push_back(sort_pos::succ());
739 result.push_back(sort_pos::pos_predecessor());
740 result.push_back(sort_pos::plus());
741 result.push_back(sort_pos::add_with_carry());
742 result.push_back(sort_pos::times());
743 result.push_back(sort_pos::powerlog2_pos());
744 return result;
745 }
746
747
748 // The typedef is the sort that maps a function symbol to an function that rewrites it as well as a string of a function that can be used to implement it
749 typedef std::map<function_symbol,std::pair<std::function<void(data_expression&, const data_expression&)>, std::string> > implementation_map;
752 inline
754 {
755 implementation_map result;
756 return result;
757 }
763 inline
765 {
767 return atermpp::down_cast<application>(e)[0];
768 }
769
775 inline
777 {
779 return atermpp::down_cast<application>(e)[1];
780 }
781
787 inline
789 {
791 return atermpp::down_cast<application>(e)[0];
792 }
793
799 inline
801 {
803 return atermpp::down_cast<application>(e)[0];
804 }
805
811 inline
813 {
815 return atermpp::down_cast<application>(e)[1];
816 }
817
823 inline
825 {
827 return atermpp::down_cast<application>(e)[2];
828 }
829
832 inline
834 {
835 variable vb("b",sort_bool::bool_());
836 variable vc("c",sort_bool::bool_());
837 variable vp("p",pos());
838 variable vq("q",pos());
839 variable vp1("p1",pos());
840 variable vq1("q1",pos());
841
843 result.push_back(data_equation(variable_list({vb, vp}), equal_to(c1(), cdub(vb, vp)), sort_bool::false_()));
844 result.push_back(data_equation(variable_list({vb, vp}), equal_to(cdub(vb, vp), c1()), sort_bool::false_()));
845 result.push_back(data_equation(variable_list({vb, vp, vq}), equal_to(cdub(vb, vp), cdub(vb, vq)), equal_to(vp, vq)));
846 result.push_back(data_equation(variable_list({vp, vq}), equal_to(cdub(sort_bool::false_(), vp), cdub(sort_bool::true_(), vq)), sort_bool::false_()));
847 result.push_back(data_equation(variable_list({vp, vq}), equal_to(cdub(sort_bool::true_(), vp), cdub(sort_bool::false_(), vq)), sort_bool::false_()));
848 result.push_back(data_equation(variable_list({vp}), equal_to(succ(vp), c1()), sort_bool::false_()));
849 result.push_back(data_equation(variable_list({vq}), equal_to(c1(), succ(vq)), sort_bool::false_()));
850 result.push_back(data_equation(variable_list({vc, vp, vq}), equal_to(succ(vp), cdub(vc, vq)), equal_to(vp, pos_predecessor(cdub(vc, vq)))));
851 result.push_back(data_equation(variable_list({vb, vp, vq}), equal_to(cdub(vb, vp), succ(vq)), equal_to(pos_predecessor(cdub(vb, vp)), vq)));
852 result.push_back(data_equation(variable_list({vp}), less(vp, c1()), sort_bool::false_()));
853 result.push_back(data_equation(variable_list({vb, vp}), less(c1(), cdub(vb, vp)), sort_bool::true_()));
854 result.push_back(data_equation(variable_list({vb, vc, vp, vq}), less(cdub(vb, vp), cdub(vc, vq)), if_(sort_bool::implies(vc, vb), less(vp, vq), less_equal(vp, vq))));
855 result.push_back(data_equation(variable_list({vc, vp, vq}), less(succ(vp), cdub(vc, vq)), less(vp, pos_predecessor(cdub(vc, vq)))));
856 result.push_back(data_equation(variable_list({vb, vp, vq}), less(cdub(vb, vp), succ(vq)), less_equal(cdub(vb, vp), vq)));
857 result.push_back(data_equation(variable_list({vq}), less(c1(), succ(vq)), sort_bool::true_()));
858 result.push_back(data_equation(variable_list({vp}), less_equal(c1(), vp), sort_bool::true_()));
859 result.push_back(data_equation(variable_list({vb, vp}), less_equal(cdub(vb, vp), c1()), sort_bool::false_()));
860 result.push_back(data_equation(variable_list({vb, vc, vp, vq}), less_equal(cdub(vb, vp), cdub(vc, vq)), if_(sort_bool::implies(vb, vc), less_equal(vp, vq), less(vp, vq))));
861 result.push_back(data_equation(variable_list({vc, vp, vq}), less_equal(succ(vp), cdub(vc, vq)), less(vp, cdub(vc, vq))));
862 result.push_back(data_equation(variable_list({vb, vp, vq}), less_equal(cdub(vb, vp), succ(vq)), less_equal(pos_predecessor(cdub(vb, vp)), vq)));
863 result.push_back(data_equation(variable_list({vp}), less_equal(succ(vp), c1()), sort_bool::false_()));
864 result.push_back(data_equation(variable_list({vp, vq}), maximum(vp, vq), if_(less_equal(vp, vq), vq, vp)));
865 result.push_back(data_equation(variable_list({vp, vq}), minimum(vp, vq), if_(less_equal(vp, vq), vp, vq)));
866 result.push_back(data_equation(variable_list(), succ(c1()), cdub(sort_bool::false_(), c1())));
867 result.push_back(data_equation(variable_list({vp}), succ(cdub(sort_bool::false_(), vp)), cdub(sort_bool::true_(), vp)));
868 result.push_back(data_equation(variable_list({vp}), succ(cdub(sort_bool::true_(), vp)), cdub(sort_bool::false_(), succ(vp))));
869 result.push_back(data_equation(variable_list(), pos_predecessor(c1()), c1()));
870 result.push_back(data_equation(variable_list(), pos_predecessor(cdub(sort_bool::false_(), c1())), c1()));
871 result.push_back(data_equation(variable_list({vb, vp}), pos_predecessor(cdub(sort_bool::false_(), cdub(vb, vp))), cdub(sort_bool::true_(), pos_predecessor(cdub(vb, vp)))));
873 result.push_back(data_equation(variable_list({vp, vq}), plus(vp, vq), add_with_carry(sort_bool::false_(), vp, vq)));
874 result.push_back(data_equation(variable_list({vp}), add_with_carry(sort_bool::false_(), c1(), vp), succ(vp)));
875 result.push_back(data_equation(variable_list({vp}), add_with_carry(sort_bool::true_(), c1(), vp), succ(succ(vp))));
876 result.push_back(data_equation(variable_list({vp}), add_with_carry(sort_bool::false_(), vp, c1()), succ(vp)));
877 result.push_back(data_equation(variable_list({vp}), add_with_carry(sort_bool::true_(), vp, c1()), succ(succ(vp))));
878 result.push_back(data_equation(variable_list({vb, vc, vp, vq}), add_with_carry(vb, cdub(vc, vp), cdub(vc, vq)), cdub(vb, add_with_carry(vc, vp, vq))));
879 result.push_back(data_equation(variable_list({vb, vp, vq}), add_with_carry(vb, cdub(sort_bool::false_(), vp), cdub(sort_bool::true_(), vq)), cdub(sort_bool::not_(vb), add_with_carry(vb, vp, vq))));
880 result.push_back(data_equation(variable_list({vb, vp, vq}), add_with_carry(vb, cdub(sort_bool::true_(), vp), cdub(sort_bool::false_(), vq)), cdub(sort_bool::not_(vb), add_with_carry(vb, vp, vq))));
881 result.push_back(data_equation(variable_list({vp}), times(c1(), vp), vp));
882 result.push_back(data_equation(variable_list({vp}), times(vp, c1()), vp));
883 result.push_back(data_equation(variable_list({vp, vq}), times(cdub(sort_bool::false_(), vp), vq), cdub(sort_bool::false_(), times(vp, vq))));
884 result.push_back(data_equation(variable_list({vp, vq}), times(vp, cdub(sort_bool::false_(), vq)), cdub(sort_bool::false_(), times(vp, vq))));
886 result.push_back(data_equation(variable_list(), powerlog2_pos(c1()), c1()));
887 result.push_back(data_equation(variable_list({vb}), powerlog2_pos(cdub(vb, c1())), c1()));
888 result.push_back(data_equation(variable_list({vb, vc, vp}), powerlog2_pos(cdub(vb, cdub(vc, vp))), cdub(sort_bool::false_(), powerlog2_pos(vp))));
889 return result;
890 }
891
892 } // namespace sort_pos
893
894 } // namespace data
895
896} // namespace mcrl2
897
898#endif // MCRL2_DATA_POS1_H
The class application.
The class basic_sort.
The standard sort bool_.
Term containing a string.
An application of a data expression to a number of arguments.
\brief A basic sort
Definition basic_sort.h:26
\brief A data equation
\brief A function symbol
\brief A sort expression
\brief A data variable
Definition variable.h:28
The class function symbol.
The class data_equation.
Exception classes for use in libraries and tools.
The class function_sort.
atermpp::aterm_string identifier_string
String type of the LPS library. Identifier strings are represented internally as ATerms.
const basic_sort & bool_()
Constructor for sort expression Bool.
Definition bool.h:44
const function_symbol & implies()
Constructor for function symbol =>.
Definition bool.h:363
const function_symbol & false_()
Constructor for function symbol false.
Definition bool.h:109
const function_symbol & not_()
Constructor for function symbol !.
Definition bool.h:173
const function_symbol & true_()
Constructor for function symbol true.
Definition bool.h:77
void make_powerlog2_pos(data_expression &result, const data_expression &arg0)
Make an application of function symbol @powerlog2.
Definition pos1.h:686
bool is_pos_predecessor_function_symbol(const atermpp::aterm &e)
Recogniser for function @pospred.
Definition pos1.h:406
bool is_add_with_carry_function_symbol(const atermpp::aterm &e)
Recogniser for function @addc.
Definition pos1.h:532
const data_expression & arg(const data_expression &e)
Function for projecting out argument. arg from an application.
Definition pos1.h:788
void make_add_with_carry(data_expression &result, const data_expression &arg0, const data_expression &arg1, const data_expression &arg2)
Make an application of function symbol @addc.
Definition pos1.h:560
void make_times(data_expression &result, const data_expression &arg0, const data_expression &arg1)
Make an application of function symbol *.
Definition pos1.h:624
bool is_cdub_function_symbol(const atermpp::aterm &e)
Recogniser for function @cDub.
Definition pos1.h:120
bool is_maximum_function_symbol(const atermpp::aterm &e)
Recogniser for function max.
Definition pos1.h:216
implementation_map pos_cpp_implementable_mappings()
Give all system defined mappings that are to be implemented in C++ code for pos.
Definition pos1.h:753
void make_maximum(data_expression &result, const data_expression &arg0, const data_expression &arg1)
Make an application of function symbol max.
Definition pos1.h:242
const function_symbol & powerlog2_pos()
Constructor for function symbol @powerlog2.
Definition pos1.h:652
bool is_pos(const sort_expression &e)
Recogniser for sort expression Pos.
Definition pos1.h:55
const data_expression & arg3(const data_expression &e)
Function for projecting out argument. arg3 from an application.
Definition pos1.h:824
const function_symbol & c1()
Constructor for function symbol @c1.
Definition pos1.h:78
void make_succ(data_expression &result, const data_expression &arg0)
Make an application of function symbol succ.
Definition pos1.h:368
const function_symbol & add_with_carry()
Constructor for function symbol @addc.
Definition pos1.h:522
const data_expression & arg1(const data_expression &e)
Function for projecting out argument. arg1 from an application.
Definition pos1.h:800
bool is_cdub_application(const atermpp::aterm &e)
Recogniser for application of @cDub.
Definition pos1.h:156
void make_minimum(data_expression &result, const data_expression &arg0, const data_expression &arg1)
Make an application of function symbol min.
Definition pos1.h:306
function_symbol_vector pos_generate_functions_code()
Give all system defined mappings for pos.
Definition pos1.h:703
const function_symbol & pos_predecessor()
Constructor for function symbol @pospred.
Definition pos1.h:396
const core::identifier_string & cdub_name()
Generate identifier @cDub.
Definition pos1.h:100
const core::identifier_string & c1_name()
Generate identifier @c1.
Definition pos1.h:68
const function_symbol & plus()
Constructor for function symbol +.
Definition pos1.h:458
bool is_add_with_carry_application(const atermpp::aterm &e)
Recogniser for application of @addc.
Definition pos1.h:570
const function_symbol & maximum()
Constructor for function symbol max.
Definition pos1.h:206
const core::identifier_string & powerlog2_pos_name()
Generate identifier @powerlog2.
Definition pos1.h:642
bool is_powerlog2_pos_application(const atermpp::aterm &e)
Recogniser for application of @powerlog2.
Definition pos1.h:696
const core::identifier_string & times_name()
Generate identifier *.
Definition pos1.h:578
function_symbol_vector pos_mCRL2_usable_constructors()
Give all defined constructors which can be used in mCRL2 specs for pos.
Definition pos1.h:174
bool is_c1_function_symbol(const atermpp::aterm &e)
Recogniser for function @c1.
Definition pos1.h:88
const data_expression & arg2(const data_expression &e)
Function for projecting out argument. arg2 from an application.
Definition pos1.h:812
const core::identifier_string & plus_name()
Generate identifier +.
Definition pos1.h:448
bool is_minimum_function_symbol(const atermpp::aterm &e)
Recogniser for function min.
Definition pos1.h:280
const function_symbol & cdub()
Constructor for function symbol @cDub.
Definition pos1.h:110
const data_expression & right(const data_expression &e)
Function for projecting out argument. right from an application.
Definition pos1.h:776
implementation_map pos_cpp_implementable_constructors()
Give all system defined constructors which have an implementation in C++ and not in rewrite rules for...
Definition pos1.h:187
bool is_times_application(const atermpp::aterm &e)
Recogniser for application of *.
Definition pos1.h:634
bool is_times_function_symbol(const atermpp::aterm &e)
Recogniser for function *.
Definition pos1.h:598
void make_plus(data_expression &result, const data_expression &arg0, const data_expression &arg1)
Make an application of function symbol +.
Definition pos1.h:494
const core::identifier_string & add_with_carry_name()
Generate identifier @addc.
Definition pos1.h:512
const function_symbol & times()
Constructor for function symbol *.
Definition pos1.h:588
bool is_succ_function_symbol(const atermpp::aterm &e)
Recogniser for function succ.
Definition pos1.h:344
bool is_plus_function_symbol(const atermpp::aterm &e)
Recogniser for function +.
Definition pos1.h:468
const core::identifier_string & minimum_name()
Generate identifier min.
Definition pos1.h:260
bool is_minimum_application(const atermpp::aterm &e)
Recogniser for application of min.
Definition pos1.h:316
data_equation_vector pos_generate_equations_code()
Give all system defined equations for pos.
Definition pos1.h:833
bool is_powerlog2_pos_function_symbol(const atermpp::aterm &e)
Recogniser for function @powerlog2.
Definition pos1.h:662
bool is_succ_application(const atermpp::aterm &e)
Recogniser for application of succ.
Definition pos1.h:378
const basic_sort & pos()
Constructor for sort expression Pos.
Definition pos1.h:45
const core::identifier_string & maximum_name()
Generate identifier max.
Definition pos1.h:196
const core::identifier_string & pos_name()
Definition pos1.h:36
const function_symbol & minimum()
Constructor for function symbol min.
Definition pos1.h:270
const data_expression & left(const data_expression &e)
Function for projecting out argument. left from an application.
Definition pos1.h:764
function_symbol_vector pos_generate_constructors_and_functions_code()
Give all system defined mappings and constructors for pos.
Definition pos1.h:720
function_symbol_vector pos_generate_constructors_code()
Give all system defined constructors for pos.
Definition pos1.h:163
bool is_maximum_application(const atermpp::aterm &e)
Recogniser for application of max.
Definition pos1.h:252
bool is_pos_predecessor_application(const atermpp::aterm &e)
Recogniser for application of @pospred.
Definition pos1.h:440
std::map< function_symbol, std::pair< std::function< void(data_expression &, const data_expression &)>, std::string > > implementation_map
Definition pos1.h:183
bool is_plus_application(const atermpp::aterm &e)
Recogniser for application of +.
Definition pos1.h:504
const function_symbol & succ()
Constructor for function symbol succ.
Definition pos1.h:334
void make_cdub(data_expression &result, const data_expression &arg0, const data_expression &arg1)
Make an application of function symbol @cDub.
Definition pos1.h:146
const core::identifier_string & pos_predecessor_name()
Generate identifier @pospred.
Definition pos1.h:386
function_symbol_vector pos_mCRL2_usable_mappings()
Give all system defined mappings that can be used in mCRL2 specs for pos.
Definition pos1.h:733
const core::identifier_string & succ_name()
Generate identifier succ.
Definition pos1.h:324
void make_pos_predecessor(data_expression &result, const data_expression &arg0)
Make an application of function symbol @pospred.
Definition pos1.h:430
function_symbol less_equal(const sort_expression &s)
Constructor for function symbol <=.
Definition standard.h:277
function_symbol less(const sort_expression &s)
Constructor for function symbol <.
Definition standard.h:240
std::vector< data_equation > data_equation_vector
\brief vector of data_equations
function_sort make_function_sort_(const sort_expression &dom1, const sort_expression &codomain)
Convenience constructor for function sort with domain size 1.
bool is_function_symbol(const atermpp::aterm &x)
Returns true if the term t is a function symbol.
bool is_basic_sort(const atermpp::aterm &x)
Returns true if the term t is a basic sort.
atermpp::term_list< variable > variable_list
\brief list of variables
function_symbol equal_to(const sort_expression &s)
Constructor for function symbol ==.
Definition standard.h:126
bool is_application(const atermpp::aterm &x)
Returns true if the term t is an application.
std::vector< function_symbol > function_symbol_vector
\brief vector of function_symbols
function_symbol if_(const sort_expression &s)
Constructor for function symbol if.
Definition standard.h:200
void make_application(atermpp::aterm &result)
Make function for an application.
A class that takes a linear process specification and checks all tau-summands of that LPS for conflue...
Definition indexed_set.h:72
Standard functions that are available for all sorts.