dlinear
0.0.1
Delta-complete SMT solver for linear programming
|
Use theory reasoning to add relations between literals using some simple theory inferences. More...
#include <BoundImplicator.h>
Classes | |
struct | Constraint |
Constraint. More... | |
Public Member Functions | |
BoundImplicator (const Config &config, std::function< void(const Formula &)> assert, const PredicateAbstractor &predicate_abstractor) | |
Construct a BoundImplicator. | |
void | Propagate () |
Use theory reasoning to propagate some simple theory inferences. | |
Private Member Functions | |
template<int NVariables> | |
void | AddAssertion (const Formula &assertion) |
Add an assertion to the constraints_ map. | |
void | PropagateAssertions () |
Propagate the sorted constraints by adding them to the context by calling the assert_ function. | |
Private Attributes | |
const Config & | config_ |
Configuration. | |
const std::function< void(const Formula &)> | assert_ |
Assertion function. It adds assertions to the context. | |
const PredicateAbstractor & | predicate_abstractor_ |
Predicate abstractor. | |
std::map< Variable, SortedVector< Constraint > > | constraints_ |
Map of constraints for each variable. | |
Use theory reasoning to add relations between literals using some simple theory inferences.
It will help the SAT solver to prune trivially unsatisfiable branches, improving the chances of finding a feasible solution faster.
Definition at line 37 of file BoundImplicator.h.
dlinear::BoundImplicator::BoundImplicator | ( | const Config & | config, |
std::function< void(const Formula &)> | assert, | ||
const PredicateAbstractor & | predicate_abstractor ) |
Construct a BoundImplicator.
config | configuration |
assert | assertion function. It adds assertions to the context |
predicate_abstractor | predicate abstractor containing the assertions |
Definition at line 14 of file BoundImplicator.cpp.
|
private |
Add an assertion to the constraints_ map.
Based on the number of free variables in the assertion, it will call the appropriate AddAssertion method.
NVariables | number of free variables in the assertion |
assertion | assertion to add |