嵌入式软件验证:k - 归纳与混合验证方法解析
1. k - 归纳算法在嵌入式C软件模型检查中的应用
在嵌入式C软件的验证领域,k - 归纳算法正逐渐崭露头角。
1.1 相关工作对比
- IC3与k - 归纳 :“基于属性的可达性”(IC3)程序在系统安全验证中有所应用,在某些基准测试中,IC3能取得比k - 归纳更好的效果,但已有研究对二者进行了比较,本文主要聚焦于相关的k - 归纳程序。
- 数学归纳法验证的局限 :以往对硬件和软件系统进行数学归纳证明存在一定限制,例如需要修改代码来引入循环不变式,这使得验证过程的自动化变得复杂,除非结合其他方法自动计算循环不变式。而本文提出的方法完全自动,无需用户在每个循环后提供循环不变式作为最终断言。
- 有界模型检查(BMC)工具 :BMC工具常被用作查找漏洞的工具,因为它们通常分析有界的程序运行。只有当BMC工具知道状态空间深度的上限时,才能保证完整性,但这通常难以实现。本文的研究弥补了这一差距,表明k - 归纳算法可在无需人工干预的情况下应用于更广泛的C程序。
方法 | 优点 | 缺点 |
---|---|---|
IC3 | 在某些基准测试中表现优于k - 归纳 | - |