×

提取程序以证明终止。 (英语) Zbl 07453196号

Fribourg,Laurent(ed.)等人,第八次验证和程序转换国际研讨会和第七次验证和综合Horn条款研讨会论文集,VPT/HCVS 2020,爱尔兰都柏林,2020年4月25日至26日。滑铁卢:开放出版协会(OPA)。电子。程序。西奥。计算。科学。(EPTCS)320、140-154(2020)。
摘要:图灵证明了确定任何程序是否终止的问题是无法确定的,但该领域的最新进展已经允许为一大类程序确定此信息。决定程序是否终止的经典方法可以追溯到图灵本人,包括找到排序函数它将程序状态映射到有序状态,然后证明对于每个可能的程序转换,此函数的结果都会减少。最近证明终止的方法包括从搜索单个排序函数转向搜索一组排序函数;这个集合是一个排序函数的选择,并且使用了析取终止参数。在本文中,我们描述了一种确定程序是否终止的新技术。我们的技术应用于蒸馏将程序转换为简化形式的程序转换蒸馏形式.将蒸馏形式的程序转换为相应的标记过渡系统可以通过显示所有可能的无限来证明终止踪迹通过这种标记的转换系统,将导致基础良好的数据值无限下降。我们在许多示例中演示了我们的技术,并将其与以前的工作进行了比较。
关于整个系列,请参见[Zbl 1466.68013号].

MSC公司:

68号30 软件工程的数学方面(规范、验证、度量、需求等)
60年第68季度 规范和验证(程序逻辑、模型检查等)
PDF格式BibTeX公司 XML格式引用
全文: arXiv公司 链接

参考文献:

[1] Albert,E.和Arenas,P.和Genaim,S.和Puebla,G.和Zanardini,D.(2008):COSTA:Java字节码成本和终止分析器的设计与实现。摘自:《组件和对象的形式方法:第六届国际研讨会》,FMCO 2007,荷兰阿姆斯特丹,2007年10月24-26日,修订讲座,Springer-Verlag,第113-132页doi:10.1007/978-3-540-92188-25·doi:10.1007/978-3-540-92188-25
[2] T.Arts(1997):自动证明术语重写系统的终止和内部规范化。乌得勒支大学博士论文。
[3] J.Berdine、B.Cook、D.Distefano和P.W.O'Hearn(2006):具有形状变换堆的程序的自动终止证明。摘自:计算机辅助验证国际会议,第386-400页doi:10.1007/11817963 35·Zbl 1188.68109号 ·doi:10.1007/11817963_35
[4] A.Bradley、Z.Manna和H.B.Sipma(2005):具有可达性的线性排名。摘自:第17届计算机辅助验证国际会议,第491-504页doi:10.1007/11513988 48·Zbl 1081.68611号 ·doi:10.1007/11513988_48
[5] A.R.Bradley、Z.Manna和H.B.Sipma(2005):多项式程序的终止。摘自:国际验证、模型检查和抽象解释会议,第113-129页doi:10.1007/978-3-540-30579-8 8·Zbl 1111.68500号 ·doi:10.1007/978-3-540-30579-8_8
[6] J.Brotherston,R.Bornat&C.Calcagno(2008):分离逻辑中程序终止的循环证明。摘自:ACM编程语言原理研讨会,第101-112页doi:10.1145/1328897.1328453·Zbl 1295.68156号 ·doi:10.145/1328897.1328453
[7] M.Codish和C.Taboch(1997):逻辑程序终止分析的语义基础及其使用符号规范约束的实现。摘自:代数和逻辑程序设计国际联合会议,计算机科学1298讲稿,31-45页doi:10.1007/BFb0027001·兹伯利0889.68026 ·doi:10.1007/BFb0027001
[8] B.Cook、A.Podelski和A.Rybalchenko(2006):系统代码的终止证明。SIGPLAN通知41(6),第415-426页doi:10.1145/1133255.1134029·doi:10.1145/1133255.1134029
[9] B.Cook、A.Podelski和A.Rybalchenko(2011):证明计划终止。ACM通讯54(5),第88-98页doi:10.1145/1941487.1941509·doi:10.1145/1941487.1941509
[10] N.Dershowitz(1987):终止重写。符号计算杂志3,第69-116页doi:10.1016/S0747-7171(87)80022-6·Zbl 0637.68035号 ·doi:10.1016/S0747-7171(87)80022-6
[11] R.W.Floyd(1967):为项目赋予意义。摘自:《美国数学学会应用数学研讨会论文集》,19,第19-32页doi:10.1007/978-94-011-1793-7 4·Zbl 0189.50204号 ·doi:10.1007/978-94-011-1793-74
[12] J.Geisl(1995):使用术语排序的功能程序终止分析。摘自:第二届国际静态分析研讨会,《983年计算机科学讲义》,第154-171页doi:10.1007/3-540-60360-3 38·文件编号:10.1007/3-540-60360-3_38
[13] J.Giesl、M.Brockschmidt、F.Emmes、C.Frohn、F.Fuhs、C.Otto、M.Plücker、P.Schneider-Kamp、T.Ströder、S.Swiderski和R Thiemann。(2014):用AProVE自动证明程序终止。摘自:国际自动推理联合会议,第184-191页doi:10.1007/978-319-08587-6 13·Zbl 1409.68256号 ·doi:10.1007/978-3-319-08587-6_13
[14] J.Giesl,S.Swiderski,P.Schneider-Kamp&R.Thiemann(2006):Haskell的自动终止分析:从术语重写到编程语言。摘自:重写技术和应用国际会议,第297-312页doi:10.1007/11805618 23·Zbl 1151.68444号 ·数字对象标识代码:10.1007/11805618_23
[15] G.W.Hamilton(2007):蒸馏:提取程序的本质。摘自:ACM SIGPLAN部分评估和基于语义的程序操作研讨会论文集,第61-70页doi:10.1145/1244381.1244391·数字对象标识代码:10.1145/1244381.1244391
[16] G.W.Hamilton和N.D.Jones(2012):带标记过渡系统的蒸馏。摘自:ACM SIGPLAN部分评估和基于语义的程序操作研讨会论文集,ACM,第15-24页doi:10.1145/2103746.2103753·doi:10.1145/2103746.2103753
[17] C.S.Lee、N.D.Jones和A.M.Ben-Amram(2001):《项目目标的规模变化原则》。在:第28届ACM编程语言原理研讨会,第81-92页doi:10.1145/360204-360210·Zbl 1323.68216号 ·doi:10.1145/360204.360210
[18] N.Lindenstrauss和Y.Sagiv(1997):Prolog程序的自动终止分析。摘自:逻辑程序设计国际会议,第64-77页。
[19] P.Manolios和D.Vronon(2006):使用调用上下文图进行终止分析。摘自:《计算机辅助验证国际公约》,第401-414页doi:10.1007/11817963 36·Zbl 1188.68110号 ·doi:10.1007/11817963_36
[20] Y.Sagiv(1991):逻辑程序的终止测试。摘自:逻辑程序设计国际研讨会,第518-532页。
[21] D.Sereni D.&N.D.Jones(2005):高阶功能程序的终止分析。摘自:《亚洲编程语言与系统研讨会》,《计算机科学讲义3780》,第281-297页doi:10.1007/11575467 19·Zbl 1159.68383号 ·doi:10.1007/11575467_19
[22] M.H.Sörensen、R.Glück和N.D.Jones(1996):一个积极的超级编译器。《函数编程杂志》6(6),第811-838页doi:10.1017/S0956796800002008·Zbl 0870.68040号 ·doi:10.1017/S09567968000002008
[23] Spoto,F.和Mesnard,F.以及Payet,E.(2010):基于路径长度的Java字节码终止分析器。《ACM编程语言和系统事务》32(3),第8:1-8:70页doi:10.1145/1709093.1709095·doi:10.1145/1709093.1709095
[24] J.Steinbach(1995):带转换顺序的自动终止证明。收录于:《改写技术与应用国际公约》,《计算机科学914课堂讲稿》,第11-25页doi:10.1007/3-540-59200-8 44·Zbl 1503.68157号 ·doi:10.1007/3-540-59200-8_44
[25] V.F.Turchin(1986):超级编译器的概念。《美国计算机学会编程语言与系统汇刊》8(3),第90-121页doi:10.1145/5956.5957·Zbl 0598.68016号 ·doi:10.1145/5956.5957
[26] A.M.Turing(1936):关于可计算数字,及其在Entscheidungsproblem中的应用。伦敦数学学会学报,2 42(1),第230-265页doi:10.1112/plms/s2-42.1.230·Zbl 0016.09701号 ·doi:10.1112/plms/s2-42.1.230
[27] A.M.Turing(1948):检查大型例程。摘自:《早期英国计算机会议》,第70-72页doi:10.5555/94938.94952·doi:10.5555/94938.94952
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。