×

将高阶逻辑转换为纯有状态ML的证明性翻译。 (英文) 兹比尔1297.68053

摘要:在Coq和各种HOL系统等证明助手中发现的高阶逻辑为功能程序的开发和验证提供了方便的设置。然而,为了有效地运行这些程序,必须将它们转换(或“提取”)为编程语言(如ML或Haskell)中的函数程序。在当前技术中,这一步骤必须是可信的,它将具有非常不同语义定义的外观相似的对象联系起来,例如逻辑的集合理论模型和编程语言的操作语义。在本文中,我们展示了如何使用自动化技术提高这一步骤的可信度。给定一个用高阶逻辑表示的函数程序,我们的技术为用操作语义定义的函数语言提供了相应的程序,并提供了一个将二者联系起来的机械检验定理。然后,可以使用该定理将逻辑函数的验证属性传递给程序。我们在HOL4定理证明器中实现了我们的技术,将函数转换为标准ML的子集,并将该实现应用于示例,包括函数数据结构、解析器生成器、密码算法、垃圾收集器和HOL光定理证明器的500线内核。本文用新材料扩展了我们以前的会议出版物,展示了如何通过证明将状态和异常单体定义的函数转换为有状态ML代码。HOL灯的例子也是新的。

MSC公司:

68甲18 函数编程和lambda演算
68吨15 定理证明(演绎、解析等)(MSC2010)
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[1] 验证软件:理论、工具、实验(VSTTE)第142页–(2010年)
[2] 交互式定理证明(ITP)第412页–(2012)
[3] 可计算函数的逻辑:机器实现的描述(1972)
[4] 函数编程国际会议论文集(ICFP'10)。第273页–(2010年)
[5] 程序设计语言原理学报(POPL'10)。第237页–(2010年)
[6] 系统构建和分析的工具和算法(TACAS)第471页–(2008年)
[7] 自动扣除(CADE)第19页–(2007年)
[8] 欧洲计划研讨会(ESOP)第205页–(2007年)
[9] 形式方法(FM)第169页–(2011)
[10] 证明和程序的类型(Types)。第200页–(2003)
[11] 内政部:10.1007/s10817-009-9155-4·Zbl 1185.68215号 ·doi:10.1007/s10817-009-9155-4
[12] 程序设计语言原理(POPL)(2014)
[13] 高阶逻辑中递归定义和终止证明的自动化(2009)
[14] DOI:10.1016/S1567-8326(02)00065-6·Zbl 1048.68051号 ·doi:10.1016/S1567-8326(02)00065-6
[15] 元理论与定理证明中的反思:综述与批判(1995)
[16] 编程逻辑、人工智能和推理(LPAR)第519页–(2005)
[17] 内政部:10.1007/s00165-007-0028-5·兹比尔1125.68048 ·doi:10.1007/s00165-007-0028-5
[18] Vèrification formelle d’un compilater pour langages fonctionnels(2009)
[19] 内政部:10.1016/0890-5401(88)90005-3·Zbl 0654.03045号 ·doi:10.1016/0890-5401(88)90005-3
[20] 程序设计语言原理学报(POPL'10)。第93页–(2010年)
[21] 程序设计语言原理学报(POPL'11)。第43页–(2011年)
[22] 函数编程国际会议论文集(ICFP'11)。第418页–(2011年)
[23] DOI:10.1007/s10990-008-9038-0·Zbl 1175.68103号 ·doi:10.1007/s10990-008-9038-0
[24] 函数编程国际会议记录(ICFP’10)第321页–(2010)
[25] 纯功能数据结构(1998)
[26] 内政部:10.1145/321864.321875·Zbl 0338.68014号 ·数字对象标识代码:10.1145/321864.321875
[27] 内政部:10.1093/comjnl/45.1.37·Zbl 1008.68122号 ·数字对象标识代码:10.1093/comjnl/45.1.37
[28] 欧洲编程研讨会(ESOP’09)会议记录第160页–(2009)
[29] 编译器构造(CC)第2页–(2009)
[30] 《欧洲编程研讨会论文集》(ESOP’12)第47页–(2012)
[31] 交互式定理证明(ITP)第490页–(2013)
[32] 高阶逻辑中的定理证明(TPHOL)pp 50–(2005)
[33] 《国际函数式编程会议论文集》(ICFP'12)。第115页–(2012年)
[34] 交互式定理证明(ITP)第265页–(2011)
[35] 认证程序和证明(CPP)。第66页–(2013年)
[36] 标准ML的定义(修订版)(1997年)
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。