clang 20.0.0git
|
A SAT solver that is an implementation of Algorithm D from Knuth's The Art of Computer Programming Volume 4: Satisfiability, Fascicle 6. More...
#include "clang/Analysis/FlowSensitive/WatchedLiteralsSolver.h"
Public Member Functions | |
WatchedLiteralsSolver ()=default | |
WatchedLiteralsSolver (std::int64_t WorkLimit) | |
Result | solve (llvm::ArrayRef< const Formula * > Vals) override |
Checks if the conjunction of Vals is satisfiable and returns the corresponding result. | |
bool | reachedLimit () const override |
Public Member Functions inherited from clang::dataflow::Solver | |
virtual | ~Solver ()=default |
virtual Result | solve (llvm::ArrayRef< const Formula * > Vals)=0 |
Checks if the conjunction of Vals is satisfiable and returns the corresponding result. | |
virtual bool | reachedLimit () const =0 |
A SAT solver that is an implementation of Algorithm D from Knuth's The Art of Computer Programming Volume 4: Satisfiability, Fascicle 6.
It is based on the Davis-Putnam-Logemann-Loveland (DPLL) algorithm [1], keeps references to a single "watched" literal per clause, and uses a set of "active" variables for unit propagation.
Definition at line 31 of file WatchedLiteralsSolver.h.
|
default |
|
inlineexplicit |
Definition at line 47 of file WatchedLiteralsSolver.h.
|
inlineoverridevirtual |
Implements clang::dataflow::Solver.
Definition at line 52 of file WatchedLiteralsSolver.h.
|
overridevirtual |
Checks if the conjunction of Vals
is satisfiable and returns the corresponding result.
Requirements:
All elements in Vals
must not be null.
Implements clang::dataflow::Solver.
Definition at line 409 of file WatchedLiteralsSolver.cpp.
References clang::dataflow::Solver::Result::Satisfiable.