×

在高阶约束逻辑编程中实现类型理论。 (英语) Zbl 1430.68025号

摘要:在本文中,我们对高级编程语言感兴趣,以实现独立类型语言的交互式定理证明程序的核心组件:内核(负责对封闭项进行类型检查)和阐述器(操纵开放项),这是包含未解析统一变量的术语。
在本文中,我们证实了Miller和Nadatur自80年代以来开发的语言\(\lambda\)Prolog非常适合实现内核。事实上,我们很容易获得归纳构造微积分(CIC)的类型检查器。更重要的是,我们通过将纯类型系统的检查程序升级到完整的CIC,以增量方式完成这项工作。
然后,我们将注意力转向阐述者,目的是借助编程语言的特性获得一个简单的实现。特别是,我们希望使用\(\lambda\)Prolog的统一变量来建模对象语言的统一变量。通过这种方式,范围检查、赋值携带和发生检查由编程语言处理。
我们观察到,从Prolog继承的热切生成语义与此计划冲突。我们提出了对(lambda)Prolog的扩展,允许控制生成语义,将目标挂起在灵活的术语上,将其转换为约束,并最终通过约束处理规则在元-元数据级别操作这些约束。
我们在嵌入式Lambda Prolog解释器系统中实现了所建议的语言扩展,并讨论了如何将其用于将内核扩展为CIC的详细说明器。

MSC公司:

68N17号 逻辑编程
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[1] Andersson J。,安德森公司。,布尔茨克。,卡尔森。,尼尔森。,SjölandT公司。和WidenJ。(1993). SICStus Prolog用户手册。技术报告。
[2] 阿斯佩尔蒂亚。,里奇奥蒂W。,萨瑟多蒂·科恩。和塔西。(2009). 统一的提示。摘自:第22届高阶逻辑定理证明国际会议论文集,德国慕尼黑,8月17日至20日,84-98·Zbl 1252.68246号
[3] 阿斯佩蒂亚。,里奇奥蒂W。,萨瑟多蒂·科恩。和塔西。(2011). 马蒂塔互动定理证明者,柏林,海德堡:施普林格,64-69。国际标准图书编号978-3-642-22438-6·Zbl 1341.68179号
[4] 阿斯佩蒂亚。,里奇奥蒂W。,萨瑟多蒂·科恩。和TassiE。(2012). (共)归纳结构演算的双向精化算法。计算机科学中的逻辑方法8(1)1-49·Zbl 1238.68145号
[5] 阿斯佩蒂亚。,里奇奥蒂。和Sacerdoti CoenC。(2014). Matita教程。形式化推理杂志7(2)91-199。ISSN 1972-5787。可在https://jfr.unibo.it/article/view/4651。 ·兹比尔1451.68314
[6] 巴尔德。,乔杜里。,GacekA.公司。,米勒博士。,纳达图尔。,TiuA。和WangY。(2014). Abella:关于关系规范的推理系统。形式化推理杂志7(2)1-89。ISSN 1972-5787·Zbl 1451.68315号
[7] 巴拉斯B。(1999年11月)。preuves avec familles诱导剂自动验证系统。巴黎大学博士学位7。
[8] BelleanneC.、。,布里塞特。和RidouxO。(1999). Lambda-Prolog的语用重建。逻辑编程杂志41(1)67-102·Zbl 0948.68027号
[9] 伯托伊。,Gontier公司。,OuldBiha,S.和PascaI。(2008). 典型的大运营商。收件人:MohamedO。A.、穆诺兹。《高阶逻辑中的定理证明》,施普林格,柏林,海德堡,86-101。国际标准图书编号978-3-540-71067-7·Zbl 1165.68450号
[10] 博埃斯普鲁格姆。,二氧化碳当量。和赫曼托。(2012). lambda-pi-微积分模作为一种通用证明语言。摘自:《第二届定理证明交换国际研讨会论文集》,CEUR研讨会论文集,第878卷,第28-43页。
[11] Coq开发团队。(2017). Coq证明助理参考手册,Inria。
[12] 穆拉。,阿维加德J。,孔S。和RouxC。(2015年a)。依赖型理论的阐述。CoRR,abs/1505.04324。
[13] 穆拉。,香港。,AvigadJ。,vanDoorn,F.和von RaumerJ.(2015b)。《精益定理证明器(系统描述)》,施普林格国际出版社,查姆,378-388。国际标准图书编号978-3-319-21401-6·Zbl 1465.68279号
[14] 鸭子。J.、StuckeyP。J.,de la BandaM公司。G.和HolzbaurC。(2004). 约束处理规则的精细化操作语义。输入:DemoenB。和LifschitzV。(编辑)《逻辑编程》,斯普林格,柏林,海德堡,90-104。国际标准图书编号978-3-540-27775-0·Zbl 1104.68359号
[15] DunchevC。,指南。,萨瑟多蒂·科恩。和塔西。(2015). ELPI:快速、可嵌入的λProlog解释器。收录:《程序设计、人工智能和推理逻辑学报》·Zbl 1471.68046号
[16] DunchevC。,萨瑟多蒂·科恩。和TassiE。(2016). 用高阶逻辑编程语言实现HOL。摘自:《逻辑框架与元语言:理论与实践第11次研讨会论文集》,ACM,4:1-4:10。国际标准图书编号978-1-4503-4777-8。
[17] 埃伯尔集团。,乌尔里希。,罗伊斯奇J。,阿维加德J。和de MouraL。(2017年8月)。用于正式验证的元编程框架。摘自:《ACM编程语言学报》,第1卷,34:1-34:29。ISSN 2475-1421。
[18] 毛毡A。和MillerD。(1988). 在高阶逻辑编程语言中指定定理证明者。单位:LuskE。和OverbeekR。(eds.)第九届自动扣减国际会议论文集,美国伊利诺伊州阿贡,柏林斯普林格,海德堡,61-80·Zbl 0645.68097号
[19] 毛毡A。P.和Miller D。(1990). 用逻辑编程语言编码依赖类型lambda演算。摘自:《第十届自动扣减国际会议论文集》,英国伦敦:Springer-Verlag,221-235。国际标准图书编号(ISBN)3-540-52885-7·Zbl 0708.68090号
[20] 格乌弗什。和JojgovG。I.(2002)。开放证明和开放术语:交互式逻辑的基础。摘自:第16届计算机科学逻辑国际研讨会论文集,欧洲计算机科学逻辑协会第11届年会,英国苏格兰爱丁堡,537-552年9月22日至25日·Zbl 1020.03010号
[21] Gontier公司。,阿斯佩蒂亚。,阿维加德J。,伯托伊。,科恩。,加里洛特F。,LeRoux,S.,MahboubiA.,O'ConnorR.,OuldBiha,S.,帕斯卡。,里多尔。,索洛维耶夫。,塔西。和ThéryL。(2013). 奇数阶定理的机器检验证明。在:交互式定理证明国际会议,计算机科学讲稿,第7998卷,Springer,163-179·Zbl 1317.68211号
[22] 赫伯林。(2005). 归纳结构演算中具有代数宇宙的类型推理。未发布。网址:pauillac.iria.fr/herbelin/publis/univalgcci.pdf
[23] 图书馆。和MillerD。(2016). 函数作为构造函数的高阶统一。摘自:《第一届计算和演绎形式结构国际会议论文集》,葡萄牙波尔图,Delia Kesner和Brigitte Pientka,1-17·Zbl 1387.03008号
[24] 罗Z。(1989). ECC,一种扩展的构造演算。摘自:第四届计算机科学逻辑年度研讨会论文集,美国加利福尼亚州太平洋格罗夫,386-395·Zbl 0723.03034号
[25] 罗Z。(1996). 类型理论中的强制子类型。摘自:《第十届计算机科学逻辑国际研讨会论文集》,欧洲计算机科学逻辑协会年会,荷兰乌得勒支,9月21日至27日,论文集,276-296·Zbl 0882.03029号
[26] 罗兹。,索洛维耶夫。和雪特。(2013). 强制分型:理论与实施。信息与计算22318-42。ISSN 0890-5401·Zbl 1267.03042号
[27] MahboubiA和TassiE。(2013年7月)。工作Coq用户的标准结构。收件人:Blazy S。,保林·C。和PichardieD。(编辑)第四届交互式定理证明会议,计算机科学讲稿,第7998卷,雷恩,法国:施普林格,19-34·Zbl 1317.68221号
[28] 马佐利夫。和AbelA。(2016). 通过统一进行类型检查。CoRR,腹肌/1609.09709。
[29] 米勒D。(1992). 混合前缀下的统一。符号计算杂志14(4)321-358·Zbl 0768.68067号
[30] 米勒D。和NadathurG。(1986). 高阶逻辑编程。收录于:《第三届国际会议逻辑编程会议录》,《计算机科学讲义》,第225卷,Springer-Verlag,448-462·兹比尔0611.68057
[31] 米勒D。和NadathurG。(2012). 《高阶逻辑编程》,第1版,剑桥大学出版社。ISBN 052187940X,9780521879408·Zbl 1267.68014号
[32] 米勒。,纳达图尔。,PfenningF。和ScedrovA。(1991). 统一证明是逻辑编程的基础。《纯粹与应用逻辑年鉴》51(1-2)125-157·Zbl 0721.03037号
[33] 诺雷尔大学。(2009). Agda中的依赖类型编程。摘自:《第六届高级函数编程国际会议论文集》,施普林格·弗拉格,230-266。国际标准图书编号(ISBN)3-642-04651-7、978-3-642-06651-3·兹比尔1263.68038
[34] 保林·莫林。(1996年12月)。定义归纳法(Théorie des Types D’Ordre Supérieur)。克洛德·伯纳德·里昂大学的习惯化。
[35] 七、。,GacekA.公司。,霍尔特。,纳达图尔。和SnowZ。(2015). Teyjus系统-版本2。网址:http://teyjus.cs.umn.edu/
[36] RabeF公司。(2013). MMT API:通用MKM系统。收件人:CaretteJ。,天门冬氨酸。,LangeC.公司。,索伊卡普。和WindsteigerW。(编辑)智能计算机数学,Springer,339-343·Zbl 1390.68626号
[37] 罗伯托·布兰科。M.和ChihaniZ。(2017). 在证明的隐式和显式版本之间进行转换。参加:自动扣除会议26·Zbl 1496.03039号
[38] 萨瑟多蒂·科恩。和塔西。(2008). 在类型理论中处理数学结构。收件人:MiculanM。,小淘气。和HonsellF。(编辑)《校对与程序类型》,施普林格出版社,柏林,海德堡,157-172。国际标准图书编号978-3-540-68103-8·Zbl 1138.68529号
[39] 萨瑟多蒂·科恩。和塔西。(2009). 通过统一提示的非统一强制。In:诉讼类型,16-29·Zbl 1457.68299号
[40] 萨克多蒂·科恩。,塔西。和扎基罗利斯。(2007). 小人物:循序渐进的战术。理论计算机科学电子笔记174(2)125-142。网址:https://doi.org/10.1016/j.entcs.2006.09.026。 ·Zbl 1278.68253号
[41] 雪地。,巴尔德。和NadathurG。(2010). 实现依赖类型逻辑编程的元编程方法。美国纽约州纽约市第十二届国际ACM SIGPLAN声明性编程原则与实践研讨会论文集:ACM,187-198。国际标准图书编号978-1-4503-0132-9。
[42] 沃纳B。(1994). Une Théorie des Constructions归纳法。巴黎第七大学博士论文。
[43] WielemakerJ.、SchrijversT.、。,特里斯卡姆。和滞后T。(2012). SWI-预测。逻辑程序设计的理论与实践12(1-2)67-96·Zbl 1244.68023号
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。