ESBMC
Efficient SMT-based Context-Bounded Model Checker
Loading...
Searching...
No Matches
sat_iface.h
Go to the documentation of this file.
1#ifndef _ESBMC_SOLVERS_SAT_SAT_IFACE_H_
2#define _ESBMC_SOLVERS_SAT_SAT_IFACE_H_
3
4// An interface for defining a SAT interface within ESBMC, as used by the
5// SAT bitblaster. I anticipate that nothing else actually needs to use this
6// interface, except perhaps sat solvers that have non-cnf inputs.
7
9{
10public:
11 virtual void lcnf(const bvt &bv) = 0;
12 virtual literalt lnot(literalt a) = 0;
14 virtual literalt lequal(literalt a, literalt b) = 0;
16 virtual literalt lxor(literalt a, literalt b) = 0;
17 virtual literalt land(literalt a, literalt b) = 0;
18 virtual literalt lor(literalt a, literalt b) = 0;
19 virtual void set_equal(literalt a, literalt b) = 0;
20 virtual void assert_lit(const literalt &a) = 0;
21 virtual tvt l_get(const literalt &a) = 0;
22 virtual literalt new_variable() = 0;
23};
24
25#endif /* _ESBMC_SOLVERS_SAT_SAT_IFACE_H_ */
Definition literal.h:8
Definition sat_iface.h:9
virtual literalt lnot(literalt a)=0
virtual literalt new_variable()=0
virtual literalt land(literalt a, literalt b)=0
virtual literalt lselect(literalt a, literalt b, literalt c)=0
virtual tvt l_get(const literalt &a)=0
virtual void set_equal(literalt a, literalt b)=0
virtual void lcnf(const bvt &bv)=0
virtual literalt limplies(literalt a, literalt b)=0
virtual literalt lequal(literalt a, literalt b)=0
virtual literalt lor(literalt a, literalt b)=0
virtual void assert_lit(const literalt &a)=0
virtual literalt lxor(literalt a, literalt b)=0
Definition threeval.h:10
std::vector< literalt > bvt
Definition minisat_conv.h:20