1 /********************* */
2 /*! \file sat_solver_factory.cpp
4 ** Top contributors (to current version):
5 ** Mathias Preiner, Liana Hadarean, Dejan Jovanovic
6 ** This file is part of the CVC4 project.
7 ** Copyright (c) 2009-2019 by the authors listed in the file AUTHORS
8 ** in the top-level source directory) and their institutional affiliations.
9 ** All rights reserved. See the file COPYING in the top-level source
10 ** directory for licensing information.\endverbatim
12 ** \brief SAT Solver creation facility.
17 #include "prop/sat_solver_factory.h"
19 #include "prop/bvminisat/bvminisat.h"
20 #include "prop/cadical.h"
21 #include "prop/cryptominisat.h"
22 #include "prop/minisat/minisat.h"
27 BVSatSolverInterface
* SatSolverFactory::createMinisat(
28 context::Context
* mainSatContext
,
29 StatisticsRegistry
* registry
,
30 const std::string
& name
)
32 return new BVMinisatSatSolver(registry
, mainSatContext
, name
);
35 DPLLSatSolverInterface
* SatSolverFactory::createDPLLMinisat(
36 StatisticsRegistry
* registry
)
38 return new MinisatSatSolver(registry
);
41 SatSolver
* SatSolverFactory::createCryptoMinisat(StatisticsRegistry
* registry
,
42 const std::string
& name
)
44 #ifdef CVC4_USE_CRYPTOMINISAT
45 return new CryptoMinisatSolver(registry
, name
);
47 Unreachable() << "CVC4 was not compiled with Cryptominisat support.";
51 SatSolver
* SatSolverFactory::createCadical(StatisticsRegistry
* registry
,
52 const std::string
& name
)
54 #ifdef CVC4_USE_CADICAL
55 return new CadicalSolver(registry
, name
);
57 Unreachable() << "CVC4 was not compiled with CaDiCaL support.";