metaSMT git
Public Types | Public Member Functions

metaSMT::DirectSolver_Context< SolverContext > Struct Template Reference

direct Solver integration More...

#include <DirectSolver_Context.hpp>

List of all members.

Public Types

typedef SolverContext::result_type result_type
 The returned expression type is the result_type of the SolverContext.

Public Member Functions

template<typename Expr1 , typename Expr2 >
result_type operator() (logic::QF_BV::tag::bvuint_tag const &tag, Expr1 value, Expr2 bw)
template<typename Expr1 , typename Expr2 >
result_type operator() (logic::QF_BV::tag::bvsint_tag const &tag, Expr1 value, Expr2 bw)
template<typename Expr1 >
result_type operator() (logic::QF_BV::tag::bvbin_tag tag, Expr1 value)
template<typename Expr1 >
result_type operator() (logic::QF_BV::tag::bvhex_tag tag, Expr1 value)
result_type operator() (boost::proto::tag::terminal,::metaSMT::logic::tag::var_tag tag)
 handling of logic::predicate (boolean variables)
result_wrapper read_value (logic::predicate var)
 result retrieval for logic::predicate (boolean variables)
result_wrapper read_value (logic::QF_BV::bitvector var)
 result retrieval for logic::QF_BV::bitvector variables
result_type operator() (boost::proto::tag::terminal,::metaSMT::logic::Array::tag::array_var_tag tag)
result_type operator() (boost::proto::tag::terminal,::metaSMT::logic::QF_BV::tag::var_tag tag)
template<typename Upper , typename Lower , typename Expr >
result_type operator() (logic::QF_BV::tag::extract_tag t, Upper upper, Lower lower, Expr e)
template<typename Width , typename Expr >
result_type operator() (logic::QF_BV::tag::zero_extend_tag t, Width width, Expr e)
template<typename Width , typename Expr >
result_type operator() (logic::QF_BV::tag::sign_extend_tag t, Width width, Expr e)
template<typename Tag >
result_type operator() (Tag t)
template<typename Tag >
result_type operator() (boost::proto::tag::terminal, Tag t)
template<typename Tag , typename Expr1 >
result_type operator() (Tag t, Expr1 e1)
template<typename Tag , typename Expr1 , typename Expr2 >
result_type operator() (Tag t, Expr1 e1, Expr2 e2)
template<typename Tag , typename Expr1 , typename Expr2 , typename Expr3 >
result_type operator() (Tag t, Expr1 e1, Expr2 e2, Expr3 e3)
result_type operator() (boost::proto::tag::terminal, result_type r)

Detailed Description

template<typename SolverContext>
struct metaSMT::DirectSolver_Context< SolverContext >

direct Solver integration

DirectSolver_Context takes a SolverType and directly feeds all commands to it. Variable expressions are cached and only evaluated once.

Definition at line 28 of file DirectSolver_Context.hpp.


Member Typedef Documentation

template<typename SolverContext>
typedef SolverContext::result_type metaSMT::DirectSolver_Context< SolverContext >::result_type

The returned expression type is the result_type of the SolverContext.

Definition at line 33 of file DirectSolver_Context.hpp.


Member Function Documentation

template<typename SolverContext>
template<typename Expr1 , typename Expr2 >
result_type metaSMT::DirectSolver_Context< SolverContext >::operator() ( logic::QF_BV::tag::bvuint_tag const &  tag,
Expr1  value,
Expr2  bw 
) [inline]

Definition at line 37 of file DirectSolver_Context.hpp.

template<typename SolverContext>
result_type metaSMT::DirectSolver_Context< SolverContext >::operator() ( boost::proto::tag::terminal  ,
result_type  r 
) [inline]

Definition at line 246 of file DirectSolver_Context.hpp.

template<typename SolverContext>
template<typename Tag , typename Expr1 , typename Expr2 , typename Expr3 >
result_type metaSMT::DirectSolver_Context< SolverContext >::operator() ( Tag  t,
Expr1  e1,
Expr2  e2,
Expr3  e3 
) [inline]

Definition at line 238 of file DirectSolver_Context.hpp.

template<typename SolverContext>
template<typename Tag , typename Expr1 , typename Expr2 >
result_type metaSMT::DirectSolver_Context< SolverContext >::operator() ( Tag  t,
Expr1  e1,
Expr2  e2 
) [inline]

Definition at line 230 of file DirectSolver_Context.hpp.

template<typename SolverContext>
template<typename Tag , typename Expr1 >
result_type metaSMT::DirectSolver_Context< SolverContext >::operator() ( Tag  t,
Expr1  e1 
) [inline]

Definition at line 223 of file DirectSolver_Context.hpp.

template<typename SolverContext>
template<typename Expr1 , typename Expr2 >
result_type metaSMT::DirectSolver_Context< SolverContext >::operator() ( logic::QF_BV::tag::bvsint_tag const &  tag,
Expr1  value,
Expr2  bw 
) [inline]

Definition at line 51 of file DirectSolver_Context.hpp.

template<typename SolverContext>
template<typename Tag >
result_type metaSMT::DirectSolver_Context< SolverContext >::operator() ( Tag  t) [inline]

Definition at line 213 of file DirectSolver_Context.hpp.

template<typename SolverContext>
template<typename Expr1 >
result_type metaSMT::DirectSolver_Context< SolverContext >::operator() ( logic::QF_BV::tag::bvhex_tag  tag,
Expr1  value 
) [inline]

Definition at line 75 of file DirectSolver_Context.hpp.

template<typename SolverContext>
template<typename Width , typename Expr >
result_type metaSMT::DirectSolver_Context< SolverContext >::operator() ( logic::QF_BV::tag::zero_extend_tag  t,
Width  width,
Expr  e 
) [inline]

Definition at line 190 of file DirectSolver_Context.hpp.

template<typename SolverContext>
template<typename Upper , typename Lower , typename Expr >
result_type metaSMT::DirectSolver_Context< SolverContext >::operator() ( logic::QF_BV::tag::extract_tag  t,
Upper  upper,
Lower  lower,
Expr  e 
) [inline]

Definition at line 178 of file DirectSolver_Context.hpp.

template<typename SolverContext>
result_type metaSMT::DirectSolver_Context< SolverContext >::operator() ( boost::proto::tag::terminal  ,
::metaSMT::logic::Array::tag::array_var_tag  tag 
) [inline]

Definition at line 149 of file DirectSolver_Context.hpp.

template<typename SolverContext>
result_type metaSMT::DirectSolver_Context< SolverContext >::operator() ( boost::proto::tag::terminal  ,
::metaSMT::logic::QF_BV::tag::var_tag  tag 
) [inline]

Definition at line 163 of file DirectSolver_Context.hpp.

template<typename SolverContext>
template<typename Tag >
result_type metaSMT::DirectSolver_Context< SolverContext >::operator() ( boost::proto::tag::terminal  ,
Tag  t 
) [inline]

Definition at line 218 of file DirectSolver_Context.hpp.

template<typename SolverContext>
template<typename Width , typename Expr >
result_type metaSMT::DirectSolver_Context< SolverContext >::operator() ( logic::QF_BV::tag::sign_extend_tag  t,
Width  width,
Expr  e 
) [inline]

Definition at line 201 of file DirectSolver_Context.hpp.

template<typename SolverContext>
result_type metaSMT::DirectSolver_Context< SolverContext >::operator() ( boost::proto::tag::terminal  ,
::metaSMT::logic::tag::var_tag  tag 
) [inline]

handling of logic::predicate (boolean variables)

Definition at line 84 of file DirectSolver_Context.hpp.

template<typename SolverContext>
template<typename Expr1 >
result_type metaSMT::DirectSolver_Context< SolverContext >::operator() ( logic::QF_BV::tag::bvbin_tag  tag,
Expr1  value 
) [inline]

Definition at line 65 of file DirectSolver_Context.hpp.

template<typename SolverContext>
result_wrapper metaSMT::DirectSolver_Context< SolverContext >::read_value ( logic::predicate  var) [inline]

result retrieval for logic::predicate (boolean variables)

Precondition:
solve() must be true before calling and no assertions/assumptions may be added in between.
Returns:
a result_wrapper that is converatble to boolean (and other types) containing the assignment for var, or "X" if var is not known to the solver.

Definition at line 108 of file DirectSolver_Context.hpp.

template<typename SolverContext>
result_wrapper metaSMT::DirectSolver_Context< SolverContext >::read_value ( logic::QF_BV::bitvector  var) [inline]

result retrieval for logic::QF_BV::bitvector variables

Precondition:
solve() must be true before calling and no assertions/assumptions may be added in between.
Returns:
a result_wrapper containing the assignment for var, or "X" if var is not known to the solver.

Definition at line 130 of file DirectSolver_Context.hpp.


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