dlinear  0.0.1
Delta-complete SMT solver for linear programming
Loading...
Searching...
No Matches
DeltaQsoptexTheorySolver.h
1
7#pragma once
8
9#ifndef DLINEAR_ENABLED_QSOPTEX
10#error QSopt_ex is not enabled. Please enable it by adding "--//tools:enable_qsoptex" to the bazel command.
11#endif
12
13#include "dlinear/libs/libgmp.h"
14#include "dlinear/solver/QsoptexTheorySolver.h"
15#include "dlinear/solver/SatResult.h"
16#include "dlinear/symbolic/PredicateAbstractor.h"
17#include "dlinear/symbolic/literal.h"
18#include "dlinear/util/Box.h"
19#include "dlinear/util/Config.h"
20
21namespace dlinear {
22
31 public:
33 const std::string& class_name = "DeltaQsoptexTheorySolver");
34
35 Explanations EnableLiteral(const Literal& lit) override;
36
37 void AddLiteral(const Variable& formula_var, const Formula& formula) override;
38
39 SatResult CheckSatCore(mpq_class* actual_precision, Explanations& explanations) override;
40
41 private:
42 void EnableQsxRow(int spx_row, bool truth) override;
43};
44
45} // namespace dlinear
Delta complete solver using QSopt_ex.
void EnableQsxRow(int spx_row, bool truth) override
Enable the qsx_row row for the LP solver.
void AddLiteral(const Variable &formula_var, const Formula &formula) override
Add a Literal to the theory solver.
Explanations EnableLiteral(const Literal &lit) override
Activate the literal that had previously been added to the theory solver.
Predicate abstraction is a method to convert a first-order logic formula into a Boolean formula.
QSopt_ex 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 form of a first-order logic formula.
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.
Definition SatResult.h:17
A literal is a variable with an associated truth value, indicating whether it is true or false.
Definition literal.h:24