1 #ifndef __SYNTHESIZER_HPP_DEFINED__ 2 #define __SYNTHESIZER_HPP_DEFINED__ 4 #include <boost/python.hpp> 5 #include <boost/shared_ptr.hpp> 6 #include <boost/variant.hpp> 62 std::map<std::string, MemValues>
mems;
63 std::map<std::string, std::string>
bitvecs;
64 std::map<std::string, bool>
bools;
79 boost::variant<MemValues, std::string, bool>
out;
151 z3::expr
operator()(
const std::string& res)
const;
162 const std::vector<nmap_t*>
maps;
177 const nptr_t& expr,
const z3::expr& y, PyObject* pyfun);
180 const nptr_t& expr,
const z3::expr& y, PyObject* pyfun);
200 :
syn(syn_),
c1(c1_),
c2(c2_) {}
Z3ExprAdapter & c1
Definition: synthesizer.hpp:196
const MemVar * mem
Definition: synthesizer.hpp:36
void synthesizeReg(nmap_t::iterator pos, PyObject *pyfun)
nptr_t _synthesize(const std::string &name, const nptr_t &de_expr, const nptr_t &expr, const z3::expr &y, PyObject *pyfun)
std::set< const BoolVar * > bools
Definition: synthesizer.hpp:30
void synthesizeAll(PyObject *pyfun)
Definition: abstraction.hpp:27
virtual bool equal(const Node *that) const
Definition: synthesizer.hpp:116
SupportVars decodeSupport
Definition: synthesizer.hpp:163
Definition: synthesizer.hpp:35
outpair_vec_t outputs
Definition: synthesizer.hpp:106
nptr_t getExpr(const z3::expr &y, const nptr_t &ex, int i, const nptr_t &de_expr)
const Node * node
Definition: synthesizer.hpp:142
boost::variant< MemValues, std::string, bool > out
Definition: synthesizer.hpp:79
void _addConstRegAssumps()
Definition: synthesizer.hpp:22
virtual void useAssump(const nptr_t &a)
std::set< const Node * > visited
Definition: synthesizer.hpp:27
Z3ExprAdapter c1
Definition: synthesizer.hpp:168
std::unique_ptr< DistInput > _getDistInput(z3::expr y)
SimoutAdapter(Z3ExprRewritingAdapter &a, const Node *n)
static const char * suffix1
Definition: synthesizer.hpp:158
std::vector< nptr_t > nptr_vec_t
Definition: node.hpp:27
Definition: synthesizer.hpp:115
Synthesizer & syn
Definition: synthesizer.hpp:120
mode_t
Definition: synthesizer.hpp:116
z3::expr _createSynMiter(const nptr_t &ex)
Definition: abstraction.hpp:31
virtual bool equal(const Node *that) const
bool operator==(const SimOutput &that) const
Z3ExprAdapter & c2
Definition: synthesizer.hpp:197
z3::expr r_cnst
Definition: synthesizer.hpp:144
z3::context c
Definition: synthesizer.hpp:166
z3::solver S
Definition: synthesizer.hpp:167
bool operator==(const mem_info_t &that) const
Definition: synthesizer.hpp:40
boost::shared_ptr< Node > nptr_t
Definition: node.hpp:24
bool reuseModels
Definition: synthesizer.hpp:117
SupportVars()
Definition: synthesizer.hpp:57
bool canFixUp
Definition: synthesizer.hpp:23
std::vector< mem_info_t > rdexprs
Definition: synthesizer.hpp:45
Definition: synthesizer.hpp:156
std::unique_ptr< DistInput > inputs
Definition: synthesizer.hpp:105
void reset(bool reuseModels)
Z3ExprRewritingAdapter & adapter
Definition: synthesizer.hpp:141
static const char * suffix2
Definition: synthesizer.hpp:159
dtree_ptr_t replay_ptr
Definition: synthesizer.hpp:124
nptr_t _synthesizeEx(const std::string &name, const nptr_t &de_expr, const nptr_t &expr, const z3::expr &y, PyObject *pyfun)
Definition: memvalues.hpp:20
boost::shared_ptr< SimOutput > simout_ptr_t
Definition: synthesizer.hpp:95
void _addExpr(const nptr_t &expr, Z3ExprAdapter &c1, Z3ExprAdapter &c2)
z3::solver Sp
Definition: synthesizer.hpp:167
Definition: abstraction.hpp:21
Definition: bitvec.hpp:26
dtree_ptr_t head
Definition: synthesizer.hpp:122
Definition: synthesizer.hpp:194
nptr_t _synthesizeOp(const std::string &name, const nptr_t &var, nptr_vec_t &next_vec, const nptr_t &next, PyObject *pyfun)
Definition: synthesizer.hpp:116
bool _eq(const nptr_t &n1, const nptr_t &n2)
Z3ExprAdapter c2
Definition: synthesizer.hpp:168
dtree_ptr_t * insert_ptr
Definition: synthesizer.hpp:127
init_assump_t(Synthesizer &syn_, Z3ExprAdapter &c1_, Z3ExprAdapter &c2_)
Definition: synthesizer.hpp:199
Synthesizer & syn
Definition: synthesizer.hpp:195
int MAX_SYN_ITER
Definition: synthesizer.hpp:165
SimOutput & operator=(const SimOutput &that)
const BitvectorExpr * rddata
Definition: synthesizer.hpp:38
void setOutput(const simout_ptr_t &out)
std::set< const BitvectorVar * > bitvecs
Definition: synthesizer.hpp:32
enum ilasynth::DITree::mode_t mode
std::pair< simout_ptr_t, dtree_ptr_t > outpair_t
Definition: synthesizer.hpp:102
Abstraction & abs
Definition: synthesizer.hpp:161
Definition: synthesizer.hpp:140
Synthesizer(Abstraction &abs, const std::vector< nmap_t *> &maps)
nptr_t _getCombinedExpr(const nptr_t &var, const nptr_vec_t &next_vec)
std::vector< outpair_t > outpair_vec_t
Definition: synthesizer.hpp:103
z3::expr operator()(bool res) const
nptr_t result
Definition: synthesizer.hpp:107
Definition: synthesizer.hpp:101
Definition: synthesizer.hpp:78
bool depCheck(z3::context &c, z3::solver &S, const nptr_t &ex)
bool enumRdExprVars
Definition: synthesizer.hpp:24
DITree ditree
Definition: synthesizer.hpp:170
z3::expr r_expr
Definition: synthesizer.hpp:143
boost::shared_ptr< DITreeNode > dtree_ptr_t
Definition: synthesizer.hpp:98
std::ostream & operator<<(std::ostream &out, const Node &that)
const std::vector< nmap_t * > maps
Definition: synthesizer.hpp:162
DistInput * getDistInput(const z3::expr &y)
const BitvectorExpr * addr
Definition: synthesizer.hpp:37
void initOutput(const NodeType &nt, const py::object &r)