SMT-RAT  24.02
Toolbox for Strategic and Parallel Satisfiability-Modulo-Theories Solving
LIASolver.h
Go to the documentation of this file.
1 /**
2  * @file LIASolver.h
3  */
4 #pragma once
5 
6 #include "../solver/Manager.h"
7 
8 #include "../modules/FPPModule/FPPModule.h"
9 #include "../modules/SATModule/SATModule.h"
10 #include "../modules/CubeLIAModule/CubeLIAModule.h"
11 #include "../modules/LRAModule/LRAModule.h"
12 
13 namespace smtrat
14 {
15  /**
16  * Strategy description.
17  *
18  * @author
19  * @since
20  * @version
21  *
22  */
23  class LIASolver:
24  public Manager
25  {
26  //TODO je einmal auf allen Benchmarks laufen lassen und dann Kombination mit Conditions
27  static bool conditionEvaluation1( carl::Condition _condition )
28  {
29  return ( (carl::PROP_IS_LITERAL_CONJUNCTION <= _condition) );
30  }
31 
32  static bool conditionEvaluation2( carl::Condition _condition )
33  {
34  return ( !(carl::PROP_IS_LITERAL_CONJUNCTION <= _condition) );
35  }
36 
37  public:
39  {
41  {
42  addBackend<FPPModule<FPPSettings1>>(
43  {
44  addBackend<SATModule<SATSettings1>>(
45  {
46  addBackend<CubeLIAModule<CubeLIASettings1>>(
47  {
48  addBackend<LRAModule<LRASettings1>>()
49  })
50  })/*.condition( &conditionEvaluation1 ),
51  addBackend<SATModule<SATSettings1>>(
52  {
53  addBackend<LRAModule<LRASettings1>>()
54  }).condition( &conditionEvaluation2 )*/
55  })
56  });
57  }
58  };
59 } // namespace smtrat
Strategy description.
Definition: LIASolver.h:25
static bool conditionEvaluation2(carl::Condition _condition)
Definition: LIASolver.h:32
static bool conditionEvaluation1(carl::Condition _condition)
Definition: LIASolver.h:27
Base class for solvers.
Definition: Manager.h:34
void setStrategy(const std::initializer_list< BackendLink > &backends)
Definition: Manager.h:385
Class to create the formulas for axioms.