metaSMT 2
|
Backend for the Z3 SMT solver. More...
#include <metaSMT/backend/Z3_Context.hpp>
Classes | |
struct | Z3_F1 |
struct | Z3_F2 |
struct | Z3_F2_MULTI_ARG |
Public Types | |
typedef Z3_ast | result_type |
Public Member Functions | |
Z3_Context () | |
~Z3_Context () | |
void | assertion (result_type e) |
void | assumption (result_type e) |
void | command (stack_push const &, unsigned howmany) |
void | command (stack_pop const &, unsigned howmany) |
bool | solve () |
result_wrapper | read_value (result_type var) |
result_type | operator() (predtags::false_tag, boost::any arg) |
result_type | operator() (predtags::true_tag, boost::any arg) |
result_type | operator() (predtags::nor_tag, result_type a, result_type b) |
result_type | operator() (predtags::nand_tag, result_type a, result_type b) |
result_type | operator() (predtags::xnor_tag, result_type a, result_type b) |
result_type | operator() (predtags::ite_tag, result_type a, result_type b, result_type c) |
result_type | operator() (predtags::var_tag const &var, boost::any args) |
result_type | operator() (bvtags::bvcomp_tag, result_type a, result_type b) |
result_type | operator() (bvtags::extract_tag const &, unsigned long upper, unsigned long lower, result_type e) |
result_type | operator() (bvtags::zero_extend_tag const &, unsigned long width, result_type e) |
result_type | operator() (bvtags::sign_extend_tag const &, unsigned long width, result_type e) |
result_type | operator() (bvtags::var_tag const &var, boost::any args) |
result_type | operator() (bvtags::bit0_tag, boost::any arg) |
result_type | operator() (bvtags::bit1_tag, boost::any arg) |
result_type | operator() (bvtags::bvuint_tag, boost::any arg) |
result_type | operator() (bvtags::bvsint_tag, boost::any arg) |
result_type | operator() (bvtags::bvbin_tag, boost::any arg) |
result_type | operator() (bvtags::bvhex_tag, boost::any arg) |
result_type | operator() (arraytags::array_var_tag const &var, boost::any const &) |
result_type | operator() (arraytags::select_tag const &, result_type array, result_type index) |
result_type | operator() (arraytags::store_tag const &, result_type array, result_type index, result_type value) |
template<typename TagT > | |
result_type | operator() (TagT tag, boost::any args) |
template<typename TagT > | |
result_type | operator() (TagT tag, result_type a) |
template<typename TagT > | |
result_type | operator() (TagT tag, result_type a, result_type b) |
template<typename TagT , typename T1 , typename T2 , typename T3 > | |
result_type | operator() (TagT tag, T1 a, T2 b, T3 c) |
Protected Types | |
typedef std::string::const_iterator | ConstIterator |
typedef boost::tuple< unsigned, unsigned > | BitvectorTuple |
typedef std::pair< std::string, BitvectorTuple > | NamedTuple |
Protected Member Functions | |
void | build_model_map (std::string const &assign_str) |
Backend for the Z3 SMT solver.
Definition at line 51 of file Z3_Context.hpp.
typedef boost::tuple<unsigned, unsigned> metaSMT::solver::Z3_Context::BitvectorTuple [protected] |
Definition at line 467 of file Z3_Context.hpp.
typedef std::string::const_iterator metaSMT::solver::Z3_Context::ConstIterator [protected] |
Definition at line 466 of file Z3_Context.hpp.
typedef std::pair<std::string, BitvectorTuple> metaSMT::solver::Z3_Context::NamedTuple [protected] |
Definition at line 468 of file Z3_Context.hpp.
typedef Z3_ast metaSMT::solver::Z3_Context::result_type |
Definition at line 53 of file Z3_Context.hpp.
metaSMT::solver::Z3_Context::Z3_Context | ( | ) | [inline] |
Definition at line 55 of file Z3_Context.hpp.
metaSMT::solver::Z3_Context::~Z3_Context | ( | ) | [inline] |
Definition at line 64 of file Z3_Context.hpp.
void metaSMT::solver::Z3_Context::assertion | ( | result_type | e | ) | [inline] |
Definition at line 75 of file Z3_Context.hpp.
void metaSMT::solver::Z3_Context::assumption | ( | result_type | e | ) | [inline] |
Definition at line 79 of file Z3_Context.hpp.
void metaSMT::solver::Z3_Context::build_model_map | ( | std::string const & | assign_str | ) | [inline, protected] |
Definition at line 470 of file Z3_Context.hpp.
void metaSMT::solver::Z3_Context::command | ( | stack_pop const & | , |
unsigned | howmany | ||
) | [inline] |
Definition at line 91 of file Z3_Context.hpp.
void metaSMT::solver::Z3_Context::command | ( | stack_push const & | , |
unsigned | howmany | ||
) | [inline] |
Definition at line 84 of file Z3_Context.hpp.
result_type metaSMT::solver::Z3_Context::operator() | ( | TagT | tag, |
boost::any | args | ||
) | [inline] |
Definition at line 349 of file Z3_Context.hpp.
result_type metaSMT::solver::Z3_Context::operator() | ( | arraytags::store_tag const & | , |
result_type | array, | ||
result_type | index, | ||
result_type | value | ||
) | [inline] |
Definition at line 336 of file Z3_Context.hpp.
result_type metaSMT::solver::Z3_Context::operator() | ( | arraytags::select_tag const & | , |
result_type | array, | ||
result_type | index | ||
) | [inline] |
Definition at line 329 of file Z3_Context.hpp.
result_type metaSMT::solver::Z3_Context::operator() | ( | arraytags::array_var_tag const & | var, |
boost::any const & | |||
) | [inline] |
Definition at line 313 of file Z3_Context.hpp.
result_type metaSMT::solver::Z3_Context::operator() | ( | TagT | tag, |
result_type | a, | ||
result_type | b | ||
) | [inline] |
Definition at line 403 of file Z3_Context.hpp.
result_type metaSMT::solver::Z3_Context::operator() | ( | bvtags::bvbin_tag | , |
boost::any | arg | ||
) | [inline] |
Definition at line 245 of file Z3_Context.hpp.
result_type metaSMT::solver::Z3_Context::operator() | ( | bvtags::bvsint_tag | , |
boost::any | arg | ||
) | [inline] |
Definition at line 236 of file Z3_Context.hpp.
result_type metaSMT::solver::Z3_Context::operator() | ( | bvtags::bvuint_tag | , |
boost::any | arg | ||
) | [inline] |
Definition at line 227 of file Z3_Context.hpp.
result_type metaSMT::solver::Z3_Context::operator() | ( | TagT | tag, |
T1 | a, | ||
T2 | b, | ||
T3 | c | ||
) | [inline] |
Definition at line 461 of file Z3_Context.hpp.
result_type metaSMT::solver::Z3_Context::operator() | ( | bvtags::bit0_tag | , |
boost::any | arg | ||
) | [inline] |
Definition at line 217 of file Z3_Context.hpp.
result_type metaSMT::solver::Z3_Context::operator() | ( | bvtags::var_tag const & | var, |
boost::any | args | ||
) | [inline] |
Definition at line 209 of file Z3_Context.hpp.
result_type metaSMT::solver::Z3_Context::operator() | ( | bvtags::zero_extend_tag const & | , |
unsigned long | width, | ||
result_type | e | ||
) | [inline] |
Definition at line 195 of file Z3_Context.hpp.
result_type metaSMT::solver::Z3_Context::operator() | ( | predtags::true_tag | , |
boost::any | arg | ||
) | [inline] |
Definition at line 142 of file Z3_Context.hpp.
result_type metaSMT::solver::Z3_Context::operator() | ( | bvtags::extract_tag const & | , |
unsigned long | upper, | ||
unsigned long | lower, | ||
result_type | e | ||
) | [inline] |
Definition at line 189 of file Z3_Context.hpp.
result_type metaSMT::solver::Z3_Context::operator() | ( | bvtags::bvcomp_tag | , |
result_type | a, | ||
result_type | b | ||
) | [inline] |
Definition at line 181 of file Z3_Context.hpp.
result_type metaSMT::solver::Z3_Context::operator() | ( | predtags::var_tag const & | var, |
boost::any | args | ||
) | [inline] |
Definition at line 173 of file Z3_Context.hpp.
result_type metaSMT::solver::Z3_Context::operator() | ( | bvtags::bvhex_tag | , |
boost::any | arg | ||
) | [inline] |
Definition at line 253 of file Z3_Context.hpp.
result_type metaSMT::solver::Z3_Context::operator() | ( | predtags::xnor_tag | , |
result_type | a, | ||
result_type | b | ||
) | [inline] |
Definition at line 160 of file Z3_Context.hpp.
result_type metaSMT::solver::Z3_Context::operator() | ( | bvtags::bit1_tag | , |
boost::any | arg | ||
) | [inline] |
Definition at line 222 of file Z3_Context.hpp.
result_type metaSMT::solver::Z3_Context::operator() | ( | bvtags::sign_extend_tag const & | , |
unsigned long | width, | ||
result_type | e | ||
) | [inline] |
Definition at line 202 of file Z3_Context.hpp.
result_type metaSMT::solver::Z3_Context::operator() | ( | predtags::nor_tag | , |
result_type | a, | ||
result_type | b | ||
) | [inline] |
Definition at line 146 of file Z3_Context.hpp.
result_type metaSMT::solver::Z3_Context::operator() | ( | predtags::false_tag | , |
boost::any | arg | ||
) | [inline] |
Definition at line 138 of file Z3_Context.hpp.
result_type metaSMT::solver::Z3_Context::operator() | ( | predtags::ite_tag | , |
result_type | a, | ||
result_type | b, | ||
result_type | c | ||
) | [inline] |
Definition at line 166 of file Z3_Context.hpp.
result_type metaSMT::solver::Z3_Context::operator() | ( | predtags::nand_tag | , |
result_type | a, | ||
result_type | b | ||
) | [inline] |
Definition at line 153 of file Z3_Context.hpp.
result_type metaSMT::solver::Z3_Context::operator() | ( | TagT | tag, |
result_type | a | ||
) | [inline] |
Definition at line 361 of file Z3_Context.hpp.
result_wrapper metaSMT::solver::Z3_Context::read_value | ( | result_type | var | ) | [inline] |
Definition at line 110 of file Z3_Context.hpp.
bool metaSMT::solver::Z3_Context::solve | ( | ) | [inline] |
Definition at line 95 of file Z3_Context.hpp.