形式化方法在软件开发中的创新应用
在软件开发领域,尤其是安全关键系统的开发中,形式化方法起着至关重要的作用。它依赖于对条件的形式验证,如不变式保持。然而,当规范逻辑不可判定时,就需要人工交互来解除证明义务。本文将介绍在这一领域的两项重要创新,一是 Atelier B 交互式证明器的改进,二是 B 方法对动态数据结构建模的新途径。
Atelier B 交互式证明器的改进
Atelier B 是用于 B 方法和 Event - B 的集成开发环境,包含自定义的自动和交互式证明器。提高自动证明器的成功率并减少用户交互,对于降低形式化方法的成本和增加其在工业中的应用至关重要。
技术背景
- Atelier B 的证明机制 :在 Atelier B 中,证明义务(POs)会自动生成,有两个证明引擎来检查它们。“pr”求解器是一个用类似 Prolog 符号编写的条件项重写引擎,用户也可以编写自己的规则,但最终需要验证。“pp”谓词证明器用于证明规则,采用(不完整)基于表的方法,两者都经过了认证。对于 pp 无法处理的规则,需要先进行数学证明,再由第三方独立专家验证。
- 利用自动证明器 :自 Atelier B 最初开发以来,机械定理证明取得了很大进展,如 SMT 求解器等强大的自动证明器已经出现。我们的目标是在不影响认证的情况下,利用这些进展。我们借鉴了 Isabelle 通用证明系统的方法,扩展了“sledgehammer”功能,在 Atelier B 的遗留证明系统中实现了名为“交互式证明器的苦力”的扩展。
超级会员免费看
订阅专栏 解锁全文

9万+

被折叠的 条评论
为什么被折叠?



