SMT-RAT  24.02
Toolbox for Strategic and Parallel Satisfiability-Modulo-Theories Solving
SplitSOSModule.h
Go to the documentation of this file.
1 /**
2  * Splits the sum-of-squares (sos) decomposition of all constraints with a sos as left-hand side.
3  *
4  * @file SplitSOSModule.h
5  * @author Florian Corzilius <corzilius@cs.rwth-aachen.de>
6  *
7  * @version 2015-09-10
8  * Created on 2015-09-10.
9  */
10 
11 #pragma once
12 
13 #include <smtrat-solver/PModule.h>
14 #include "SplitSOSSettings.h"
15 
16 namespace smtrat
17 {
18  template<typename Settings>
19  class SplitSOSModule : public PModule
20  {
21  private:
22  // Members.
23  ///
24 
25  public:
27 std::string moduleName() const {
28 return SettingsType::moduleName;
29 }
30  SplitSOSModule( const ModuleInput* _formula, Conditionals& _conditionals, Manager* _manager = NULL );
31 
33 
34  // Main interfaces.
35 
36  /**
37  * Checks the received formula for consistency.
38  * @return SAT, if the received formula is satisfiable;
39  * UNSAT, if the received formula is not satisfiable;
40  * Unknown, otherwise.
41  */
43 
44  private:
45 
46  /**
47  * Splits the sum-of-squares (sos) decomposition, if the given formula is a constraint with a sos as left-hand side.
48  */
49  FormulaT splitSOS(const FormulaT& formula);
51  };
52 }
All preprocessing modules shall derive from this module, that is modules, which simplify their receiv...
Base class for solvers.
Definition: Manager.h:34
The input formula a module has to consider for it's satisfiability check.
Definition: ModuleInput.h:131
FormulaT splitSOS(const FormulaT &formula)
Splits the sum-of-squares (sos) decomposition, if the given formula is a constraint with a sos as lef...
SplitSOSModule(const ModuleInput *_formula, Conditionals &_conditionals, Manager *_manager=NULL)
std::function< FormulaT(FormulaT)> splitSOSFunction
Answer checkCore()
Checks the received formula for consistency.
std::string moduleName() const
Class to create the formulas for axioms.
carl::Formula< Poly > FormulaT
Definition: types.h:37
const settings::Settings & Settings()
Definition: Settings.h:96
Answer
An enum with the possible answers a Module can give.
Definition: types.h:57
std::vector< std::atomic_bool * > Conditionals
A vector of atomic bool pointers.
Definition: types.h:17