编程计算与演绎的结合:从逻辑推理到谜题求解
1. 背景与动机
在当今的电子设计自动化(EDA)领域,已经有不少商业工具嵌入了模型检查器。可以预见,未来的工具很可能还需要嵌入定理证明功能。此前有项目对在硬件和软件应用中嵌入定理证明进行了研究,而我们这里聚焦于在单一系统HOL中进行演绎和计算的编程。具体涉及以下几个方面:
- 脚本化定理证明和符号计算的组合。
- 从抽象表示编译到布尔表示,再将布尔结果提升回抽象级别的“逻辑流”。
- 一个特定工具实现的案例研究。
传统实现专用符号模型检查点工具的方法,要么直接使用BDD包编程,要么使用现成的模型检查器。而我们的方法优势在于,实现者可以在高阶逻辑的表达性语言中开发模型,然后实现定制化函数来高效执行所需的计算。定理证明的策略和简化器基础设施可用于将问题编译到BDD和SAT等专用预言机的领域。虽然我们的工具不用于关键系统,LCF风格证明提供的高保证价值不大,但即使不需要健全性保证,这种实现风格也是编程计算和演绎组合的强大方式。
2. 相关工作
- HOL - Voss系统 :这是早期将定理证明和模型检查结合的系统。Voss是一种类似ML的惰性函数式语言,内置BDD数据类型。HOL - Voss系统将HOL演绎与BDD计算集成,BDD工具用FL编程,可通过HOL - Voss策略调用。后来Voss发展成Forte系统,它无缝集成了多种模型检查引擎、轻量级定理证明和广泛的调试功能。
- PVS扩展 :Rajan、Shankar和Srivas通过将PVS扩展,支持对μ - 演算中陈述的属性进行符号模型
超级会员免费看
订阅专栏 解锁全文

19

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



