ImpliedValue.h

Go to the documentation of this file.
00001 //===-- ImpliedValue.h ------------------------------------------*- C++ -*-===//
00002 //
00003 //                     The KLEE Symbolic Virtual Machine
00004 //
00005 // This file is distributed under the University of Illinois Open Source
00006 // License. See LICENSE.TXT for details.
00007 //
00008 //===----------------------------------------------------------------------===//
00009 
00010 #ifndef KLEE_IMPLIEDVALUE_H
00011 #define KLEE_IMPLIEDVALUE_H
00012 
00013 #include "klee/Expr.h"
00014 
00015 #include <vector>
00016 
00017 // The idea of implied values is that often we know the result of some
00018 // expression e is a concrete value C. In many cases this directly
00019 // implies that some variable x embedded in e is also a concrete value
00020 // (derived from C). This module is used for finding such variables
00021 // and their computed values.
00022 
00023 namespace klee {
00024   class ConstantExpr;
00025   class Expr;
00026   class ReadExpr;
00027   class Solver;
00028 
00029   typedef std::vector< std::pair<ref<ReadExpr>, 
00030                                  ref<ConstantExpr> > > ImpliedValueList;
00031   
00032   namespace ImpliedValue {        
00033     void getImpliedValues(ref<Expr> e, ref<ConstantExpr> cvalue, 
00034                           ImpliedValueList &result);
00035     void checkForImpliedValues(Solver *S, ref<Expr> e, 
00036                                ref<ConstantExpr> cvalue);    
00037   }
00038 
00039 }
00040 
00041 #endif

Generated on Fri Jun 5 03:31:31 2009 for klee by  doxygen 1.5.8