CBMC
satcheck_lingeling.h
Go to the documentation of this file.
1 /*******************************************************************\
2 
3 Module:
4 
5 Author: Michael Tautschnig, michael.tautschnig@cs.ox.ac.uk
6 
7 \*******************************************************************/
8 
9 
10 #ifndef CPROVER_SOLVERS_SAT_SATCHECK_LINGELING_H
11 #define CPROVER_SOLVERS_SAT_SATCHECK_LINGELING_H
12 
13 #include "cnf.h"
14 
15 // NOLINTNEXTLINE(readability/identifiers)
16 struct LGL;
17 
19 {
20 public:
22  virtual ~satcheck_lingelingt();
23 
24  std::string solver_text() const override;
25  tvt l_get(literalt a) const override;
26 
27  void lcnf(const bvt &bv) override;
28  void set_assignment(literalt a, bool value) override;
29 
30  bool has_assumptions() const override
31  {
32  return true;
33  }
34  bool has_is_in_conflict() const override
35  {
36  return true;
37  }
38  bool is_in_conflict(literalt a) const override;
39  void set_frozen(literalt a) override;
40 
41 protected:
42  resultt do_prop_solve(const bvt &assumptions) override;
43 
44  // NOLINTNEXTLINE(readability/identifiers)
45  struct LGL *solver;
46 };
47 
48 #endif // CPROVER_SOLVERS_SAT_SATCHECK_LINGELING_H
bool has_is_in_conflict() const override
void lcnf(const bvt &bv) override
tvt l_get(literalt a) const override
resultt do_prop_solve(const bvt &assumptions) override
bool has_assumptions() const override
void set_assignment(literalt a, bool value) override
std::string solver_text() const override
void set_frozen(literalt a) override
bool is_in_conflict(literalt a) const override
Returns true if an assumed literal is in conflict if the formula is UNSAT.
Definition: threeval.h:20
CNF Generation, via Tseitin.
std::vector< literalt > bvt
Definition: literal.h:201
resultt
The result of goto verifying.
Definition: properties.h:45