使用SMT求解器增强Rodin平台的形式化验证能力
1. 引言
在形式化开发中,Event - B是一种重要的建模符号,而Rodin平台则是用于Event - B形式化建模的集成设计环境。Rodin基于Eclipse框架,具有可扩展的架构,支持使用Event - B符号构建系统的形式化模型及其细化。为确保Event - B模型的一致性,Rodin会生成大量的证明义务,这些证明义务需要被验证(即证明为有效)。
证明义务在Rodin内部以相继式的形式表示,验证机制基于相继式演算。通过应用证明规则,一个相继式可以被转换为零个、一个或多个通常更简单的相继式。产生零个相继式的证明规则被称为消解规则,验证的目标是构建一个证明树,使得所有叶子节点都是消解规则。证明规则通常由所谓的推理器生成,推理器可以是独立的插件,也可以通过第三方工具使用现有的验证技术。
Rodin平台以及形式化方法的可用性在很大程度上取决于验证活动的几个方面:
- 自动化 :理想情况下,证明义务应由推理器自动验证。如果需要人工交互(使用交互式定理证明器)来消解证明义务,会对生产力产生负面影响。
- 信息 :证明义务的验证不应受模型无关修改的影响。在修改模型时,如果记录了验证每个证明义务所使用的精确事实,那么大部分证明可以被保留。此外,即使证明义务略有不同(在无关部分),通过注意到相同的证明适用,也可以在不需要推理器的情况下消解类似的证明义务。最后,失败证明义务的反例对用户改进模型和不变式非常有价值。
- 信任 :使用证明器时,工具本身或其结果需要经过认证,否则会损害形式化开发的可信度
超级会员免费看
订阅专栏 解锁全文
21

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



