10#ifndef KLEE_ASSIGNMENT_H
11#define KLEE_ASSIGNMENT_H
23 typedef std::map<const Array*, std::vector<unsigned char> >
bindings_ty;
32 std::vector< std::vector<unsigned char> > &values,
33 bool _allowFreeValues=
false)
35 std::vector< std::vector<unsigned char> >::iterator valIt =
37 for (std::vector<const Array*>::const_iterator it = objects.begin(),
38 ie = objects.end(); it != ie; ++it) {
39 const Array *os = *it;
40 std::vector<unsigned char> &arr = *valIt;
41 bindings.insert(std::make_pair(os, arr));
50 template<
typename InputIterator>
51 bool satisfies(InputIterator begin, InputIterator end);
70 unsigned index)
const {
72 bindings_ty::const_iterator it =
bindings.find(array);
73 if (it!=
bindings.end() && index<it->second.size()) {
90 template<
typename InputIterator>
93 for (; begin!=end; ++begin)
Expr::Width getRange() const
Expr::Width getDomain() const
AssignmentEvaluator(const Assignment &_a)
ref< Expr > getInitialValue(const Array &mo, unsigned index)
bool satisfies(InputIterator begin, InputIterator end)
std::map< const Array *, std::vector< unsigned char > > bindings_ty
ref< Expr > evaluate(const Array *mo, unsigned index) const
Assignment(bool _allowFreeValues=false)
ConstraintSet createConstraintsFromAssignment() const
Assignment(const std::vector< const Array * > &objects, std::vector< std::vector< unsigned char > > &values, bool _allowFreeValues=false)
static ref< ConstantExpr > alloc(const llvm::APInt &v)
ref< Expr > visit(const ref< Expr > &e)
bool isTrue() const
isTrue - Is this the true expression.
static ref< Expr > create(const UpdateList &updates, ref< Expr > i)
Class representing a complete list of updates into an array.