SMT-RAT  24.02
Toolbox for Strategic and Parallel Satisfiability-Modulo-Theories Solving
PBPPSettings.h
Go to the documentation of this file.
1 /**
2  * @file PBPPSettings.h
3  * @author YOUR NAME <YOUR EMAIL ADDRESS>
4  *
5  * @version 2016-11-23
6  * Created on 2016-11-23.
7  */
8 
9 #pragma once
10 
11 namespace smtrat
12 {
14  /// Name of the Module
15  static constexpr auto moduleName = "PBPPModule<PBPPSettingsBase>";
16  /**
17  * Example for a setting.
18  */
19  static constexpr bool use_rns_transformation = false;
20  static constexpr bool use_card_transformation = false;
21  static constexpr bool use_mixed_transformation = false;
22  static constexpr bool use_long_transformation = false;
23  static constexpr bool use_short_transformation = false;
24  static constexpr bool use_commander_transformation = false;
25  static constexpr bool use_totalizer_transformation = false;
26 
27  // Depending on the size of the original formulation do not introduce more than a factor of 1/n
28  // new formulas.
29  static constexpr double MAX_NEW_RELATIVE_FORMULA_SIZE = 0.5;
30  static constexpr bool USE_LIA_MIXED = false;
31  static constexpr bool USE_LIA_ONLY = true;
32  static constexpr bool ENCODE_IF_POSSIBLE = false;
33  static constexpr bool NORMALIZE_CONSTRAINTS = false;
34  static constexpr bool SPLIT_EQUALITIES = false;
35  };
36 
38  {
39  /// Name of the Module
40  static constexpr auto moduleName = "PBPPModule<PBPPSettingsLIAOnly>";
41 
42  // Depending on the size of the original formulation do not introduce more than a factor of 1/n
43  // new formulas.
44  static constexpr bool USE_LIA_ONLY = true;
45 
46  };
47 
49  {
50  /// Name of the Module
51  static constexpr auto moduleName = "PBPPModule<PBPPSettings1>";
52 
53  static constexpr bool use_card_transformation = true;
54  static constexpr bool use_mixed_transformation = true;
55  static constexpr bool use_long_transformation = true;
56  static constexpr bool use_short_transformation = true;
57  static constexpr bool use_commander_transformation = false;
58  static constexpr bool use_totalizer_transformation = true;
59 
60  // Depending on the size of the original formulation do not introduce more than a factor of 1/n
61  // new formulas.
62  static constexpr double MAX_NEW_RELATIVE_FORMULA_SIZE = 20;
63  static constexpr bool USE_LIA_MIXED = true;
64  static constexpr bool USE_LIA_ONLY = false;
65  static constexpr bool ENCODE_IF_POSSIBLE = true;
66 
67  };
68 
70  {
71  /// Name of the Module
72  static constexpr auto moduleName = "PBPPModule<PBPPSettingsLIAOnlyWithNormalize>";
73 
74  static constexpr bool USE_LIA_ONLY = true;
75  static constexpr bool NORMALIZE_CONSTRAINTS = true;
76  };
77 
79  {
80  /// Name of the Module
81  static constexpr auto moduleName = "PBPPModule<PBPPSettingsWithNormalize>";
82  /**
83  * Example for a setting.
84  */
85  static constexpr bool use_card_transformation = true;
86  static constexpr bool use_mixed_transformation = true;
87  static constexpr bool use_long_transformation = true;
88  static constexpr bool use_short_transformation = true;
89 
90  // Depending on the size of the original formulation do not introduce more than a factor of 1/n
91  // new formulas.
92  static constexpr double MAX_NEW_RELATIVE_FORMULA_SIZE = 20;
93  static constexpr bool USE_LIA_MIXED = true;
94  static constexpr bool USE_LIA_ONLY = false;
95  static constexpr bool ENCODE_IF_POSSIBLE = false;
96  static constexpr bool NORMALIZE_CONSTRAINTS = true;
97  };
98 
100  {
101  /// Name of the Module
102  static constexpr auto moduleName = "PBPPModule<PBPPSettingsCardinalityOnly20>";
103  /**
104  * Example for a setting.
105  */
106  static constexpr bool use_rns_transformation = false;
107  static constexpr bool use_card_transformation = true;
108  static constexpr bool use_mixed_transformation = false;
109  static constexpr bool use_long_transformation = false;
110  static constexpr bool use_short_transformation = false;
111  static constexpr bool use_commander_transformation = false;
112 
113  // Depending on the size of the original formulation do not introduce more than a factor of 1/n
114  // new formulas.
115  static constexpr double MAX_NEW_RELATIVE_FORMULA_SIZE = 20;
116  static constexpr bool USE_LIA_MIXED = true;
117  static constexpr bool USE_LIA_ONLY = false;
118 
119 
120  };
121 
123  {
124  /// Name of the Module
125  static constexpr auto moduleName = "PBPPModule<PBPPSettingsCardinalityOnly05>";
126 
127  static constexpr bool use_card_transformation = true;
128 
129  // Depending on the size of the original formulation do not introduce more than a factor of 1/n
130  // new formulas.
131  static constexpr double MAX_NEW_RELATIVE_FORMULA_SIZE = 0.5;
132  static constexpr bool USE_LIA_MIXED = true;
133  static constexpr bool USE_LIA_ONLY = false;
134 
135  };
136 
138  {
139  /// Name of the Module
140  static constexpr auto moduleName = "PBPPModule<PBPPSettingsCardinalityOnly20>";
141  /**
142  * Example for a setting.
143  */
144  static constexpr bool use_card_transformation = true;
145  static constexpr bool use_mixed_transformation = true;
146  static constexpr bool use_long_transformation = true;
147  static constexpr bool use_short_transformation = true;
148 
149  // Depending on the size of the original formulation do not introduce more than a factor of 1/n
150  // new formulas.
151  static constexpr double MAX_NEW_RELATIVE_FORMULA_SIZE = 20;
152  static constexpr bool USE_LIA_MIXED = true;
153  static constexpr bool USE_LIA_ONLY = false;
154 
155  };
156 
158  {
159  /// Name of the Module
160  static constexpr auto moduleName = "PBPPModule<PBPPSettingsCardinalityOnly05>";
161  /**
162  * Example for a setting.
163  */
164  static constexpr bool use_card_transformation = true;
165  static constexpr bool use_mixed_transformation = true;
166  static constexpr bool use_long_transformation = true;
167  static constexpr bool use_short_transformation = true;
168 
169  // Depending on the size of the original formulation do not introduce more than a factor of 1/n
170  // new formulas.
171  static constexpr double MAX_NEW_RELATIVE_FORMULA_SIZE = 0.5;
172  static constexpr bool USE_LIA_MIXED = true;
173  static constexpr bool USE_LIA_ONLY = false;
174 
175  };
176 
178  {
179  /// Name of the Module
180  static constexpr auto moduleName = "PBPPModule<PBPPSettingsCardinalityOnly20>";
181 
182  static constexpr bool use_card_transformation = true;
183 
184  // Depending on the size of the original formulation do not introduce more than a factor of 1/n
185  // new formulas.
186  static constexpr double MAX_NEW_RELATIVE_FORMULA_SIZE = 20;
187  static constexpr bool USE_LIA_MIXED = true;
188  static constexpr bool USE_LIA_ONLY = false;
189  static constexpr bool NORMALIZE_CONSTRAINTS = true;
190 
191  };
192 
194  {
195  /// Name of the Module
196  static constexpr auto moduleName = "PBPPModule<PBPPSettingsCardinalityOnly05>";
197 
198  static constexpr bool use_card_transformation = true;
199 
200 
201  // Depending on the size of the original formulation do not introduce more than a factor of 1/n
202  // new formulas.
203  static constexpr double MAX_NEW_RELATIVE_FORMULA_SIZE = 0.5;
204  static constexpr bool USE_LIA_MIXED = true;
205  static constexpr bool USE_LIA_ONLY = false;
206  static constexpr bool ENCODE_IF_POSSIBLE = false;
207  static constexpr bool NORMALIZE_CONSTRAINTS = true;
208  };
209 
211  {
212  /// Name of the Module
213  static constexpr auto moduleName = "PBPPModule<PBPPSettingsWithRNS>";
214 
215  static constexpr bool use_card_transformation = true;
216 
217  // Depending on the size of the original formulation do not introduce more than a factor of 1/n
218  // new formulas.
219  static constexpr double MAX_NEW_RELATIVE_FORMULA_SIZE = 0.5;
220  static constexpr bool USE_LIA_MIXED = true;
221  static constexpr bool USE_LIA_ONLY = false;
222  static constexpr bool ENCODE_IF_POSSIBLE = true;
223 
224  };
225 
227  {
228  /// Name of the Module
229  static constexpr auto moduleName = "PBPPModule<PBPPSettingsWithCardConstr>";
230 
231  static constexpr bool use_card_transformation = true;
232 
233  // Depending on the size of the original formulation do not introduce more than a factor of 1/n
234  // new formulas.
235  static constexpr double MAX_NEW_RELATIVE_FORMULA_SIZE = 0.5;
236  static constexpr bool USE_LIA_MIXED = true;
237  static constexpr bool USE_LIA_ONLY = false;
238  static constexpr bool ENCODE_IF_POSSIBLE = true;
239 
240  };
241 
243  {
244  /// Name of the Module
245  static constexpr auto moduleName = "PBPPModule<PBPPSettingsWithMixedConstr>";
246 
247  static constexpr bool use_card_transformation = true;
248 
249  // Depending on the size of the original formulation do not introduce more than a factor of 1/n
250  // new formulas.
251  static constexpr double MAX_NEW_RELATIVE_FORMULA_SIZE = 0.5;
252  static constexpr bool USE_LIA_MIXED = true;
253  static constexpr bool USE_LIA_ONLY = false;
254  static constexpr bool ENCODE_IF_POSSIBLE = true;
255 
256  };
257 
259  {
260  /// Name of the Module
261  static constexpr auto moduleName = "PBPPModule<PBPPSettingsBasic>";
262 
263  static constexpr bool use_card_transformation = true;
264 
265  // Depending on the size of the original formulation do not introduce more than a factor of 1/n
266  // new formulas.
267  static constexpr double MAX_NEW_RELATIVE_FORMULA_SIZE = 0.5;
268  static constexpr bool USE_LIA_MIXED = true;
269  static constexpr bool USE_LIA_ONLY = false;
270  static constexpr bool ENCODE_IF_POSSIBLE = true;
271 
272  };
273 
275  static constexpr auto moduleName = "PBPPModule<PBPPSettingsMaxSMT>";
276 
277  static constexpr bool use_totalizer_transformation = true;
278  static constexpr bool use_card_transformation = true;
279 
280  static constexpr bool ENCODE_IF_POSSIBLE = true;
281 
282  static constexpr bool USE_LIA_MIXED = false;
283  static constexpr bool USE_LIA_ONLY = false;
284 
285  };
286 
287 
288 }
Class to create the formulas for axioms.
static constexpr bool use_mixed_transformation
Definition: PBPPSettings.h:54
static constexpr bool use_card_transformation
Definition: PBPPSettings.h:53
static constexpr bool use_short_transformation
Definition: PBPPSettings.h:56
static constexpr bool use_long_transformation
Definition: PBPPSettings.h:55
static constexpr bool ENCODE_IF_POSSIBLE
Definition: PBPPSettings.h:65
static constexpr auto moduleName
Name of the Module.
Definition: PBPPSettings.h:51
static constexpr bool use_totalizer_transformation
Definition: PBPPSettings.h:58
static constexpr bool USE_LIA_ONLY
Definition: PBPPSettings.h:64
static constexpr bool use_commander_transformation
Definition: PBPPSettings.h:57
static constexpr bool USE_LIA_MIXED
Definition: PBPPSettings.h:63
static constexpr double MAX_NEW_RELATIVE_FORMULA_SIZE
Definition: PBPPSettings.h:62
static constexpr bool use_commander_transformation
Definition: PBPPSettings.h:24
static constexpr bool use_card_transformation
Definition: PBPPSettings.h:20
static constexpr auto moduleName
Name of the Module.
Definition: PBPPSettings.h:15
static constexpr bool USE_LIA_ONLY
Definition: PBPPSettings.h:31
static constexpr bool use_long_transformation
Definition: PBPPSettings.h:22
static constexpr bool USE_LIA_MIXED
Definition: PBPPSettings.h:30
static constexpr bool ENCODE_IF_POSSIBLE
Definition: PBPPSettings.h:32
static constexpr bool use_mixed_transformation
Definition: PBPPSettings.h:21
static constexpr bool SPLIT_EQUALITIES
Definition: PBPPSettings.h:34
static constexpr bool use_totalizer_transformation
Definition: PBPPSettings.h:25
static constexpr bool use_rns_transformation
Example for a setting.
Definition: PBPPSettings.h:19
static constexpr double MAX_NEW_RELATIVE_FORMULA_SIZE
Definition: PBPPSettings.h:29
static constexpr bool NORMALIZE_CONSTRAINTS
Definition: PBPPSettings.h:33
static constexpr bool use_short_transformation
Definition: PBPPSettings.h:23
static constexpr bool use_card_transformation
Definition: PBPPSettings.h:263
static constexpr double MAX_NEW_RELATIVE_FORMULA_SIZE
Definition: PBPPSettings.h:267
static constexpr auto moduleName
Name of the Module.
Definition: PBPPSettings.h:261
static constexpr bool ENCODE_IF_POSSIBLE
Definition: PBPPSettings.h:270
static constexpr bool USE_LIA_MIXED
Definition: PBPPSettings.h:268
static constexpr bool USE_LIA_ONLY
Definition: PBPPSettings.h:269
static constexpr double MAX_NEW_RELATIVE_FORMULA_SIZE
Definition: PBPPSettings.h:203
static constexpr auto moduleName
Name of the Module.
Definition: PBPPSettings.h:196
static constexpr auto moduleName
Name of the Module.
Definition: PBPPSettings.h:125
static constexpr double MAX_NEW_RELATIVE_FORMULA_SIZE
Definition: PBPPSettings.h:131
static constexpr bool USE_LIA_MIXED
Definition: PBPPSettings.h:132
static constexpr bool USE_LIA_ONLY
Definition: PBPPSettings.h:133
static constexpr bool use_card_transformation
Definition: PBPPSettings.h:127
static constexpr auto moduleName
Name of the Module.
Definition: PBPPSettings.h:180
static constexpr double MAX_NEW_RELATIVE_FORMULA_SIZE
Definition: PBPPSettings.h:186
static constexpr auto moduleName
Name of the Module.
Definition: PBPPSettings.h:102
static constexpr double MAX_NEW_RELATIVE_FORMULA_SIZE
Definition: PBPPSettings.h:115
static constexpr bool use_rns_transformation
Example for a setting.
Definition: PBPPSettings.h:106
static constexpr bool use_commander_transformation
Definition: PBPPSettings.h:111
static constexpr bool USE_LIA_ONLY
Definition: PBPPSettings.h:117
static constexpr bool USE_LIA_MIXED
Definition: PBPPSettings.h:116
static constexpr bool use_short_transformation
Definition: PBPPSettings.h:110
static constexpr bool use_card_transformation
Definition: PBPPSettings.h:107
static constexpr bool use_long_transformation
Definition: PBPPSettings.h:109
static constexpr bool use_mixed_transformation
Definition: PBPPSettings.h:108
static constexpr auto moduleName
Name of the Module.
Definition: PBPPSettings.h:160
static constexpr double MAX_NEW_RELATIVE_FORMULA_SIZE
Definition: PBPPSettings.h:171
static constexpr bool USE_LIA_MIXED
Definition: PBPPSettings.h:172
static constexpr bool use_short_transformation
Definition: PBPPSettings.h:167
static constexpr bool use_long_transformation
Definition: PBPPSettings.h:166
static constexpr bool use_card_transformation
Example for a setting.
Definition: PBPPSettings.h:164
static constexpr bool USE_LIA_ONLY
Definition: PBPPSettings.h:173
static constexpr bool use_mixed_transformation
Definition: PBPPSettings.h:165
static constexpr bool use_mixed_transformation
Definition: PBPPSettings.h:145
static constexpr bool use_card_transformation
Example for a setting.
Definition: PBPPSettings.h:144
static constexpr bool USE_LIA_ONLY
Definition: PBPPSettings.h:153
static constexpr bool use_long_transformation
Definition: PBPPSettings.h:146
static constexpr bool USE_LIA_MIXED
Definition: PBPPSettings.h:152
static constexpr double MAX_NEW_RELATIVE_FORMULA_SIZE
Definition: PBPPSettings.h:151
static constexpr auto moduleName
Name of the Module.
Definition: PBPPSettings.h:140
static constexpr bool use_short_transformation
Definition: PBPPSettings.h:147
static constexpr auto moduleName
Name of the Module.
Definition: PBPPSettings.h:72
static constexpr bool NORMALIZE_CONSTRAINTS
Definition: PBPPSettings.h:75
static constexpr bool USE_LIA_ONLY
Definition: PBPPSettings.h:44
static constexpr auto moduleName
Name of the Module.
Definition: PBPPSettings.h:40
static constexpr bool USE_LIA_MIXED
Definition: PBPPSettings.h:282
static constexpr bool use_totalizer_transformation
Definition: PBPPSettings.h:277
static constexpr bool USE_LIA_ONLY
Definition: PBPPSettings.h:283
static constexpr bool use_card_transformation
Definition: PBPPSettings.h:278
static constexpr auto moduleName
Definition: PBPPSettings.h:275
static constexpr bool ENCODE_IF_POSSIBLE
Definition: PBPPSettings.h:280
static constexpr bool USE_LIA_ONLY
Definition: PBPPSettings.h:237
static constexpr auto moduleName
Name of the Module.
Definition: PBPPSettings.h:229
static constexpr double MAX_NEW_RELATIVE_FORMULA_SIZE
Definition: PBPPSettings.h:235
static constexpr bool USE_LIA_MIXED
Definition: PBPPSettings.h:236
static constexpr bool ENCODE_IF_POSSIBLE
Definition: PBPPSettings.h:238
static constexpr bool use_card_transformation
Definition: PBPPSettings.h:231
static constexpr bool use_card_transformation
Definition: PBPPSettings.h:247
static constexpr bool USE_LIA_MIXED
Definition: PBPPSettings.h:252
static constexpr auto moduleName
Name of the Module.
Definition: PBPPSettings.h:245
static constexpr double MAX_NEW_RELATIVE_FORMULA_SIZE
Definition: PBPPSettings.h:251
static constexpr bool ENCODE_IF_POSSIBLE
Definition: PBPPSettings.h:254
static constexpr bool USE_LIA_ONLY
Definition: PBPPSettings.h:253
static constexpr bool use_short_transformation
Definition: PBPPSettings.h:88
static constexpr double MAX_NEW_RELATIVE_FORMULA_SIZE
Definition: PBPPSettings.h:92
static constexpr bool use_mixed_transformation
Definition: PBPPSettings.h:86
static constexpr bool use_long_transformation
Definition: PBPPSettings.h:87
static constexpr auto moduleName
Name of the Module.
Definition: PBPPSettings.h:81
static constexpr bool NORMALIZE_CONSTRAINTS
Definition: PBPPSettings.h:96
static constexpr bool ENCODE_IF_POSSIBLE
Definition: PBPPSettings.h:95
static constexpr bool USE_LIA_ONLY
Definition: PBPPSettings.h:94
static constexpr bool use_card_transformation
Example for a setting.
Definition: PBPPSettings.h:85
static constexpr bool USE_LIA_MIXED
Definition: PBPPSettings.h:93
static constexpr bool USE_LIA_ONLY
Definition: PBPPSettings.h:221
static constexpr double MAX_NEW_RELATIVE_FORMULA_SIZE
Definition: PBPPSettings.h:219
static constexpr bool use_card_transformation
Definition: PBPPSettings.h:215
static constexpr bool ENCODE_IF_POSSIBLE
Definition: PBPPSettings.h:222
static constexpr bool USE_LIA_MIXED
Definition: PBPPSettings.h:220
static constexpr auto moduleName
Name of the Module.
Definition: PBPPSettings.h:213