Loop invariant symbolic execution for parallel programs

VERIFICATION, MODEL CHECKING, AND ABSTRACT INTERPRETATION(2012)

引用 26|浏览1
暂无评分
摘要
Techniques for verifying program assertions using symbolic execution exhibit a significant limitation: they typically require that (small) bounds be imposed on the number of loop iterations. For sequential programs, there is a way to overcome this limitation using loop invariants. The basic idea is to assign new symbolic constants to the variables modified in the loop body, add the invariant to the path condition, and then explore two paths: one which executes the loop body and checks that the given invariant is inductive, the other which jumps to the location just after the loop. For parallel programs, the situation is more complicated: the invariant may relate the state of multiple processes, these processes may enter and exit the loop at different times, and they may be at different iteration counts at the same time. In this paper, we show how to overcome these obstacles. Specifically, we introduce the notion of collective loop invariant and a symbolic execution technique that uses it to verify assertions in message-passing parallel programs with unbounded loops, generalizing the sequential technique.
更多
查看译文
关键词
symbolic execution exhibit,loop invariant symbolic execution,symbolic execution technique,unbounded loop,loop body,new symbolic constant,loop invariants,different iteration count,loop iteration,parallel program,collective loop invariant
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要