Perform theory widening eagerly (#4044)
[cvc5.git] / src / theory / theory_id.cpp
1 #include "theory/theory_id.h"
2
3 namespace CVC4 {
4 namespace theory {
5
6 TheoryId& operator++(TheoryId& id)
7 {
8 return id = static_cast<TheoryId>(static_cast<int>(id) + 1);
9 }
10
11 std::ostream& operator<<(std::ostream& out, TheoryId theoryId)
12 {
13 switch (theoryId)
14 {
15 case THEORY_BUILTIN: out << "THEORY_BUILTIN"; break;
16 case THEORY_BOOL: out << "THEORY_BOOL"; break;
17 case THEORY_UF: out << "THEORY_UF"; break;
18 case THEORY_ARITH: out << "THEORY_ARITH"; break;
19 case THEORY_BV: out << "THEORY_BV"; break;
20 case THEORY_FP: out << "THEORY_FP"; break;
21 case THEORY_ARRAYS: out << "THEORY_ARRAYS"; break;
22 case THEORY_DATATYPES: out << "THEORY_DATATYPES"; break;
23 case THEORY_SAT_SOLVER: out << "THEORY_SAT_SOLVER"; break;
24 case THEORY_SEP: out << "THEORY_SEP"; break;
25 case THEORY_SETS: out << "THEORY_SETS"; break;
26 case THEORY_STRINGS: out << "THEORY_STRINGS"; break;
27 case THEORY_QUANTIFIERS: out << "THEORY_QUANTIFIERS"; break;
28
29 default: out << "UNKNOWN_THEORY"; break;
30 }
31 return out;
32 }
33
34 std::string getStatsPrefix(TheoryId theoryId)
35 {
36 switch (theoryId)
37 {
38 case THEORY_BUILTIN: return "theory::builtin"; break;
39 case THEORY_BOOL: return "theory::bool"; break;
40 case THEORY_UF: return "theory::uf"; break;
41 case THEORY_ARITH: return "theory::arith"; break;
42 case THEORY_BV: return "theory::bv"; break;
43 case THEORY_FP: return "theory::fp"; break;
44 case THEORY_ARRAYS: return "theory::arrays"; break;
45 case THEORY_DATATYPES: return "theory::datatypes"; break;
46 case THEORY_SEP: return "theory::sep"; break;
47 case THEORY_SETS: return "theory::sets"; break;
48 case THEORY_STRINGS: return "theory::strings"; break;
49 case THEORY_QUANTIFIERS: return "theory::quantifiers"; break;
50
51 default: break;
52 }
53 return "unknown";
54 }
55
56 } // namespace theory
57 } // namespace CVC4