Denotational Semantics for Symbolic Execution

Erik Voogd, Asmund Aqissiaq Arild Klovstad,Einar Broch Johnsen

THEORETICAL ASPECTS OF COMPUTING, ICTAC 2023(2023)

引用 0|浏览0
暂无评分
摘要
Symbolic execution is a technique to systematically explore all possible paths through a program. This technique can be formally explained by means of small-step transition systems that update symbolic states and compute a precondition corresponding to the taken execution path (called the path condition). To enable swift and robust compositional reasoning, this paper defines a denotational semantics for symbolic execution. We prove the correspondence between the denotational semantics and both the small-step execution semantics and a concrete semantics. The denotational semantics is a function defined piecewise using a partitioning of the input space. Each part of the input space is a path condition obtained from symbolic execution, and the semantics of this part is the corresponding symbolic substitution interpreted as a function on the initial state space. Correctness and completeness of symbolic execution is encapsulated in a graceful identity of functions. We provide mechanizations in Coq for our main results.
更多
查看译文
关键词
Formal methods,Programming semantics,Denotational semantics,Symbolic execution
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要