SMT-RAT  24.02
Toolbox for Strategic and Parallel Satisfiability-Modulo-Theories Solving
SMTCOMP.h
Go to the documentation of this file.
1 /**
2  * @file RatComp2016.h
3  */
4 #pragma once
5 
18 
19 namespace smtrat
20 {
21  /**
22  * Strategy description.
23  *
24  * @author
25  * @since
26  * @version
27  *
28  */
29  class SMTCOMP:
30  public Manager
31  {
32  static bool conditionEvaluation6( carl::Condition _condition )
33  {
34  return ( (carl::PROP_CONTAINS_NONLINEAR_POLYNOMIAL <= _condition) && (carl::PROP_CONTAINS_INTEGER_VALUED_VARS <= _condition) );
35  }
36 
37  static bool conditionEvaluation16( carl::Condition _condition )
38  {
39  return ( (carl::PROP_CONTAINS_NONLINEAR_POLYNOMIAL <= _condition) && !(carl::PROP_CONTAINS_INTEGER_VALUED_VARS <= _condition) );
40  }
41 
42  static bool conditionEvaluation0( carl::Condition _condition )
43  {
44  return ( !(carl::PROP_CONTAINS_NONLINEAR_POLYNOMIAL <= _condition) && (carl::PROP_CONTAINS_INTEGER_VALUED_VARS <= _condition) );
45  }
46 
47  static bool conditionEvaluation1( carl::Condition _condition )
48  {
49  return ( (carl::PROP_IS_LITERAL_CONJUNCTION <= _condition) );
50  }
51 
52  static bool conditionEvaluation2( carl::Condition _condition )
53  {
54  return ( !(carl::PROP_IS_LITERAL_CONJUNCTION <= _condition) );
55  }
56 
57  static bool conditionEvaluation13( carl::Condition _condition )
58  {
59  return ( !(carl::PROP_CONTAINS_NONLINEAR_POLYNOMIAL <= _condition) && !(carl::PROP_CONTAINS_INTEGER_VALUED_VARS <= _condition) );
60  }
61 
62  public:
63 
65  {
67  {
68  addBackend<FPPModule<FPPSettings1>>(
69  {
70  addBackend<IncWidthModule<IncWidthSettings1>>(
71  {
72  addBackend<IntBlastModule<IntBlastSettings2>>(
73  {
74  addBackend<SATModule<SATSettings1>>(
75  {
76  addBackend<LRAModule<LRASettings1>>(
77  {
78  addBackend<VSModule<VSSettings234>>(
79  {
80  addBackend<NewCoveringModule<NewCoveringSettings2>>({
81  addBackend<NewCADModule<NewCADSettingsFOS>>()
82  })
83  })
84  })
85  })
86  })
87  })
88  }).condition( &conditionEvaluation6 ),
89  addBackend<FPPModule<FPPSettings1>>(
90  {
91  addBackend<SATModule<SATSettings1>>(
92  {
93  addBackend<STropModule<STropSettings1>>(
94  {
95  addBackend<ICPModule<ICPSettings1>>(
96  {
97  addBackend<VSModule<VSSettings234>>(
98  {
99  addBackend<NewCoveringModule<NewCoveringSettings2>>({
100  addBackend<NewCADModule<NewCADSettingsFOS>>()
101  })
102  })
103  })
104  })
105  })
106  }).condition( &conditionEvaluation16 ),
107  addBackend<FPPModule<FPPSettings1>>(
108  {
109  addBackend<SATModule<SATSettings1>>(
110  {
111  addBackend<CubeLIAModule<CubeLIASettings1>>(
112  {
113  addBackend<LRAModule<LRASettings1>>()
114  })
115  }).condition( &conditionEvaluation1 ),
116  addBackend<SATModule<SATSettings1>>(
117  {
118  addBackend<LRAModule<LRASettings1>>()
119  }).condition( &conditionEvaluation2 )
120  }).condition( &conditionEvaluation0 ),
121  addBackend<FPPModule<FPPSettings1>>(
122  {
123  addBackend<SATModule<SATSettings1>>(
124  {
125  addBackend<LRAModule<LRASettings1>>()
126  })
127  }).condition( &conditionEvaluation13 )
128  });
129  }
130  };
131 } // namespace smtrat
Base class for solvers.
Definition: Manager.h:34
void setStrategy(const std::initializer_list< BackendLink > &backends)
Definition: Manager.h:385
Strategy description.
Definition: SMTCOMP.h:31
static bool conditionEvaluation6(carl::Condition _condition)
Definition: SMTCOMP.h:32
static bool conditionEvaluation1(carl::Condition _condition)
Definition: SMTCOMP.h:47
static bool conditionEvaluation16(carl::Condition _condition)
Definition: SMTCOMP.h:37
static bool conditionEvaluation0(carl::Condition _condition)
Definition: SMTCOMP.h:42
static bool conditionEvaluation2(carl::Condition _condition)
Definition: SMTCOMP.h:52
static bool conditionEvaluation13(carl::Condition _condition)
Definition: SMTCOMP.h:57
Class to create the formulas for axioms.