CBMC
qdimacs_core.h
Go to the documentation of this file.
1 /*******************************************************************\
2 
3 Module:
4 
5 Author: CM Wintersteiger
6 
7 \*******************************************************************/
8 
9 
10 #ifndef CPROVER_SOLVERS_QBF_QDIMACS_CORE_H
11 #define CPROVER_SOLVERS_QBF_QDIMACS_CORE_H
12 
13 #include <map>
14 
15 #include <util/expr.h>
16 
17 #include "qdimacs_cnf.h"
18 
20 {
21 public:
22  explicit qdimacs_coret(message_handlert &message_handler)
23  : qdimacs_cnft(message_handler)
24  {
25  }
26 
27  virtual tvt l_get(literalt a) const=0;
28  virtual bool is_in_core(literalt l) const=0;
29 
31  virtual modeltypet m_get(literalt a) const=0;
32 
33  typedef std::pair<exprt, unsigned> symbol_mapt;
34  typedef std::map<unsigned, symbol_mapt> variable_mapt;
35  variable_mapt variable_map; // variable -> symbol/index map
36  virtual const exprt f_get(literalt v)=0;
37 
38  void simplify_extractbits(exprt &expr) const;
39 };
40 
41 #endif // CPROVER_SOLVERS_QBF_QDIMACS_CORE_H
Base class for all expressions.
Definition: expr.h:56
qdimacs_coret(message_handlert &message_handler)
Definition: qdimacs_core.h:22
void simplify_extractbits(exprt &expr) const
virtual tvt l_get(literalt a) const =0
std::map< unsigned, symbol_mapt > variable_mapt
Definition: qdimacs_core.h:34
virtual modeltypet m_get(literalt a) const =0
virtual const exprt f_get(literalt v)=0
virtual bool is_in_core(literalt l) const =0
variable_mapt variable_map
Definition: qdimacs_core.h:35
std::pair< exprt, unsigned > symbol_mapt
Definition: qdimacs_core.h:33
Definition: threeval.h:20