Session 14: 工具论文
1. 引言
在计算机辅助验证(CAV)领域,工具论文扮演着至关重要的角色。这些论文不仅展示了新的验证工具、模型检查工具和其他辅助软件验证与形式化方法的工具,还详细介绍了工具的设计理念、实现技术、应用场景以及相对于已有工具的优势。工具论文的目的是为了帮助研究者和工程师更好地理解和使用这些工具来解决实际问题。本文将介绍几篇精选的工具论文,探讨它们的独特之处和创新点。
2. Cascade: C 断言检查器和演绎引擎
2.1 简介
Cascade 是一个用于检查 C 程序断言的工具,作为多阶段验证策略的一部分。Cascade 接收 C 程序和一个控制文件作为输入,后者指定了一个或多个需要检查的断言,以及一些程序行为的限制。对于每个断言,Cascade 会生成一条违反断言的具体路径,或是一个证明断言不会被违反的演绎。
2.2 系统设计
Cascade 由大约 6000 行 C++ 代码组成,其总体设计如图 1 所示。核心模块接收一个代表 C 程序的抽象语法树(AST)和一个控制文件,后者指定了一个或多个需要检查的潜在错误。核心模块使用符号模拟遍历抽象语法树,构建与控制文件中指定的断言相对应的验证条件。C 语句的语义被硬编码到核心模块使用的转换规则中,这些规则将 C 语句转换为逻辑公式。