SMT-RAT  24.02
Toolbox for Strategic and Parallel Satisfiability-Modulo-Theories Solving
NRAILSettings.h
Go to the documentation of this file.
1 /**
2  * @file AbstractSettings.h
3  * @author YOUR NAME <YOUR EMAIL ADDRESS>
4  *
5  * @version 2018-07-12
6  * Created on 2018-07-12.
7  */
8 
9 #pragma once
10 
11 #include "factory/AxiomFactory.h"
12 
13 namespace smtrat
14 {
15  enum class UNSATFormulaSelectionStrategy {ALL = 0, FIRST = 1, RANDOM = 2};
16 
18  {
19  static constexpr auto moduleName = "NRAILModule<NRAILSettings1>";
20 
22 
23  static constexpr AxiomFactory::AxiomType axiomType[5] = {AxiomFactory::AxiomType::ZERO,
24  AxiomFactory::AxiomType::TANGENT_PLANE,
25  AxiomFactory::AxiomType::ICP,
26  AxiomFactory::AxiomType::CONGRUENCE,
27  AxiomFactory::AxiomType::MONOTONICITY};
28  };
29 
31  {
32  static constexpr auto moduleName = "NRAILModule<NRAILSettings2>";
33 
35 
36  static constexpr AxiomFactory::AxiomType axiomType[5] = {AxiomFactory::AxiomType::TANGENT_PLANE,
37  AxiomFactory::AxiomType::ZERO,
38  AxiomFactory::AxiomType::ICP,
39  AxiomFactory::AxiomType::CONGRUENCE,
40  AxiomFactory::AxiomType::MONOTONICITY};
41  };
42 
44  {
45  static constexpr auto moduleName = "NRAILModule<NRAILSettings3>";
46 
48 
49  static constexpr AxiomFactory::AxiomType axiomType[5] = {AxiomFactory::AxiomType::TANGENT_PLANE,
50  AxiomFactory::AxiomType::ICP,
51  AxiomFactory::AxiomType::ZERO,
52  AxiomFactory::AxiomType::CONGRUENCE,
53  AxiomFactory::AxiomType::MONOTONICITY};
54  };
55 
57  {
58  static constexpr auto moduleName = "NRAILModule<NRAILSettings4>";
59 
61 
62  static constexpr AxiomFactory::AxiomType axiomType[5] = {AxiomFactory::AxiomType::ICP,
63  AxiomFactory::AxiomType::ZERO,
64  AxiomFactory::AxiomType::TANGENT_PLANE,
65  AxiomFactory::AxiomType::CONGRUENCE,
66  AxiomFactory::AxiomType::MONOTONICITY};
67  };
68 
70  {
71  static constexpr auto moduleName = "NRAILModule<NRAILSettings5>";
72 
74 
75  static constexpr AxiomFactory::AxiomType axiomType[5] = {AxiomFactory::AxiomType::ICP,
76  AxiomFactory::AxiomType::TANGENT_PLANE,
77  AxiomFactory::AxiomType::ZERO,
78  AxiomFactory::AxiomType::CONGRUENCE,
79  AxiomFactory::AxiomType::MONOTONICITY};
80  };
81 
83  {
84  static constexpr auto moduleName = "NRAILModule<NRAILSettings6>";
85 
87 
88  static constexpr AxiomFactory::AxiomType axiomType[5] = {AxiomFactory::AxiomType::CONGRUENCE,
89  AxiomFactory::AxiomType::ZERO,
90  AxiomFactory::AxiomType::TANGENT_PLANE,
91  AxiomFactory::AxiomType::ICP,
92  AxiomFactory::AxiomType::MONOTONICITY};
93  };
94 
96  {
97  static constexpr auto moduleName = "NRAILModule<NRAILSettings7>";
98 
100 
101  static constexpr AxiomFactory::AxiomType axiomType[5] = {AxiomFactory::AxiomType::MONOTONICITY,
102  AxiomFactory::AxiomType::ZERO,
103  AxiomFactory::AxiomType::TANGENT_PLANE,
104  AxiomFactory::AxiomType::ICP,
105  AxiomFactory::AxiomType::CONGRUENCE};
106  };
107 
108 // First
109 
111  {
112  static constexpr auto moduleName = "NRAILModule<NRAILSettings8>";
113 
115 
116  static constexpr AxiomFactory::AxiomType axiomType[5] = {AxiomFactory::AxiomType::ZERO,
117  AxiomFactory::AxiomType::TANGENT_PLANE,
118  AxiomFactory::AxiomType::ICP,
119  AxiomFactory::AxiomType::CONGRUENCE,
120  AxiomFactory::AxiomType::MONOTONICITY};
121  };
122 
124  {
125  static constexpr auto moduleName = "NRAILModule<NRAILSettings9>";
126 
128 
129  static constexpr AxiomFactory::AxiomType axiomType[5] = {AxiomFactory::AxiomType::TANGENT_PLANE,
130  AxiomFactory::AxiomType::ZERO,
131  AxiomFactory::AxiomType::ICP,
132  AxiomFactory::AxiomType::CONGRUENCE,
133  AxiomFactory::AxiomType::MONOTONICITY};
134  };
135 
137  {
138  static constexpr auto moduleName = "NRAILModule<NRAILSettings10>";
139 
141 
142  static constexpr AxiomFactory::AxiomType axiomType[5] = {AxiomFactory::AxiomType::TANGENT_PLANE,
143  AxiomFactory::AxiomType::ICP,
144  AxiomFactory::AxiomType::ZERO,
145  AxiomFactory::AxiomType::CONGRUENCE,
146  AxiomFactory::AxiomType::MONOTONICITY};
147  };
148 
150  {
151  static constexpr auto moduleName = "NRAILModule<NRAILSettings11>";
152 
154 
155  static constexpr AxiomFactory::AxiomType axiomType[5] = {AxiomFactory::AxiomType::ICP,
156  AxiomFactory::AxiomType::ZERO,
157  AxiomFactory::AxiomType::TANGENT_PLANE,
158  AxiomFactory::AxiomType::CONGRUENCE,
159  AxiomFactory::AxiomType::MONOTONICITY};
160  };
161 
163  {
164  static constexpr auto moduleName = "NRAILModule<NRAILSettings12>";
165 
167 
168  static constexpr AxiomFactory::AxiomType axiomType[5] = {AxiomFactory::AxiomType::ICP,
169  AxiomFactory::AxiomType::TANGENT_PLANE,
170  AxiomFactory::AxiomType::ZERO,
171  AxiomFactory::AxiomType::CONGRUENCE,
172  AxiomFactory::AxiomType::MONOTONICITY};
173  };
174 
176  {
177  static constexpr auto moduleName = "NRAILModule<NRAILSettings13>";
178 
180 
181  static constexpr AxiomFactory::AxiomType axiomType[5] = {AxiomFactory::AxiomType::CONGRUENCE,
182  AxiomFactory::AxiomType::ZERO,
183  AxiomFactory::AxiomType::TANGENT_PLANE,
184  AxiomFactory::AxiomType::ICP,
185  AxiomFactory::AxiomType::MONOTONICITY};
186  };
187 
189  {
190  static constexpr auto moduleName = "NRAILModule<NRAILSettings14>";
191 
193 
194  static constexpr AxiomFactory::AxiomType axiomType[5] = {AxiomFactory::AxiomType::MONOTONICITY,
195  AxiomFactory::AxiomType::ZERO,
196  AxiomFactory::AxiomType::TANGENT_PLANE,
197  AxiomFactory::AxiomType::ICP,
198  AxiomFactory::AxiomType::CONGRUENCE};
199  };
200 
201 // Random
202 
204  {
205  static constexpr auto moduleName = "NRAILModule<NRAILSettings15>";
206 
208 
209  static constexpr AxiomFactory::AxiomType axiomType[5] = {AxiomFactory::AxiomType::ZERO,
210  AxiomFactory::AxiomType::TANGENT_PLANE,
211  AxiomFactory::AxiomType::ICP,
212  AxiomFactory::AxiomType::CONGRUENCE,
213  AxiomFactory::AxiomType::MONOTONICITY};
214  };
215 
217  {
218  static constexpr auto moduleName = "NRAILModule<NRAILSettings16>";
219 
221 
222  static constexpr AxiomFactory::AxiomType axiomType[5] = {AxiomFactory::AxiomType::TANGENT_PLANE,
223  AxiomFactory::AxiomType::ZERO,
224  AxiomFactory::AxiomType::ICP,
225  AxiomFactory::AxiomType::CONGRUENCE,
226  AxiomFactory::AxiomType::MONOTONICITY};
227  };
228 
230  {
231  static constexpr auto moduleName = "NRAILModule<NRAILSettings17>";
232 
234 
235  static constexpr AxiomFactory::AxiomType axiomType[5] = {AxiomFactory::AxiomType::TANGENT_PLANE,
236  AxiomFactory::AxiomType::ICP,
237  AxiomFactory::AxiomType::ZERO,
238  AxiomFactory::AxiomType::CONGRUENCE,
239  AxiomFactory::AxiomType::MONOTONICITY};
240  };
241 
243  {
244  static constexpr auto moduleName = "NRAILModule<NRAILSettings18>";
245 
247 
248  static constexpr AxiomFactory::AxiomType axiomType[5] = {AxiomFactory::AxiomType::ICP,
249  AxiomFactory::AxiomType::ZERO,
250  AxiomFactory::AxiomType::TANGENT_PLANE,
251  AxiomFactory::AxiomType::CONGRUENCE,
252  AxiomFactory::AxiomType::MONOTONICITY};
253  };
254 
256  {
257  static constexpr auto moduleName = "NRAILModule<NRAILSettings19>";
258 
260 
261  static constexpr AxiomFactory::AxiomType axiomType[5] = {AxiomFactory::AxiomType::ICP,
262  AxiomFactory::AxiomType::TANGENT_PLANE,
263  AxiomFactory::AxiomType::ZERO,
264  AxiomFactory::AxiomType::CONGRUENCE,
265  AxiomFactory::AxiomType::MONOTONICITY};
266  };
267 
269  {
270  static constexpr auto moduleName = "NRAILModule<NRAILSettings20>";
271 
273 
274  static constexpr AxiomFactory::AxiomType axiomType[5] = {AxiomFactory::AxiomType::CONGRUENCE,
275  AxiomFactory::AxiomType::ZERO,
276  AxiomFactory::AxiomType::TANGENT_PLANE,
277  AxiomFactory::AxiomType::ICP,
278  AxiomFactory::AxiomType::MONOTONICITY};
279  };
280 
282  {
283  static constexpr auto moduleName = "NRAILModule<NRAILSettings21>";
284 
286 
287  static constexpr AxiomFactory::AxiomType axiomType[5] = {AxiomFactory::AxiomType::MONOTONICITY,
288  AxiomFactory::AxiomType::ZERO,
289  AxiomFactory::AxiomType::TANGENT_PLANE,
290  AxiomFactory::AxiomType::ICP,
291  AxiomFactory::AxiomType::CONGRUENCE};
292  };
293 
294 // Experiment
295 
297  {
298  static constexpr auto moduleName = "NRAILModule<NRAILSettings22>";
299 
301 
302  static constexpr AxiomFactory::AxiomType axiomType[4] = {AxiomFactory::AxiomType::ICP,
303  AxiomFactory::AxiomType::ZERO,
304  AxiomFactory::AxiomType::TANGENT_PLANE,
305  AxiomFactory::AxiomType::CONGRUENCE};
306  };
307 
309  {
310  static constexpr auto moduleName = "NRAILModule<NRAILSettings23>";
311 
313 
314  static constexpr AxiomFactory::AxiomType axiomType[4] = {AxiomFactory::AxiomType::ICP,
315  AxiomFactory::AxiomType::TANGENT_PLANE,
316  AxiomFactory::AxiomType::ZERO,
317  AxiomFactory::AxiomType::CONGRUENCE};
318  };
319 
321  {
322  static constexpr auto moduleName = "NRAILModule<NRAILSettings24>";
323 
325 
326  static constexpr AxiomFactory::AxiomType axiomType[6] = {AxiomFactory::AxiomType::ICP,
327  AxiomFactory::AxiomType::ZERO,
328  AxiomFactory::AxiomType::ICP,
329  AxiomFactory::AxiomType::TANGENT_PLANE,
330  AxiomFactory::AxiomType::ICP,
331  AxiomFactory::AxiomType::CONGRUENCE};
332  };
333 
335  {
336  static constexpr auto moduleName = "NRAILModule<NRAILSettings25>";
337 
339 
340  static constexpr AxiomFactory::AxiomType axiomType[6] = {AxiomFactory::AxiomType::ICP,
341  AxiomFactory::AxiomType::TANGENT_PLANE,
342  AxiomFactory::AxiomType::ICP,
343  AxiomFactory::AxiomType::ZERO,
344  AxiomFactory::AxiomType::ICP,
345  AxiomFactory::AxiomType::CONGRUENCE};
346  };
347 
348 }
Class to create the formulas for axioms.
UNSATFormulaSelectionStrategy
Definition: NRAILSettings.h:15
static constexpr AxiomFactory::AxiomType axiomType[5]
static constexpr auto moduleName
static constexpr UNSATFormulaSelectionStrategy formulaSelectionStrategy
static constexpr UNSATFormulaSelectionStrategy formulaSelectionStrategy
static constexpr auto moduleName
static constexpr AxiomFactory::AxiomType axiomType[5]
static constexpr auto moduleName
static constexpr AxiomFactory::AxiomType axiomType[5]
static constexpr UNSATFormulaSelectionStrategy formulaSelectionStrategy
static constexpr UNSATFormulaSelectionStrategy formulaSelectionStrategy
static constexpr auto moduleName
static constexpr AxiomFactory::AxiomType axiomType[5]
static constexpr auto moduleName
static constexpr AxiomFactory::AxiomType axiomType[5]
static constexpr UNSATFormulaSelectionStrategy formulaSelectionStrategy
static constexpr UNSATFormulaSelectionStrategy formulaSelectionStrategy
static constexpr AxiomFactory::AxiomType axiomType[5]
static constexpr auto moduleName
static constexpr UNSATFormulaSelectionStrategy formulaSelectionStrategy
static constexpr AxiomFactory::AxiomType axiomType[5]
static constexpr auto moduleName
static constexpr AxiomFactory::AxiomType axiomType[5]
static constexpr UNSATFormulaSelectionStrategy formulaSelectionStrategy
static constexpr auto moduleName
static constexpr UNSATFormulaSelectionStrategy formulaSelectionStrategy
static constexpr AxiomFactory::AxiomType axiomType[5]
static constexpr auto moduleName
static constexpr AxiomFactory::AxiomType axiomType[5]
static constexpr UNSATFormulaSelectionStrategy formulaSelectionStrategy
static constexpr auto moduleName
static constexpr auto moduleName
Definition: NRAILSettings.h:19
static constexpr UNSATFormulaSelectionStrategy formulaSelectionStrategy
Definition: NRAILSettings.h:21
static constexpr AxiomFactory::AxiomType axiomType[5]
Definition: NRAILSettings.h:23
static constexpr auto moduleName
static constexpr AxiomFactory::AxiomType axiomType[5]
static constexpr UNSATFormulaSelectionStrategy formulaSelectionStrategy
static constexpr AxiomFactory::AxiomType axiomType[5]
static constexpr UNSATFormulaSelectionStrategy formulaSelectionStrategy
static constexpr auto moduleName
static constexpr UNSATFormulaSelectionStrategy formulaSelectionStrategy
static constexpr auto moduleName
static constexpr AxiomFactory::AxiomType axiomType[4]
static constexpr auto moduleName
static constexpr UNSATFormulaSelectionStrategy formulaSelectionStrategy
static constexpr AxiomFactory::AxiomType axiomType[4]
static constexpr UNSATFormulaSelectionStrategy formulaSelectionStrategy
static constexpr auto moduleName
static constexpr AxiomFactory::AxiomType axiomType[6]
static constexpr AxiomFactory::AxiomType axiomType[6]
static constexpr auto moduleName
static constexpr UNSATFormulaSelectionStrategy formulaSelectionStrategy
static constexpr UNSATFormulaSelectionStrategy formulaSelectionStrategy
Definition: NRAILSettings.h:34
static constexpr auto moduleName
Definition: NRAILSettings.h:32
static constexpr AxiomFactory::AxiomType axiomType[5]
Definition: NRAILSettings.h:36
static constexpr UNSATFormulaSelectionStrategy formulaSelectionStrategy
Definition: NRAILSettings.h:47
static constexpr AxiomFactory::AxiomType axiomType[5]
Definition: NRAILSettings.h:49
static constexpr auto moduleName
Definition: NRAILSettings.h:45
static constexpr AxiomFactory::AxiomType axiomType[5]
Definition: NRAILSettings.h:62
static constexpr auto moduleName
Definition: NRAILSettings.h:58
static constexpr UNSATFormulaSelectionStrategy formulaSelectionStrategy
Definition: NRAILSettings.h:60
static constexpr UNSATFormulaSelectionStrategy formulaSelectionStrategy
Definition: NRAILSettings.h:73
static constexpr auto moduleName
Definition: NRAILSettings.h:71
static constexpr AxiomFactory::AxiomType axiomType[5]
Definition: NRAILSettings.h:75
static constexpr UNSATFormulaSelectionStrategy formulaSelectionStrategy
Definition: NRAILSettings.h:86
static constexpr auto moduleName
Definition: NRAILSettings.h:84
static constexpr AxiomFactory::AxiomType axiomType[5]
Definition: NRAILSettings.h:88
static constexpr auto moduleName
Definition: NRAILSettings.h:97
static constexpr UNSATFormulaSelectionStrategy formulaSelectionStrategy
Definition: NRAILSettings.h:99
static constexpr AxiomFactory::AxiomType axiomType[5]
static constexpr auto moduleName
static constexpr UNSATFormulaSelectionStrategy formulaSelectionStrategy
static constexpr AxiomFactory::AxiomType axiomType[5]
static constexpr auto moduleName
static constexpr AxiomFactory::AxiomType axiomType[5]
static constexpr UNSATFormulaSelectionStrategy formulaSelectionStrategy