函数形式化验证与语义研究
在编程语言的研究领域,函数形式化验证以及语义表达是至关重要的研究方向。接下来,我们将深入探讨这两方面的相关内容。
函数形式化验证
在函数式语言和完全验证编译器的定理证明方面,多数工作是在 Coq 或 LF 中完成的,但我们更倾向于 PVS 更灵活的证明风格。
PoplMark 挑战之一是变量绑定的处理。已有多种解决方案被提出,其中大部分基于 de Bruijn 指标。虽然有人认为这种表示在形式证明中会引入过多开销,应避免使用,但现有解决方案并未证实这一点,而且我们在 PVS 中使用相同表示证明了主题归约,这也支持了该表示的可用性。
我们利用主类型属性的形式化,借助 PVS 证明了程序转换的类型保持性。这一形式化易于与特定转换的现有工作相连接,并且我们的结果允许在证明中固定类型基础,而关于主对的结果则无法使用。这些结果的结合表明,在像 Mini - ML 这样的核心函数式语言中,主类型可以被有效计算。
与在 Isabelle 中证明的主类型属性变体相比,我们的结果更具一般性,主要区别在于我们在形式证明中把基础作为参数进行处理。
我们成功地对表达式和类型的语法,以及具有弱多态性的类型系统进行了形式化。该形式化包含变量管理,用于处理带有量词的系统(如多态和存在类型系统)中变量的混合角色,这种表示能让我们在较高层面上对这些技术问题进行推理。我们使用 PVS 实现了两个目标:一是语法概念(如类型)的一致开发,二是算法的验证。
函数语义
在普通解释器和操作语义的可执行规范中,被解释语言通常由代数数据类型表示,操作则是将该数据类型作为参数的函数。而我们采用了一种不同
超级会员免费看
订阅专栏 解锁全文
1万+

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



