metaSMT git
Classes | Public Types | Public Member Functions | Protected Types | Protected Member Functions

metaSMT::solver::Z3_Context Class Reference

Backend for the Z3 SMT solver. More...

#include <metaSMT/backend/Z3_Context.hpp>

List of all members.

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)

Detailed Description

Backend for the Z3 SMT solver.

Definition at line 52 of file Z3_Context.hpp.


Member Typedef Documentation

typedef boost::tuple<unsigned, unsigned> metaSMT::solver::Z3_Context::BitvectorTuple [protected]

Definition at line 468 of file Z3_Context.hpp.

typedef std::string::const_iterator metaSMT::solver::Z3_Context::ConstIterator [protected]

Definition at line 467 of file Z3_Context.hpp.

typedef std::pair<std::string, BitvectorTuple> metaSMT::solver::Z3_Context::NamedTuple [protected]

Definition at line 469 of file Z3_Context.hpp.

Definition at line 54 of file Z3_Context.hpp.


Constructor & Destructor Documentation

metaSMT::solver::Z3_Context::Z3_Context ( ) [inline]

Definition at line 56 of file Z3_Context.hpp.

metaSMT::solver::Z3_Context::~Z3_Context ( ) [inline]

Definition at line 65 of file Z3_Context.hpp.


Member Function Documentation

void metaSMT::solver::Z3_Context::assertion ( result_type  e) [inline]

Definition at line 76 of file Z3_Context.hpp.

void metaSMT::solver::Z3_Context::assumption ( result_type  e) [inline]

Definition at line 80 of file Z3_Context.hpp.

void metaSMT::solver::Z3_Context::build_model_map ( std::string const &  assign_str) [inline, protected]

Definition at line 471 of file Z3_Context.hpp.

void metaSMT::solver::Z3_Context::command ( stack_pop const &  ,
unsigned  howmany 
) [inline]

Definition at line 92 of file Z3_Context.hpp.

void metaSMT::solver::Z3_Context::command ( stack_push const &  ,
unsigned  howmany 
) [inline]

Definition at line 85 of file Z3_Context.hpp.

template<typename TagT >
result_type metaSMT::solver::Z3_Context::operator() ( TagT  tag,
boost::any  args 
) [inline]

Definition at line 350 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 337 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 330 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 314 of file Z3_Context.hpp.

template<typename TagT >
result_type metaSMT::solver::Z3_Context::operator() ( TagT  tag,
result_type  a,
result_type  b 
) [inline]

Definition at line 404 of file Z3_Context.hpp.

result_type metaSMT::solver::Z3_Context::operator() ( bvtags::bvbin_tag  ,
boost::any  arg 
) [inline]

Definition at line 246 of file Z3_Context.hpp.

result_type metaSMT::solver::Z3_Context::operator() ( bvtags::bvsint_tag  ,
boost::any  arg 
) [inline]

Definition at line 237 of file Z3_Context.hpp.

result_type metaSMT::solver::Z3_Context::operator() ( bvtags::bvuint_tag  ,
boost::any  arg 
) [inline]

Definition at line 228 of file Z3_Context.hpp.

template<typename TagT , typename T1 , typename T2 , typename T3 >
result_type metaSMT::solver::Z3_Context::operator() ( TagT  tag,
T1  a,
T2  b,
T3  c 
) [inline]

Definition at line 462 of file Z3_Context.hpp.

result_type metaSMT::solver::Z3_Context::operator() ( bvtags::bit0_tag  ,
boost::any  arg 
) [inline]

Definition at line 218 of file Z3_Context.hpp.

result_type metaSMT::solver::Z3_Context::operator() ( bvtags::var_tag const &  var,
boost::any  args 
) [inline]

Definition at line 210 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 196 of file Z3_Context.hpp.

result_type metaSMT::solver::Z3_Context::operator() ( predtags::true_tag  ,
boost::any  arg 
) [inline]

Definition at line 143 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 190 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 182 of file Z3_Context.hpp.

result_type metaSMT::solver::Z3_Context::operator() ( predtags::var_tag const &  var,
boost::any  args 
) [inline]

Definition at line 174 of file Z3_Context.hpp.

result_type metaSMT::solver::Z3_Context::operator() ( bvtags::bvhex_tag  ,
boost::any  arg 
) [inline]

Definition at line 254 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 161 of file Z3_Context.hpp.

result_type metaSMT::solver::Z3_Context::operator() ( bvtags::bit1_tag  ,
boost::any  arg 
) [inline]

Definition at line 223 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 203 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 147 of file Z3_Context.hpp.

result_type metaSMT::solver::Z3_Context::operator() ( predtags::false_tag  ,
boost::any  arg 
) [inline]

Definition at line 139 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 167 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 154 of file Z3_Context.hpp.

template<typename TagT >
result_type metaSMT::solver::Z3_Context::operator() ( TagT  tag,
result_type  a 
) [inline]

Definition at line 362 of file Z3_Context.hpp.

result_wrapper metaSMT::solver::Z3_Context::read_value ( result_type  var) [inline]

Definition at line 111 of file Z3_Context.hpp.

bool metaSMT::solver::Z3_Context::solve ( ) [inline]

Definition at line 96 of file Z3_Context.hpp.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines