Unrestricted Termination and Non-Termination Arguments for Bit-Vector Programs
证明程序终止通常通过为程序状态找到有充分根据的排名函数来完成。现有的终止证明器通常使用线性代数或模板来找到排名函数。因此,他们经常被限制在寻找数学整数上的线性排名函数。这类函数不足以证明许多终止程序的终止性,此外,对于数学整数操作的程序的终止参数并不总是导致对于固定宽度机器整数操作的同一程序的终止参数。我们提出了一个终止分析能够产生非线性,字典排序功能和非线性递归集是正确的固定宽度的机器算术和浮点运算我们的技术是基于减少从程序\emph{termination}二阶\emph{satisfaction}。我们提供了配方的终止和非终止在一个片段的二阶逻辑有限域上可判定的限制量化。由此产生的技术是一个健全的和完整的分析有限状态程序的终止固定宽度的整数和IEEE浮点运算。
2014-10-19 cs.LO
Automated Termination Proofs for C Programs with Lists (Short WST Version)
针对现有C程序终止性分析技术难以处理依赖链表等递归数据结构的程序终止证明的问题,本文提出首个将含内存分配、显式指针运算的C程序终止分析技术扩展至链表场景的方法。
2023-07-20 cs.LO
Termination Proofs for Logic Programs with Tabling
表格逻辑编程在逻辑编程社区中越来越受到关注。它避免了SLD执行的许多缺点,并为逻辑程序提供了一种更灵活且通常非常有效的执行机制。特别地,逻辑程序的表格执行比基于SLD解析的执行更频繁地终止。在这篇文章中,我们介绍了两个概念的通用终止逻辑编程与Tabling:准终止和(更强的概念)LG终止。我们提出了这两个概念的终止,即准可接受性和LG-可接受性的充分条件,我们表明,这些条件也是必要的情况下,制表是精心挑选的。从这些条件出发,我们给出了模终止证明,即,证明能够组合单独程序的终止证明以获得组合程序的终止证明。最后,在模式信息的存在下,我们陈述了充分条件,这些条件构成了以基于约束的方式自动证明终止的基础。
2000-03-09 cs.LO
New Approaches for Almost-Sure Termination of Probabilistic Programs
研究了概率规划的几乎必然终止问题。首先,我们证明了条件绝对差下界的上鞅为几乎必然终止问题提供了一个合理的方法。此外,使用这种方法,我们可以得到明确的最佳界限的尾部概率的非终止在给定的步骤数。其次,我们提出了一种新的方法,基于中心极限定理的几乎必然终止问题,并表明这种方法可以建立几乎必然终止的程序,没有现有的方法可以处理。最后,我们讨论了上述两种方法的算法方法,导致几乎肯定终止概率程序的自动分析技术。
2018-08-23 cs.LO
Total Outcome Logic: Unified Reasoning for a Taxonomy of Program Logics
本文提出总结果逻辑(TOL),一种统一逻辑,能表达部分与完全正确性等全部终止条件,扩展至非确定性与概率程序,并涵盖现有(不)正确性逻辑分类,实现统一推理。
2025-06-23 cs.LO
Proving Termination of C Programs with Lists
针对依赖列表等递归数据结构的 C 程序难以自动证明终止性的问题,本文提出首个方法,把支持内存分配与显式指针算术的 C 程序终止分析技术扩展至列表。
2023-06-03 cs.LO
PaSTTeL: Parallel analysiS framework for Termination and non-Termination of Lasso programs
Sorbonne University, LIP6(索邦大学);Paris-Nanterre University(巴黎楠泰尔大学);Dowsers
提出PaSTTeL,一个模块化、通用的并行组合框架,统一了Lasso程序终止性分析的前沿方法,支持新算法集成、并发执行和嵌入外部项目,实验表现竞争力强。
2026-07-13 cs.LO
Analyzing Expected Outcomes and Almost-Sure Termination of Probabilistic Programs is Hard
本文考虑了概率规划的期望结果计算和几乎必然终止判定的计算困难性。我们表明,决定几乎肯定终止,并决定一个程序的预期结果是否等于一个给定的合理值是$Π^0_2$ -完全的。计算下限和上限的预期结果被证明是递归可重复和$Σ^0_2$完成,分别。
2014-10-27 cs.LO
Proving Termination of Probabilistic Programs Using Patterns
证明程序终止是计算机科学的一个基本挑战。最近的研究已经产生了强大的工具,可以检查各种程序的终止。类似于概率程序,即概率为1的终止(“几乎确定终止”),是随机算法和概率协议同样重要的性质。我们提出了一个新的算法来证明概率程序的几乎必然终止性。我们的算法利用了最先进的模型检查器和终止证明器的非概率程序的力量:它调用这样的工具在一个细化循环,从而迭代地构建一个“终止模式”,这是一组终止运行的概率为1。我们报告各种案例研究,说明我们的算法的有效性。作为进一步的应用,我们的算法可以提高可达概率的下限。
2012-04-13 cs.LO
Termination of Monotone Programs
我们提出了一个有效的方法来证明终止的单调程序与整数变量,一个表达类的循环,经常遇到的计算机程序。我们的方法是基于一个轻量级的静态分析方法,并利用简单的单调函数的%nice属性。我们的初步实现%beats表明,我们的工具比现有的工具具有优势,可以证明终止一类基准测试的高比例的循环。
2017-02-04 cs.LO
Automated Termination Analysis for Logic Programs with Cut
可终止性是逻辑程序的一个重要性质,也是研究得很好的性质。然而,几乎所有的自动终止分析方法都集中在确定的逻辑程序上,而实际的Prolog程序通常使用cut运算符。本文介绍了一种新的预处理方法,它能自动地将Prolog程序转换成无割的逻辑程序,其中无割程序的终止意味着原程序的终止。因此,在该预处理之后,可以应用用于证明确定逻辑程序的终止的任何技术。我们在我们的终止证明程序AProVE中实现了这种预处理,并成功地进行了广泛的实验。
2010-07-28 cs.LO cs.PL
Termination Analysis by Learning Terminating Programs
我们提出了一种新的方法来终止分析。在第一步中,分析使用一个程序作为一个黑盒子,它只展示了一组有限的样本轨迹。每个样本迹线都是无限的,但可以用有限的套索表示。分析可以从套索的终止证明中“学习”一个程序,套索是一个通过构造终止的程序。在第二步中,分析检查样本轨迹集在我们可以使其形式化的意义上具有代表性。实验评估表明,该方法是一个潜在的有用的除了现有的方法来终止分析的投资组合。
2022-10-17 cs.LO
Termination of Linear Programs with Nonlinear Constraints
Tiwari通过Jordan形式和特征向量计算证明了实数上线性规划(具有线性循环条件和更新的循环)的终止性是可判定的。布雷弗曼证明了它在整数上也是可判定的。本文研究了实数和整数上具有多项式循环条件和线性更新的循环的终止性。首先,我们证明了这种循环的终止整数是不可判定的。其次,在一个假设条件下,我们给出了一个完整的算法来判定一类实数上的此类规划的终止性。我们的方法在精神上类似于蒂瓦里,但使用不同的技术。最后,我们通过构造一个循环,将线性规划的终止性问题归结为另一个与数论和遍历理论有关的判定问题,并猜想其不可判定,从而推测了实数上具有多项式循环条件的线性规划的终止性一般是不可判定的.
2009-04-23 cs.LO
Propositional Reasoning about Safety and Termination of Heap-Manipulating Programs
本文表明,它是可能的原因处理潜在的循环,单链表使用命题推理的程序的安全性和终止,即使当安全不变量和终止参数依赖于列表长度的约束。为此,我们提出了单链表长度的理论SLH,它能够捕捉形状和算术之间的非平凡的相互作用。当使用位向量算术的理论作为背景时,SLH通过约简到SAT是有效可判定的。我们使用它来表达安全不变量和终止参数的程序操纵潜在的循环,单链表与不受限制的,未指定的共享软件验证的实用程序SLH。我们还提供了一个实现的决策过程,并使用它来检查几个堆操作程序的安全性和终止证明。
2014-10-19 cs.LO
On termination of meta-programs
术语{ \em元编程}指的是编写将其他程序作为数据并利用其语义的程序的能力。本文的目的是提出一种方法,使我们能够执行一个正确的终止分析广泛的实用元解释器,包括否定和执行不同的任务在执行过程中。它是基于结合的权力,一般秩序,用于证明终止的长期重写系统和程序,并在著名的可接受性条件,用于证明终止的逻辑程序。该方法建立证明解释程序的终止所需的排序与证明元解释器连同该解释程序的终止所需的排序之间的关系。如果建立了这种关系,其中一个关系的终止意味着另一个关系的终止,即,元解释器保留终止。在元解释器中,正确分析的是构造元解释器的证明树,不同类型的跟踪器和推理器。不带附录出现在逻辑程序设计理论与实践中。
2003-12-24 cs.LO cs.PL
A Separation Logic to Verify Termination of Busy-Waiting for Abrupt Program Exit: Technical Report
多处理器机器的程序通常执行忙等待同步。在本文中,我们向证明终止这类程序的第一步。我们近似(i)任意等待事件的突然程序终止和(ii)忙碌等待事件的忙碌等待被突然终止。我们提出了一个分离逻辑模块化验证终止(公平调度下)的程序,其中一些线程最终突然终止程序,和其他线程忙等待这种情况发生。
2020-07-21 cs.LO cs.PL
A Separation Logic to Verify Termination of Busy-Waiting for Abrupt Program Exit
多处理器机器的程序通常执行忙等待同步。在本文中,我们向证明终止这类程序的第一步。我们近似(i)任意等待事件的突然程序终止和(ii)忙碌等待事件的忙碌等待被突然终止。我们提出了一个分离逻辑模块化验证终止(公平调度下)的程序,其中一些线程最终突然终止程序,和其他线程忙等待这种情况发生。
2020-10-16 cs.LO cs.PL
Proving Termination Starting from the End
我们提出了一种新的技术证明程序终止,引入了一个新的模块化的维度。现有技术使用该程序来递增地构造终止证明。虽然证明不断变化,但程序保持不变。我们的技术更进一步。我们展示了如何使用当前部分证明将过渡关系划分为已知从当前证明终止的行为和状态(终止与否)未知的行为。这种划分使一个新的和未开发的增量推理的程序侧的维度。此外,我们表明,我们的方法自然适用于有条件的终止搜索的前提条件,确保终止。我们进一步报告了一个原型的实现,先进的最先进的终止和有条件终止的理由。
2013-02-19 cs.LO
A new rule for almost-certain termination of probabilistic- and demonic programs
扩展我们自己和其他人的早期方法来推理概率程序的终止,我们提出并证明了一个新的规则终止概率为1,也被称为“几乎确定终止”。该规则同时使用(非严格)超鞅和进步保证,并且它似乎涵盖了早期方法没有的重要情况。特别是,它足以终止无界对称随机游走在一个和两个维度:对于第一个,我们给出了一个证明;对于第二个,我们使用福斯特定理来证明存在。支持非决定论(即恶魔选择);但我们目前仅限于离散分布。
2017-01-06 cs.LO
Abstraction of Nondeterministic Situation Calculus Action Theories -- Extended Version
Ronin Institute(罗宁研究所);University of Oxford(牛津大学);York University(约克大学)
基于非确定性情境演算和ConGolog,提出一个通过细化映射连接抽象与具体动作理论的智能体行为抽象框架,支持策略推理与综合,并证明了抽象层面的强FOND计划可细化为具体层面的有效计划。
2023-05-20 cs.AI cs.LO
AProVE: Modular Termination Analysis of Memory-Manipulating C Programs
针对C程序终止性分析中精确性与大规模程序抽象需求的权衡问题,研究将侧重精确性的AProVE工具调整为模块化符号执行分析方法,使其可处理递归程序并适配大型程序。
2025-06-12 cs.LO
Termination Prediction for General Logic Programs
State Key Laboratory of Computer Science, Institute of Software, Chinese Academy of Sciences(中国科学院软件研究所计算机科学国家重点实验室);Department of Computer Science, Celestijnenlaan 200 A, B-3001 Heverlee, Belgium(计算机科学系)
我们提出了一个启发式的框架攻击的不可判定终止问题的逻辑程序,作为一种替代目前的终止/非终止证明方法。我们引入了终止预测的思想,它预测终止的逻辑程序的情况下,无论是终止或非终止证明是适用的。我们建立了一个必要和充分的表征无限(广义)SLDNF-衍生任意(具体或moded)查询,并开发了一个算法,预测终止一般逻辑程序与任意非floundering查询。我们已经实现了一个终止预测工具,并取得了相当满意的实验结果。除了5个程序打破了实验时间限制,我们的预测是100%正确的所有296个基准程序的终止竞争2007年,其中18个程序不能证明任何现有的国家的最先进的分析仪,如AProVE 07,NTI,Polytool和TALP。
2009-05-13 cs.AI cs.LO cs.PL
Termination Analysis of Programs with Multiphase Control-Flow
具有多阶段控制流的程序是执行通过几个(可能是隐式的)阶段的程序。证明这些程序的终止(或推断相应的运行时边界)通常具有挑战性,因为它需要分别对这些阶段进行推理。本文讨论了证明这类程序可终止性的技术,特别是:(1)使用多阶段排序函数,其中我们将讨论几种程序表示的排序函数的理论问题;以及(2)使用控制流细化,特别是约束Horn子句的部分评估,以简化控制流,除其他外,用更简单的排序函数证明终止性。
2021-09-10 cs.LO cs.PL
Non-Termination of Logic Programs Using Patterns
univ-reunion(留尼汪大学)
本文提出了一种基于模式的逻辑程序非终止性检测方法,通过新展开技术生成无限集合的有限重写序列,并通过实验验证其有效性。
2026-08-10 cs.LO
On Modular Termination Proofs of General Logic Programs
该研究提出一种基于可接受程序概念的模块化方法,可通过单独处理层级模块证明含否定的通用逻辑程序终止性,针对良模式、良类型程序给出验证技术与迭代证明法,能大幅简化证明。
2001-07-30 cs.LO cs.PL
Non-Termination Inference of Logic Programs
本文提出了一种逻辑程序非终止推理的静态分析技术。我们的框架依赖于包容测试的扩展,其中一些特定的参数位置可以被实例化,而另一些则被泛化。我们给出的语法标准,静态地确定这样的参数位置从一个程序的文本。原子左循环查询从感兴趣的程序的二进制展开的选定子集自底向上生成。我们提出了一套正确的算法自动化的方法。然后,非终止推理是定制的,试图证明左终止条件计算的终止推理工具的最优性。实验评估报告。当终止性和非终止性分析为逻辑过程产生互补的结果时,则相对于最左边的选择规则和用于描述原子查询集的语言,每个分析都是最优的,并且它们一起引起逻辑过程的操作行为的表征。
2004-06-22 cs.LO cs.PL
foetus -- Termination Checker for Simple Functional Programs
本研究提出带终止性检查器的函数式语言foetus,通过提取函数调用、补全调用图并寻找参数良基结构序,来证明简单函数式程序的终止性。
2024-07-09 cs.LO cs.PL
Termination Analysis of General Logic Programs for Moded Queries: A Dynamic Approach
逻辑程序的终止问题可以用静态或动态的方法来解决。静态方法在编译时执行终止分析,而动态方法通过应用循环检查技术来表征和测试逻辑程序的终止。在本文中,我们提出了一种新的动态方法,终止分析一般逻辑程序与模态查询。我们解决了几个有趣的问题,包括如何制定一个SLDNF派生的moded查询,如何表征一个无限的SLDNF派生的moded查询,以及如何应用循环检查机制,以削减无限的SLDNF派生的终止分析的目的。所提出的方法非常强大和有用。它可以用来(1)测试一个逻辑程序是否终止于一个给定的具体或模态查询,(2)测试一个逻辑程序是否终止于所有的具体或模态查询,以及(3)找到所有(最一般的)最有可能终止(或非终止)的具体/模态查询。
2005-12-14 cs.LO cs.PL
Polytool: polynomial interpretations as a basis for termination analysis of Logic programs
我们的目标是研究移植终止分析技术开发的一个编程范式到另一个范式的可行性。在本文中,我们将展示如何适应终止分析技术的多项式解释的基础上-非常有名的术语重写系统(TRS)的背景下-获得新的(非转换)的终结分析技术,明确的逻辑程序(LP)。这导致了一种方法,可以被看作是一个直接推广的传统技术在终止分析的LP,线性规范和水平映射。我们的扩展一般化这些任意多项式。我们扩展了一些标准的概念和结果终止分析的上下文多项式的解释。我们还提出了一个基于约束的方法自动生成多项式的解释,满足终止条件。基于这种方法,我们实现了一个新的工具,称为Polytool,自动终止分析的LP。
2009-12-22 cs.LO cs.PL
Automated Termination Proofs for Logic Programs by Term Rewriting
RWTH Aachen(亚琛工业大学);TU Eindhoven(埃因霍温理工大学);University of Innsbruck(因斯布鲁克大学)
逻辑程序的可终止性分析有两种方法:“转换”法和“直接”法。直接方法直接在逻辑程序的基础上证明终止。转换方法将一个逻辑程序转换成一个项重写系统(TRS),然后分析所得到的TRS的终止。因此,转换方法使以前为TRS开发的所有方法也可用于逻辑程序。然而,大多数现有的转换的适用性是相当有限的,因为它们只能用于逻辑程序的某些子类。(Most它们中的一个仅限于模式良好的程序。)在本文中,我们改进这些转换,使它们成为适用于任何明确的逻辑程序。为了用TRS模拟逻辑程序的行为,我们稍微修改了重写的概念,允许无限项。我们表明,我们的转换结果TRS这确实是适合自动终止分析。与大多数其他逻辑程序的终止方法相比,我们的技术也适用于逻辑程序设计,而不需要发生检查,这是在实践中通常使用的。我们在终止证明程序AProVE中实现了我们的方法,并在大量示例中成功地对其进行了评估。
2008-09-01 cs.AI cs.LO cs.PL
Sound and Complete Proof Rules for Probabilistic Termination
本文针对结合离散概率选择和恶魔有界非确定性的命令式程序模型,提出了可靠且相对完备的定性与定量概率终止证明规则,利用超鞅和变体进行证明,并展示了其完备性及在二维随机游走中的应用。
2024-07-23 cs.LO
Modular Verification for Almost-Sure Termination of Probabilistic Programs
在这项工作中,我们考虑几乎肯定终止问题的概率程序,询问是否一个给定的概率程序终止概率为1。可伸缩的程序分析方法通常依赖于模块化作为其理论基础。在非概率程序中,Floyd-霍尔逻辑的经典变式规则(V-规则)为模块化分析提供了基础。将该规则扩展到概率程序的几乎确定终止是相当棘手的,并且在[Fioriti and Hermanns 2015]中提出了一个概率变体。虽然所提出的概率变量谨慎地解决了可积性的关键问题,我们表明,所提出的模块化规则仍然是不健全的几乎肯定终止的概率程序。除了建立以前的规则的不健全,我们的贡献如下:首先,我们提出了一个健全的模块规则几乎确定终止的概率程序。我们的方法是基于一个新的概念下降上鞅。其次,对于算法方法,我们考虑下降上鞅是线性的,并表明它们可以在多项式时间合成。最后,我们提出了各种基准测试和几个自然的例子,模拟各种类型的嵌套而循环的概率程序的实验结果,并证明我们的方法是能够有效地证明其几乎肯定的终止属性。
2019-08-12 cs.LO cs.PL
KoAT: Automatic Complexity and Termination Analysis of Integer Programs
RWTH Aachen University(亚琛工业大学)
提出KoAT工具,通过交替模块化推断程序部分的运行时和大小上界,结合多种技术分析子程序,实现整数程序的复杂度界自动推断与终止性证明。
2026-06-26 cs.LO cs.PL
Refinement calculus of quantum programs with projective assertions
本文提出一种专为量子程序定制的精化演算,通过正交投影子作为断言并基于对偶语义引入精化规则,为量子程序增量开发提供系统方法,并推出交互式原型工具 Quire 提供支持。
2023-11-23 cs.LO quant-ph
Distilling Programs to Prove Termination
确定任何程序是否终止的问题被图灵证明是不可判定的,但该领域的最新进展已经允许为一大类程序确定此信息。决定程序是否终止的经典方法可以追溯到图灵本人,涉及到找到一个将程序状态映射到良序的排序函数,然后证明这个函数的结果对于每个可能的程序转换都是递减的。最近证明终止性的方法涉及从搜索单个排名函数转向搜索一组排名函数;这组是排名函数的选择,并使用了析取终止参数。在本文中,我们描述了一种新的技术,用于确定程序是否终止。我们的技术被应用到蒸馏程序转换的输出,将程序转换成一个简化的形式称为蒸馏形式。在蒸馏形式的程序被转换成相应的标记的过渡系统和终止可以证明,通过这个标记的过渡系统的所有可能的无限的痕迹将导致一个无限的下降,有根据的数据值。我们证明了我们的技术上的一些例子,并将其与以前的工作。
2020-08-07 cs.LO
Checking Termination of Bottom-Up Evaluation of Logic Programs with Function Symbols
近年来,人们越来越关注自自底向上的【形】的复杂术语逻辑程序的语义评估。程序中函数符号的存在可能使基础实例化无限,并且在一般情况下,不再保证模型的有限性和评估过程的终止。由于程序终止问题在一般情况下是不可判定的,最近提出了几个可判定准则(称为程序终止准则)。然而,目前的条件是不能识别甚至简单的程序,其自自底向上的【形】的执行总是终止。本文通过对程序结构的深入分析,提出了一种新的自自底向上的【形】求值下带函数符号的逻辑程序可终止性判定准则。首先,我们分析了复杂的条款之间的传播参数的扩展版本的参数图称为传播图。由此产生的标准,称为伽马-非周期性,概括了迄今为止提出的大多数可判定的标准。接下来,我们研究规则如何相互激活,并定义一个更强大的标准,称为安全性。该标准使用所谓的安全函数,能够分析规则如何相互激活以及规则中某些参数的存在如何限制其激活。我们还研究了所提出的标准绑定查询的应用程序,并表明,安全标准是非常适合识别相关类的程序和绑定查询。最后,我们提出了一个层次的类终止程序,称为k-安全,其中k-安全类严格包括(k-1)-安全类。逻辑程序设计理论与实践(Theory and Practice of Logic Programming,TPLP)
2014-07-11 cs.LO
Refinement orders for quantum programs
Tsinghua University(清华大学);Institute of Software, Chinese Academy of Sciences(中国科学院软件研究所)
本文研究了量子程序的细化顺序,揭示了不同规范类型与经典域论概念的对应关系,以及确定性和非确定性程序的细化特性。
2026-02-19 cs.LO quant-ph
On Probabilistic Termination of Functional Programs with Continuous Distributions
本文研究了高阶概率函数程序的终止问题,包括递归、随机条件和连续分布抽样。关于具有连续分布的程序的终止概率的推理是困难的,因为终止执行的枚举不能提供任何非平凡的界限。我们提出了一个新的操作语义的基础上的痕迹的间隔,这是健全的和完整的标准采样为基础的语义,其中(可数)枚举可以提供任意紧的下限。因此,我们得到的第一个证明,决定几乎必然终止(AST)的程序连续分布是$Π^0_2$ -完全的。我们还提供了一个组合表示我们的语义的交叉类型系统。在第二部分中,我们提出了一种证明非仿射程序的AST的方法,即,递归程序,可以在递归体的计算期间,从不同的调用位置进行多次递归调用(一阶函数)。与确定性语言不同,递归调用站点的数量对终止概率有直接影响。我们的框架支持一个证明系统,可以验证AST的程序远远超出了现有方法的范围。我们已经构建了原型实现我们的方法计算下限的终止概率,AST验证。
2021-04-11 cs.LO cs.PL
Linear Ranking for Linear Lasso Programs
这项工作的一般设置是基于约束的合成终止参数。我们考虑一类受限制的程序,称为套索程序。lasso程序的终止参数是一对排名函数和不变量。我们提出-据我们所知-第一种方法来合成终止参数套索程序,使用线性算术。我们证明了一个完备性定理。完备性定理表明,即使我们只使用线性(而不是非线性)约束求解,我们也能够在几种有趣的情况下计算终止参数。我们的方法的关键在于一个约束转换,用一个和来代替一个析取。
2014-01-21 cs.LO
Non-termination Analysis of Logic Programs with Integer arithmetics
在过去的几年中,分析器已被引入到检测类的非终止查询的明确的逻辑程序。虽然这些非终止性分析器已经被证明是相当精确的,但它们在现实生活中的Prolog程序上的适用性是有限的,因为大多数Prolog程序使用非逻辑功能。作为分析Prolog程序的第一步,本文给出了含整数运算的逻辑程序的不可终止条件。该分析仪基于我们在ICLP 2009上展示的非终止分析仪。分析从一类查询开始,并推断出一个子类的非终止的。在第一阶段,我们忽略算术运算的结果(成功或失败),假设所有算术调用都成功。在第二阶段中,我们成功的算术调用的特点作为一个约束问题,其解决方案确定的非终止查询。
2011-09-15 cs.LO cs.PL
On the Termination of Linear and Affine Programs over the Integers
整数上仿射规划的终止性问题在\cite{Braverman}中一直没有解决。十多年来,它一直被认为是一个具有挑战性的开放问题。据我们所知,我们在这里提出了最完整的回应这个问题:我们表明,终止仿射程序在Z是可判定的假设下,几乎所有的仿射程序,除了一个非常小的类零Lesbegue措施。对于环Z上的线性循环规划,我们使用了渐近非终止初始变量值的概念。这些值直接与初始变量值相关联,对于这些初始变量值,相应的程序不会终止。我们减少了整数上的线性仿射规划的终止问题,一个特定的ANT集的初始变量值的空检查。对于这类线性或仿射规划,我们证明了相应的ANT集是一个半线性空间,我们提供了一个强大的计算方法,允许自动生成这些$ANT$集。此外,我们也可以解决条件终止问题。换句话说,通过采用ANT集补,我们获得了程序确实终止的输入集的精确欠近似。
2014-09-18 cs.DM cs.LO
Deciding Polynomial Termination Complexity for VASS Programs
我们表明,对于每一个固定的$k\geq 3$,一个给定的恶魔VASS的终止/计数器复杂度是否是$\mathcal{O}(n^k)$,$Ω(n^{k})$,和$Θ(n^{k})$的问题是NP完全,NP完全,DP完全,分别。我们还为$k\leq 2$对这些问题的复杂性进行了分类。这表明,多项式时间算法设计的强连接恶魔VASS在以前的作品不能扩展到一般情况下。然后,我们证明了VASS对策的相同问题是PSPACE完全的。同样,我们也对$k\leq 2$的复杂性进行了分类。有趣的是,易于处理的恶魔VASS和VASS游戏的子类,通过绑定某些结构参数,这开辟了道路,应用程序在程序分析,尽管提出了较低的复杂性界限。
2021-12-05 cs.LO
Verifying Termination and Error-Freedom of Logic Programs with block Declarations
我们提出了延迟声明的逻辑程序的验证方法。验证的性质是终止和自由的错误有关的内置。关于终止,我们提出了两种方法。第一种方法试图消除众所周知的推测性输出绑定问题。第二种方法是基于识别的谓词,使用这个谓词的原子的文本位置是无关的终止。这项工作有三个特点:它允许在几种模式下使用谓词;它表明块声明,这是一个非常简单的延迟结构,足以确保所需的属性;它考虑到选择规则,假设它是在大多数Prolog实现。这些方法可用于验证现有程序和帮助编写新程序。
2000-06-23 cs.LO cs.PL
A Dynamic Approach to Characterizing Termination of General Logic Programs
本文给出了一般逻辑程序终止性的一个新的刻画。大多数现有的终止分析方法依赖于关于逻辑程序的源代码的结构的一些静态信息,诸如模式/类型、范数/级别映射、模型/参数间关系等。我们提出了一个动态的方法,它采用了一些关键的动态功能的无限(广义)SLDNF衍生,如重复选定的子目标和递归增加长期的大小。我们还介绍了一种新的制定SLDNF树,称为广义SLDNF树。广义SLDNF-树以与Prolog相同的方式处理负子目标,并且存在于任何一般逻辑程序中。
2002-04-12 cs.LO cs.PL
Deciding Termination of Simple Randomized Loops
本文证明了一类由单循环、线性循环条件和两个线性可交换可对角化更新组成的简单随机程序的全称正几乎必然终止性是可判定的,将Tiwari 2004年的研究扩展到随机程序领域。
2025-07-01 cs.LO
Positive Almost-Sure Termination of Polynomial Random Walks
本文针对概率程序终止性问题,证明步长随迭代多项式增长、分支概率恒定的多项式随机游走满足正几乎必然终止(PAST)的条件,并通过结合遗传规划等方法实现了相关阈值的近似。
2025-06-17 cs.LO
Higher-Order LCTRSs and Their Termination
针对一阶逻辑约束项重写系统(LCTRSs)无法分析函数式程序的问题,本文提出LCTRS的高阶变体形式,并为其定义高阶递归路径序(HORPO)以研究终止性问题。
2023-07-25 cs.LO
Verifying Termination of General Logic Programs with Concrete Queries
我们介绍了一种方法来验证终止逻辑程序相对于具体的查询(而不是抽象的查询模式)。建立了一个充分必要条件,并提出了一种自动验证算法。与现有的基于查询模式的方法相比,我们的方法具有以下特点:(1)它适用于所有一般的逻辑程序与非挣扎查询。(2)它非常容易自动化,因为它不需要搜索级别映射或模型,也不需要基于额外的模式或类型信息计算参数间关系。(3)它桥接了终止分析与循环检查,这两个问题在过去已经被单独研究,尽管它们彼此之间有着密切的技术关系。
2000-06-21 cs.AI cs.LO
Non-Termination Sets of Simple Linear Loops
一个简单的线性循环是一个简单的while循环,带有线性赋值和线性循环保护。如果一个简单的线性循环只有两个程序变量,我们给出了一个完整的算法计算的所有输入上的循环不终止。对于多个程序变量的情形,我们证明了非终止集一般不能用Tarski公式描述
2012-05-31 cs.LO
Bounded Termination of Monotonicity-Constraint Transition Systems
直觉上,如果我们能证明一个程序终止,我们期望得到一些关于它的复杂性的结论。但是,从终止证明到复杂性界限的过程并不总是清楚的。在这项工作中,我们考虑单调性约束过渡系统,一个程序抽象的终止是可判定的(基于大小变化终止原则)。我们表明,这些程序也有一个可判定的复杂性属性:可以确定是否所有的过渡序列的长度可以有界的初始状态。这就是有界终止问题。有趣的是,如果存在一个界限,它必须是多项式的。我们证明了有界终止问题是PSPACE-完全的。我们还讨论了,理论上,使用的抽象程序上的界限来推断一个具体的程序,已被抽象的结论。结论可能是一个多项式时间界,或在其他情况下多项式空间或指数时间。我们认为,单调性约束抽象的承诺是有用的程序的实际复杂性分析。
2014-04-30 cs.FL cs.LO
Ranking Functions for Size-Change Termination II
尺寸改变终止是一种越来越流行的验证程序终止的技术。这些终止证明推导出一个抽象的表示形式的程序的“大小变化图”。我们提出的算法,对于某些类的大小变化图,推导出一个全球排名功能:一个表达式,排名程序状态,并减少每一个过渡。一个排序函数作为一个终止证明的见证,因此对于程序认证是很有意义的。代表SCT终止证明的排名表达式的特定形式揭示了证明方法的范围。表达的复杂性也很有趣,无论是在实践上还是在理论上。虽然从大小变化图推导排名函数已经被证明是可能的,但本文中的构造比以前已知的更简单,更透明。它们将排名表达式大小的上限从三倍指数提高到单指数(对于某些类别的实例)。我们认为这个结果在某种意义上是最优的。为此,我们引入了一个框架的排名表达式的复杂性的下界,并证明指数下界。
2009-05-25 cs.LO
Proving Non-Termination via Loop Acceleration
我们提出了第一种方法来证明非终止的整数规划,是基于循环加速。如果我们的技术不能显示一个循环的非终止性,它会尝试加速它,以便自动找到其他非终止循环的路径。我们的新的循环加速技术的先决条件概括了一个简单而有效的非终止标准。因此,我们可以使用相同的程序转换来促进非终止性证明和循环加速。特别是,我们提出了一种新的不变推理技术,是专为我们的方法。对我们的全自动化工具LoAT的广泛评估表明,它与最先进的工具相比具有竞争力。
2019-08-08 cs.LO
Termination Analysis of Linear-Constraint Programs
Complutense University of Madrid(马德里康普顿斯大学);Max Planck Institute for Software Systems(马克斯·普朗克软件系统研究所);University of Oxford(牛津大学)
本文综述了线性约束程序终止分析的技术,涵盖可判定性结果、排名函数和非终止见证等方法,探讨了不同方法在表达力与计算复杂性间的权衡。
2026-07-27 cs.LO cs.PL
Synthesising Interprocedural Bit-Precise Termination Proofs (extended version)
证明程序终止是保证没有不良行为的关键,例如挂起程序,甚至是拒绝服务攻击等安全漏洞。为了使终止检查规模的大型系统,跨过程终止分析似乎是必不可少的,这是一个在很大程度上未开发的研究领域,在终止分析,其中大部分精力都集中在困难的单过程问题。我们提出了一个模块化终止分析C程序使用基于模板的过程间总结。我们的分析结合了上下文敏感的,过度近似的前向分析与推断下近似终止的前提条件。位精确的终止参数是在字典式线性排名函数模板上合成的。我们的实验结果表明,我们的工具2LS优于国家的最先进的替代品,并证明了明显的优势,过程间推理整体分析的效率,同时保持相当的精度。
2015-05-18 cs.LO cs.SE