11#ifndef DLINEAR_ENABLED_SOPLEX
12#error SoPlex is not enabled. Please enable it by adding "--//tools:enable_soplex" to the bazel command.
15#include "dlinear/libs/libgmp.h"
16#include "dlinear/solver/SatResult.h"
17#include "dlinear/solver/SoplexTheorySolver.h"
18#include "dlinear/symbolic/PredicateAbstractor.h"
19#include "dlinear/symbolic/literal.h"
20#include "dlinear/util/Box.h"
34 const std::string& class_name =
"DeltaSoplexTheorySolver");
Delta complete solver using SoPlex.
Explanations EnableLiteral(const Literal &lit) override
Activate the literal that had previously been added to the theory solver.
void EnableSpxRow(int spx_row, bool truth) override
Enable the spx_row row for the LP solver.
void AddLiteral(const Variable &formula_var, const Formula &formula) override
Add a Literal to the theory solver.
Predicate abstraction is a method to convert a first-order logic formula into a Boolean formula.
SoPlex is an exact LP solver written in C++.
const PredicateAbstractor & predicate_abstractor() const
Get read-only access to the predicate abstractor of the TheorySolver.
std::set< LiteralSet > Explanations
Set of explanations of the conflict.
Represents a symbolic variable.
Global namespace for the dlinear library.
SatResult
Result of running the theory solver over the literals decided by the SAT solver.
A literal is a variable with an associated truth value, indicating whether it is true or false.