ilasynth  1.0
ILASynth: Template-based ILA Synthesis Engine
boogie.hpp
Go to the documentation of this file.
1 #ifndef __BOOGIE_HPP_DEFINED__
2 #define __BOOGIE_HPP_DEFINED__
3 
4 #include <cassert>
5 
6 #include <memory>
7 #include <unordered_map>
8 #include <vector>
9 
10 #include "boost/dynamic_bitset.hpp"
11 #include "boost/foreach.hpp"
12 #include "boost/logic/tribool.hpp"
13 #include <ilasynth/smt.hpp>
14 #include <ilasynth/util.hpp>
15 #include <stack>
16 #include <z3++.h>
17 
18 #include <ilasynth/ast.hpp>
19 
20 namespace ilasynth {
21 class Abstraction;
22 
24 public:
25  typedef std::vector<z3::expr> exprvec_t;
26  typedef std::stack<exprvec_t> stack_t;
27 
28 private:
29  // pointer to the abstraction we are translating.
34 
35  // stack.
37 
38  // SMT.
39  z3::context c_;
41 
42  // is constant.
43  bool isConstant(const npair_t* obj);
44 
45 public:
46  // constructor.
48  // destructor.
49  virtual ~BoogieTranslator();
50  // convert to boogie.
51  void translate();
52 };
53 } // namespace ilasynth
54 
55 #endif /* __BOOGIE_HPP_DEFINED__ */
nodevec_t inpFV
Definition: boogie.hpp:32
nodevec_t constFV
Definition: boogie.hpp:32
std::vector< z3::expr > exprvec_t
Definition: boogie.hpp:25
Definition: boogie.hpp:23
nodeset_t fetchVars
Definition: boogie.hpp:31
Abstraction * abs
Definition: boogie.hpp:30
Definition: abstraction.hpp:31
Z3ExprAdapter c
Definition: boogie.hpp:40
std::stack< exprvec_t > stack_t
Definition: boogie.hpp:26
BoogieTranslator(Abstraction *a)
Definition: smt.hpp:14
Definition: abstraction.hpp:21
bool isConstant(const npair_t *obj)
stack_t states
Definition: boogie.hpp:36
z3::context c_
Definition: boogie.hpp:39
std::set< const Node * > nodeset_t
Definition: node.hpp:29
std::vector< const Node * > nodevec_t
Definition: node.hpp:28
exprvec_t constEx
Definition: boogie.hpp:33
nodevec_t varFV
Definition: boogie.hpp:32
Definition: node.hpp:31