Unfortunately no. KLEE has no way to limit it's search to paths which (will 
eventually) satisfy the predicates.

Ideally a very smart search strategy would handle this automatically as part of 
trying to get code coverage, but it is a very hard problem.

 - Daniel


On Apr 28, 2010, at 6:02, Heinz Riener <hriener at student.tugraz.at> wrote:

> Dear all,
> 
> Currently I'm using KLEE to check whether a program fulfills certain 
> properties.  Consider the following pseudo code example, where f is a 
> function and p1, p2, and p3 are predicates using global variables or 
> values returned from f.
> 
>   // a very large program
>   f(/* symbolic args */);
> 
>   // predicate checks
>   if (p1) {
>     printf("Property #1 satisfied.");
>   }
>   if (p2) {
>     printf("Property #2 satisfied.");
>   }
>   if (p3) {
>     printf("Property #3 satisfied.");
>   }
> 
> The properties are exclusive such that only one property is true at a 
> time.  I'm only interested if there is one path that fulfills property 
> p1, one path that fulfills property p2 and one path that fulfills 
> property p3.  However, KLEE searches for all feasible execution paths 
> and thus fulfills each property multiple times, which is a huge 
> computational waste in my case.  I'm looking for a way to tell KLEE that 
> each property should be checked only once.
> 
> Is there some kind of KLEE instrumentation trick that could assist me? 
> Can you give me some other advice to make my search task more efficient?
> 
> Regards,
> Heinz
> _______________________________________________
> klee-dev mailing list
> klee-dev at keeda.stanford.edu
> http://keeda.Stanford.EDU/mailman/listinfo/klee-dev

Reply via email to