10#ifndef KLEE_ARRAYEXPRREWRITER_H
11#define KLEE_ARRAYEXPRREWRITER_H
22using array2idx_ty = std::map<const Array *, std::vector<ref<Expr>>>;
36 const std::vector<
ref<Expr>>::const_iterator end);
Implements smart-pointer ref<> used by KLEE.
static ref< Expr > createOptExpr(const ref< Expr > &e, const array2idx_ty &arrays, const mapIndexOptimizedExpr_ty &idx_valIdx)
static ref< Expr > createRangeExpr(const ref< Expr > &index, const ref< Expr > &valStart, const ref< Expr > &valEnd)
static ref< Expr > concatenateOrExpr(const std::vector< ref< Expr > >::const_iterator begin, const std::vector< ref< Expr > >::const_iterator end)
static ref< Expr > rewrite(const ref< Expr > &e, const array2idx_ty &arrays, const mapIndexOptimizedExpr_ty &idx_valIdx)
static ref< Expr > createEqExpr(const ref< Expr > &index, const ref< Expr > &valIndex)
std::map< ref< Expr >, std::vector< ref< Expr > > > mapIndexOptimizedExpr_ty
std::map< const Array *, std::vector< ref< Expr > > > array2idx_ty