使用 Sparkle 证明惰性函数式程序的属性
1. 不同证明工具概述
在函数式编程的证明领域,有多种证明工具可供选择,它们各有特点和适用场景。
- Sparkle :专为函数式程序员设计,集成于惰性函数式编程语言 Clean 的发行版中。它提供了专门的策略和基于图重写的语义,方便“普通”函数式程序员进行证明。例如,对于证明一些与 Clean 语言语义紧密相关的属性,Sparkle 能利用其专门的策略进行高效推理。
- Agda :采用基于 λ - 项的标准构造类型理论,支持独立的证明检查。这使得在使用 Agda 时,证明的正确性可以得到更严格的验证。
- Era 和 Hera :Era 即等式推理助手,基于 Andy Gill 早期的工作构建,主要用于等式推理,不支持归纳或逻辑步骤等额外证明方法,且该项目曾一度中断。后来 Andy Gill 重启项目,推出了基于 Ajax 界面的 Hera,即 Haskell 等式推理助手。
- 自动化证明工具 :支持 Haskell 的一个子集,在证明过程中无需用户指导,但用户无法进一步影响证明过程,也不能建议策略来辅助证明构建。例如,当需要证明一些简单的 Haskell 程序属性时,该工具可以自动完成,但对于复杂情况可能就无法满足需求。
- Evt :即 Erlang 验证工具,用于 Erlang 语言。Erlang 是一种严格的、无类型的语言,主要用于开发分布式应用,Evt 已在实际较大的示例中得到应用。
- Pr
超级会员免费看
订阅专栏 解锁全文
57

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



