Space-Efficient Bounded Model Checking
现有的有界模型检验算法使用SAT方法来检验布尔公式的可满足性。这些方法遭受潜在的内存爆炸问题。基于量化布尔公式(QBF)的有效性的方法允许检查公式的指数更简洁的表示,因为不需要“展开”的过渡关系。由于缺乏一个有效的QBF决策过程,这些方法没有得到广泛的应用。我们评估使用QBF有界模型检验(BMC),使用通用SAT和QBF求解器。我们开发了一个特殊用途的决策过程中使用的BMC QBF,并比较我们的技术与使用通用SAT和QBF求解器在现实生活中的工业基准的方法。
2007-10-25 cs.LO
Bounded Model Checking of an MITL Fragment for Timed Automata
时间自动机(TA)是一种常见的建模时间系统的形式。有界模型检验(BMC)是一种使用SAT或SMT求解器搜索违反属性的运行的验证方法。MITL是线性时间逻辑LTL的实时扩展。最初,MITL被定义为非重叠时间间隔的轨迹,而不是“超密集”时间轨迹,允许时间间隔重叠在单个点上,这些点被当今常见的时间自动机语义所采用。在本文中,我们扩展的MITL片段的语义超密集的时间轨迹,并设计了一个有界的模型检验编码的片段。我们证明了正确性和完整性的意义上说,使用一个足够大的范围内的反例,任何给定的非控股property.We可以找到实现建议的有界模型检验方法和实验研究的效率和可扩展性的实现。
2013-04-26 cs.LO
JBMC: A Bounded Model Checking Tool for Java Bytecode
JBMC是一个开源的基于SAT和SMT的有界模型检验工具,用于验证Java字节码。JBMC依赖于Java库的操作模型,它保守地近似于它们的语义,以验证断言违规,数组越界,意外的算术溢出以及Java字节码中的其他类型的功能和运行时错误。如果状态空间的深度上界是已知的,则JBMC可以用于伪造属性或证明程序正确性。JBMC的实际应用包括但不限于错误发现、属性检查、测试输入生成、安全漏洞检测和程序合成。在这里,我们提供了一个详细的描述JBMC的架构和它的功能,包括深入讨论其背景理论和底层技术,包括一个国家的最先进的字符串求解器,以确保Java字节码的安全性和安全性。
2023-02-05 cs.LO cs.PL cs.SE
Incremental Symbolic Bounded Model Checking of Software Using Interval Methods via Contractors
有界模型检验(BMC)对于发现程序属性冲突至关重要。对于不安全的程序,BMC可以快速找到从初始状态到违反状态的执行路径,从而反驳给定的安全属性。然而,BMC技术难以伪造包含循环的程序。BMC需要将程序循环逐步展开到绑定$k$,从而暴露属性冲突,这可能导致探索相当大的状态空间。在这里,我们描述和评估的第一个验证方法的基础上,通过承包商的区间方法,以减少域的变量表示的搜索空间。这种减少是基于建模为代表承包商约束的函数的指定属性。特别是,我们利用区间方法通过承包商增量分析程序循环变量和合同的属性保证举行修剪搜索探索的域,从而减少资源消耗积极。实验结果表明,我们所提出的方法的效率和有效性在一个大的基准集,包括$7044$验证任务,与国家的最先进的BMC工具相比。我们提出的方法可以减少内存使用高达$75$ \%,而验证$1$ \%更多的验证任务。
2022-09-21 cs.LO cs.SE
Integrating Loop Acceleration into Bounded Model Checking
本文将循环加速技术动态集成到基于SMT的有界模型检测中,通过添加捷径和阻塞子句,既能快速发现深层反例,又能在BMC发散时证明安全性,实验表明其在证明不安全性方面具有竞争力。
2024-08-09 cs.LO
Bounded LTL Model Checking with Stable Models
本文介绍了异步并发系统的有界模型检验,作为回答集编程的一个很有前途的应用领域。作为异步系统的通信自动机,1-安全Petri网的推广模型,使用。它示出了如何1-安全的Petri网和对网络的行为的要求可以被翻译成一个逻辑程序,这样的有界模型检验问题的网可以通过计算相应的程序的稳定模型来解决。稳定模型语义的使用导致有界可达性和死锁检测任务的紧凑编码,以及线性时序逻辑的有界模型检验的更一般的问题。给出了所设计的翻译的正确性证明,并给出了使用该翻译和Smodels系统的一些实验结果。
2003-05-23 cs.AI cs.LO
Scaling Bounded Model Checking By Transforming Programs With Arrays
有界模型检验是发现程序缺陷最成功的技术之一。然而,模型检查器是资源饥渴,往往无法验证程序循环迭代在大型arrays.We提出了一个转换,使有界模型检查器验证某一类数组属性。我们的技术将数组操作(ANSI-C)程序转换为无数组和无循环(ANSI-C)程序,从而显着降低了模型检查器的资源需求。转换后的程序的模型检验使用现成的有界模型检验器有效地模拟循环迭代。因此,我们的转换程序是一个健全的抽象的原始程序,也是精确的,在大量的情况下-我们正式的类的程序,它保证是精确的。我们在行业规范和学术基准上证明了我们的技术的适用性和有用性。
2017-03-07 cs.LO
Bounded Model Checking for Asynchronous Hyperproperties
对机密性的许多类型的攻击源于计算机程序在其中操作的环境的不确定性(例如,同步器和异步通信信道)。在本文中,我们专注于验证的机密性在不确定性环境中的异步超属性的推理。首先,我们概括的时间逻辑A-HLTL允许嵌套的轨迹量化,其中的轨迹确定不同的执行轨迹可能会推进和口吃。我们提出了一个有界的模型检验算法A-HLTL的基础上QBF解决的一个片段的广义A-HLTL和评估并发程序,调度攻击,编译器优化,投机执行,和缓存定时攻击的各种案例研究。我们还严格分析了A-HLTL不同片段的模型检验的复杂性。
2023-01-26 cs.LO
Functional Reduction to Speed Up Bounded Model Checking
Hong Kong University of Science and Technology (Guangzhou)(香港科技大学(广州))
FRAIG-BMC通过功能简化减少冗余,提升边界模型检查的效率和性能。
2025-12-07 cs.LO
Model Checking Resource Bounded Systems with Shared Resources via Alternating Büchi Pushdown Systems
资源受限的多智能体系统的验证一般是不可判定的。在许多这样的设置中,资源对于代理是私有的。本文研究了基于交替时序逻辑(ATL)的资源逻辑在共享资源下的模型检验问题。资源可以被消耗和生产到任何数量。我们表明,模型检验问题是不可判定的,如果两个或两个以上的这样的无界资源。我们的主要技术成果是,在一个单一的共享资源的情况下,问题变得可判定。虽然直观,可判定性的证明是不平凡的。我们减少模型检验的问题交替Büchi下推系统。一个中间结果连接到一般的基于自动机的验证:我们表明,模型检验计算树逻辑(CTL)(紧凑)交替Büchi下推系统是可判定的。
2015-08-14 cs.LO
Bounded Model Checking of Multi-threaded Software using SMT solvers
从单核处理器到多核处理器的过渡使得多线程软件成为计算机辅助验证的一个重要课题。在这里,我们描述和评估的ESBMC模型检查器的扩展,以支持验证多线程软件共享的变量和锁使用有界模型检验(BMC)的基础上可满足性模理论(SMT)。我们描述了三种方法来模型检查多线程软件和我们的建模的同步原语的Pthread库。在惰性方法中,我们生成所有可能的交织,并分别对每个交织调用BMC过程,直到我们找到一个bug,或者系统地探索了所有交织。在时间表记录方法中,我们将所有可能的交织编码成一个单一的公式,然后利用SMT求解器的高速。在欠近似加宽方法中,我们通过从SMT求解器生成的不可满足性证明中提取状态变量和交织的数量来减少状态空间。在所有这三种方法中,我们都使用了部分降阶(POR)技术来减少交织的数量。实验表明,我们的方法可以分析更大的问题,并大大减少验证时间相比,国家的最先进的技术,结合经典的POR方法与符号算法和其他实现反例引导抽象细化技术。
2010-03-19 cs.LO cs.SE
Dynamic Consistency Checking in Goal-Directed Answer Set Programming
在回答集编程中,当程序上的约束变得不可满足时,就会出现不一致。在本文中,我们介绍了一种技术,为我们的目标导向的方法计算答案集的动态一致性检查,只有那些被认为是相关的部分答案集的约束进行测试,允许不一致的知识库被成功地查询。然而,该算法保证,如果一个程序至少有一个一致的答案集,返回的任何部分答案集将是某个一致答案集的子集。逻辑程序设计理论与实践(Theory and Practice of Logic Programming,TPLP)
2014-05-14 cs.LO
Model Checking as Program Verification by Abstract Interpretation (Extended Version)
本文提出将模型检验视为程序验证,引入MOKA语言把时序逻辑公式编码为程序,并结合抽象解释与局部完全抽象动态精化分析精度,从而复用更一般的抽象并避免误报。
2025-06-05 cs.LO
A Note on the Complexity of Model-Checking Bounded Multi-Pushdown Systems
本文给出了模型检验多下推系统的复杂性刻画。多下推系统对递归并发程序进行建模,其中任何顺序进程都具有有限控制。我们认为有界性的三个标准概念:上下文有界性,相位有界性和堆栈排序。逻辑形式主义是一个线性时间时态逻辑,扩展了著名的逻辑CaRet,但专用于多下推系统,其中抽象运算符(与调用和返回有关),例如下一次和直到被堆栈参数化。我们表明,这个问题是EXPTIME-完全的上下文有界的运行和一元编码的上下文开关的数量,我们还证明了这个问题是2 EXPTIME-完全的相位有界的运行和一元编码的相位开关的数量。在这两种情况下,值k都作为输入给出(因此它不是模型检验问题的常数),这在复杂性上产生了实质性的差异。在某些情况下,我们的结果改善了以前的复杂性结果。
2012-12-06 cs.FL cs.LO
Forward Analysis and Model Checking for Trace Bounded WSTS
我们研究了良结构变迁系统(WSTS)的一个子类,即Ginsburg和Spanier(trans. AMS 1964)意义下的有界完全确定性系统,我们认为它为Finkel和Goubault-Larrecq(Logic. Meth. Comput. Sci. 2012年)。事实上,我们证明,不同于其他条件考虑以前终止的前向分析,有界性是可判定的。有界性被证明是一个有价值的限制WSTS验证,因为我们表明,它进一步允许决定所有的$ω$ -经常属性的无限的痕迹的系统。
2016-03-04 cs.LO
The parameterized space complexity of model-checking bounded variable first-order logic
本文研究有界变量一阶查询模型检测的参数化空间复杂度,建立树层次结构完备性,提出高空间效率检测器,并探讨其最优性。
2019-09-19 cs.LO
Model Checking on Interpretations of Classes of Bounded Local Cliquewidth
本文提出了一种固定参数的一阶模型检验算法,用于对局部宽度有界的图类进行解释。值得注意的是,这包括平面图的解释,更一般地,有界亏格的类。为了获得这一结果,我们开发了一种新的工具,它适用于一个非常一般的设置依赖类,我们相信这可以是一个重要的组成部分,在未来实现类似的结果。
2022-02-25 cs.DM cs.DS cs.LO
Technical Report: Model-Checking for Resource-Bounded ATL with Production and Consumption of Resources
文献中已经提出并研究了几种表示资源约束下联盟能力的逻辑。已有的工作表明,如果只考虑资源的消耗,或者系统中任意路径上产生或消耗的资源总量是有界的,那么几种标准逻辑(如资源有界联合逻辑(RB-CL)和资源有界交替时序逻辑(RB-ATL))的模型检验问题是可判定的.然而,对于具有无限资源生产和消费的联盟逻辑,只知道一些不可判定性结果。本文证明了资源无限生产和无限消耗的RB-ATL的模型检验问题是可判定的,但是EXPSPACE困难的.我们还调查了一些易于处理的情况下,并提供了一个详细的比较,资源逻辑RAL的一个变种,连同新的复杂性结果。
2015-04-25 cs.LO cs.MA
Model Checking C Programs with Loops via k-Induction and Invariants
我们提出了一种新的证明归纳算法,它结合了k-归纳法和不变量模型检查C程序有界和无界循环。k-归纳算法由三种情况组成:在基本情况下,我们的目标是找到一个反例,最多有k个循环展开;在正向条件下,我们检查循环是否已经完全展开,以及安全属性P是否在k个展开内的所有状态下都成立;在归纳步骤中,我们检查每当P对k个展开成立时,它在系统的下一个展开后也成立。对于k-归纳算法的每一步,我们使用仿射约束来推断不变量(即,多面体)指定前置和后置条件。利用多面体的不变量和不变量两种不同的方法实现了该算法,并对结果进行了比较。实验结果表明,两种形式都能处理多种安全属性,而采用多面体的k-归纳算法解决了更多的验证任务,证明了归纳算法有效性的提高。
2015-02-09 cs.LO cs.SE
Checking the HAL Interface Specification Continuously, Right from the Start
University of Freiburg(弗赖堡大学);Hahn-Schickard Institute(汉-希克哈德研究所);Offenburg University(奥芬堡大学)
本文提出了一种持续检查HAL接口规范的方法,从开发一开始就进行检查,通过多次迭代开发嵌入式应用程序,确保每个步骤的检查成功。
2025-12-18 cs.LO cs.SE
FO Model Checking on Posets of Bounded Width
在过去的二十年中,研究一阶(FO)模型检验算法的主要焦点一直是稀疏关系结构-最终由Grohe,Kreutzer和Siebertz提出的FPT算法,用于对无处密集的图类进行FO模型检验[STOC'14],密集结构最近才开始引起人们的注意。Bova,Ganian和Szeider [LICS'14]发起了对偏序集(偏序集)上FO模型检验复杂性的研究。Bova、Ganian和Szeider证明了模型检验存在FO逻辑在有界宽度的偏序集上是固定参数可处理的(FPT),其中偏序集的宽度是偏序集中最大反链的大小。然而,对于有界宽度偏序集上的一般FO模型检验,FPT算法的存在性仍然是开放的。我们给出了一个算法,它以宽度为$w$的$n$元偏序集$\cal P$和FO逻辑公式$ϕ$为输入,判定$ϕ$在时间$f(ϕ,w)\cdot n^2$上是否在$\cal P$上成立.
2015-05-29 cs.DM cs.LO
On Distributed Model Checking of MSO on Graphs
我们认为分布式模型检查的一元二阶逻辑(MSO)的图构成的通信网络的拓扑结构。因此,图既是被检查的结构,也是执行分布式计算的系统。我们证明了MSO可以分布式模型检查,只有一个常数的消息发送到每个链接的平面网络有界直径,以及网络有界度和有界树长。分布式算法依赖于非平凡变换的线性时间顺序算法有界树宽图的树分解。
2009-04-13 cs.DC cs.LO
Scaling Bounded Model Checking By Transforming Programs With Arrays
有界模型检验是发现程序缺陷最成功的技术之一。然而,对于在大型数组上进行循环迭代的程序,有界模型检查器通常会超出其可用资源的限制。我们提出了一个转换,使有界模型检查器,以验证某一类数组属性。我们的技术将ANSI-C中的数组操作程序转换为无数组和无循环的程序。转换后的程序可以有效地验证一个现成的有界模型检查。虽然变换后的程序是,在一般情况下,原程序的抽象,我们正式表征的性质,变换是精确的。我们在行业规范和学术基准上证明了我们的技术的适用性和有用性。
2016-08-17 cs.LO cs.PL
Epistemic Model Checking for Knowledge-Based Program Implementation: an Application to Anonymous Broadcast
知识为基础的程序提供了一个抽象的协议,其中代理人的行动是有关他们的知识状态的描述。本文介绍了如何认识模型检验技术可能会被应用到发现和验证具体的实现基于这个抽象层次的描述。实现的细节取决于协议使用的特定上下文。基于知识的方法使得实现能够相对于这些使用条件进行优化。该方法说明使用扩展的用餐密码协议,匿名广播的安全协议。
2010-04-26 cs.DC cs.LO
Bounded Model Checking for Unbounded Client Server Systems
IIT Dharwad(印度理工学院达瓦德分校);NIT Calicut(卡尔库特国立理工学院)
本文提出了一种新的计数逻辑和二维有界模型检查策略,用于验证具有无限客户端的客户端-服务器系统。
2026-02-18 cs.LO
Using Bounded Model Checking to Focus Fixpoint Iterations
在通过抽象解释的静态分析中,两个经典的不精确性来源是加宽和合并操作。合并操作可以通过区分路径来完成,就像在跟踪分区中一样,代价是枚举指数数量的路径。在这篇文章中,我们描述了如何避免这种系统的探索,集中在一个单一的路径,指定的SMT解决。我们的方法与加速技术结合得很好,因此在某些情况下也可以消除加宽。我们说明了它的公知的凸多面体域。
2011-06-14 cs.LO cs.PL
Proving Safety with Trace Automata and Bounded Model Checking
循环欠近似是一种技术,它通过额外的分支来丰富C程序,这些分支代表了(有限的)循环迭代范围的效果。虽然这种技术可以显著地加速错误的检测,但它引入了冗余的执行跟踪,这可能使程序的验证复杂化。这对于基于有界模型检验的验证工具尤其如此,该工具结合了简化的算法来确定是否已经考虑了循环的所有可行迭代。我们提出了一种技术,使用\emph{trace automata},以消除执行循环加速后的冗余执行。该方法减小了分析下的程序的直径,这在某些情况下足以允许使用有界模型检验的安全性证明。我们的转换是精确的-它不会引入假阳性,也不会掩盖任何错误。我们已经实现了分析作为一个源到源的转换,并提出了实验结果显示该技术的适用性。
2014-10-21 cs.FL cs.LO cs.PL
From Bounded Checking to Verification of Equivalence via Symbolic Up-to Techniques
我们提出了一个有界等价性验证技术的高阶程序与局部状态。该技术结合了完全抽象的符号环境互模拟类似的符号游戏语义,新的技术,轻量级的状态不变的注释。这产生了没有假阳性或假阴性的等效性验证技术。该技术是有界完备的,因为所有的不等式都是自动检测到足够大的界限。此外,几个硬等价证明自动或后被注释与状态不变量。我们在一个名为Hobbit的工具原型中实现了该技术,并使用一组广泛的新的和现有的示例对其进行基准测试。霍比特人可以证明许多经典的等价关系,包括所有迈耶和西伯的例子。
2021-10-22 cs.LO cs.PL
Efficient Loop Conditions for Bounded Model Checking Hyperproperties
有界模型检验(BMC)是一种通过增量式地探索系统状态空间来发现缺陷的有效技术。为了通过有限的结构推理无限的轨迹并最终获得完整性,BMC结合了重新访问先前观察到的状态的循环条件。本文着重于开发循环条件BMC的HyperLTL-时间逻辑的hyperproperties,允许表达重要的政策,在并发系统的安全性和一致性,等等。循环条件HyperLTL比LTL更复杂,因为不同的轨迹可能会不一致地在不相关的时刻循环。HyperLTL的现有BMC方法仅考虑线性展开,而没有任何循环能力,这排除了找到小的无限迹线和获得完整的技术。我们调查循环条件HyperLTL BMC,其中HyperLTL公式可以包含多达一个量词交替。我们首先提出了一个一般的完全自动机为基础的技术,这是基于最大展开的界限。然后,我们引入替代的基于模拟的算法,允许有效地利用短循环,生成SAT查询,其满足性保证了原始模型检验问题的结果。我们还报告了使用Z3 py的BMC技术的原型实现的经验评估。
2023-01-26 cs.LO
Bounded Model Checking of Pointer Programs Revisited
指针程序的有界模型检验是一种调试技术,用于操作堆上动态分配的指针结构的程序。它基于以下四点意见。第一,错误条件(如悬空指针的解引用)可以用双变量一阶逻辑的~片段来表示。其次,片段在最弱的前提条件wrt下是封闭的。有限路径第三,数据结构,如树、列表等,可以通过在数据库片段中定义的归纳谓词来表达。最后,双变量逻辑和数据库的两个片段的组合是可判定的。在本文中,我们通过扩展底层逻辑的表达能力来改进这种技术。在~序列的例子中,我们证明了新的逻辑是能够建模更复杂的数据结构与更复杂的依赖堆和更复杂的分析。
2016-02-29 cs.LO cs.PL
Stateless Model Checking for POWER
我们提出了第一个框架,有效地应用无状态模型检验(SMC)的程序下运行的放松内存模型的权力。该框架结合了几项贡献。第一个贡献是,我们开发了一个计划,系统地从现有的公理化的操作执行模型。该计划是这样的,派生的执行模型非常适合高效的SMC。我们将我们的计划的一个公理模型的权力。我们的主要贡献是一种技术,高效SMC,称为松弛无状态模型检验(RSMC),系统地探讨了可能的不等价执行的程序。RSMC是适合使用我们的计划获得的执行模型。我们证明了RSMC是健全的,最佳的POWER内存模型,在这个意义上,每个完整的程序行为探索一次。我们显示我们的技术的可行性,通过提供一个实现C/pthreads编写的程序。
2016-05-07 cs.LO
Auto-Tuning High-Performance Programs Using Model Checking in Promela
本文提出利用模型检查中的反例加速高性能程序自动调优,以OpenCL程序为例,结合Promela和SPIN工具实现并验证了该方法。
2023-05-16 cs.DC cs.LO
CurryCheck: Checking Properties of Curry Programs
我们提出CurryCheck,一个工具来自动测试的功能逻辑程序设计语言咖喱写的程序。CurryCheck执行单元测试以及通过一个或多个参数进行参数化的属性测试。在后一种情况下,CurryCheck通过系统地枚举测试用例来测试这些属性,以便对于较小的有限域,CurryCheck可以实际证明属性。可以在Curry模块中定义单元测试和属性,而无需导出。因此,它们对于记录源代码的预期语义也很有用。此外,CurryCheck还支持自动检查源程序中出现的规范和合同。因此,CurryCheck是一个有用的工具,有助于基于属性和规范的可靠和测试良好的声明性程序的开发。
2016-08-19 cs.LO cs.PL
Irene: Equivalence Checking of Hybrid Quantum Programs via Structure-Preserving Symbolic Reduction
Shanghai Jiao Tong University(上海交通大学)
提出Irene框架,通过保结构符号化简在门级、混合路径和及密度核三个层次验证混合量子程序等价性,在1982个程序对中解决79.92%,并发现15个编译器缺陷。
2026-09-30 cs.LO cs.PL cs.SE
Model Checking Temporal Properties of Recursive Probabilistic Programs
本文研究了递归概率程序(pPDA)针对 $ω$-可见下推语言的模型检测问题,给出了可判定性与复杂性结果,证明 CaRet 等逻辑可指定过程调用与返回匹配等结构化性质。
2023-12-14 cs.FL cs.LO
Bounded Model Checking of Max-Plus Linear Systems via Predicate Abstractions
本文介绍了最大线性系统的谓词抽象。从系统矩阵以及所考虑的规范中自动选择等同器械。我们专注于验证时间差规格,其中包括连续事件之间的关系MPL系统。我们实现了一个有界的模型检验(BMC)过程中的谓词抽象的给定MPL系统,以验证时间差规格的满意度。我们的谓词抽象实验表明,改善现有的MPL抽象算法。此外,重点是BMC算法,我们可以提供一个明确的上限的完整性阈值的瞬态和底层MPL系统的循环。
2019-07-08 cs.LO cs.SY eess.SY
FO model checking of geometric graphs
在过去的二十年里,一阶(FO)模型检验算法的研究主要集中在稀疏关系结构上--最终由Grohe、Kreutzer和Siebertz提出的FPT算法,用于对无处密集的图类进行FO模型检验。与此相反,除了局部有界的顶点宽度的情况下,只有很少的是目前所知的密集类的图或其他结构的FO模型检验。我们研究的FO模型检验问题的稠密图类定义的几何手段(相交和可见性图)。我们得到新的非平凡FPT结果,例如,对于圆弧、圆、盒、盘和双可见性图的受限子类。这些结果使用FPT算法Gajarskeleton等人。有界宽度偏序集的FO模型检验。我们还通过相关的硬度降低来补充易处理性结果。
2018-03-26 cs.LO
SMT-based Model Checking for Recursive Programs
提出了一种基于SMT的递归程序安全性验证的符号模型检验算法。该算法是模块化的,并单独分析程序。与其他基于SMT的方法不同,它既保持了程序摘要的“过度近似”,也保持了程序摘要的“欠近似”。欠近似用于分析过程调用,而无需内联。过近似用于阻止不可行的反例和检测收敛到一个证明。我们表明,程序和属性的可判定理论,该算法是保证找到一个反例,如果存在的。然而,效率依赖于用于量词消去(QE)的预言。对于布尔程序,该算法是一个多项式决策过程,匹配最佳BDD算法的最坏情况的界限。对于线性算术(整数和有理数),我们通过“懒惰地”应用QE给出了算法的有效实例。我们使用现有的插值技术来过度近似QE,并引入“基于模型的投影”来欠近似QE。在SV-COMP基准测试上的实验结果表明,该算法在最新水平上有了显著的改进。
2014-05-25 cs.LO
Efficient Algorithms for Time- and Cost-Bounded Probabilistic Model Checking
在概率定时系统的设计中,关于在给定时间、能量或更一般的成本预算内发生的行为的有界要求是至关重要的。传统上,这样的需求已经通过根据成本约束展开模型来减少到无界情况来进行模型检查。这加剧了状态空间爆炸问题,并显著增加了运行时间。在本文中,我们提出了三个新的算法来模型检查的时间和成本有界的马尔可夫决策过程和概率时间自动机,避免展开的属性。它们是基于一个修改的值迭代过程,枚举的状态,并消除技术。我们现在可以得到结果的任何成本限制在一个单一的状态空间不大于相应的无界或期望值属性。特别是,我们可以自然地计算累积分布函数,而无需开销。我们评估的适用性,并比较我们的新算法的性能和他们的实施从文献中的一些案例研究。
2016-05-18 cs.LO
An Overview of the HFL Model Checking Project
在这篇文章中,我们给出了一个概述我们的项目高阶程序验证的基础上HFL(高阶不动点逻辑)模型检验。在简要介绍HFL之后,我们解释了如何将其应用于程序验证,并总结了该项目的现状。
2021-09-10 cs.LO cs.PL
Abstraction and Acceleration in SMT-based Model-Checking for Array Programs
抽象(以其各种形式)是模型检验中一种强大的既定技术;然而,当涉及无界数据结构时,它并不总是以令人满意的方式处理发散现象。加速是一种广泛应用的避免发散的方法,但它主要应用于整数规划。本文讨论了无界数组的加速转换关系问题,最终目标是避免抽象程序可达性分析过程中的发散。为此,我们首先设计了一种格式来计算在这个域中的加速度,然后我们展示了如何适应所谓的“单调抽象”技术,以有效地处理复杂的公式与嵌套的量词所产生的加速预处理。值得注意的是,我们的技术可以很容易地插入到抽象/细化循环,并大大有助于避免发散:与MCMT模型检查器进行的实验证明了我们的方法对具有无界数组的程序的有效性,如果单独应用加速和抽象/细化技术,则会失败。
2013-10-03 cs.LO
A Type Checking Algorithm for Higher-rank, Impredicative and Second-order Types
我们研究了一种类型检查算法,它能够对使用高阶、非谓词和二阶类型等功能的函数式程序的非平凡子类进行类型检查。算法唯一需要类型注释的地方是在每个函数声明之前。我们证明了系统$\mathbf{F}_ω$的类型检查算法的可靠性,即如果程序是类型检查,那么类型检查器将产生一个良好类型的注释系统$\mathbf{F}_ω$术语。我们扩展了基本算法来处理模式匹配和let绑定。我们实现了一个原型类型检查器,并测试了各种功能的程序。
2017-11-13 cs.LO cs.PL
Checking Timed Bisimulation with Bounded Zone-History Graphs -- Technical Report
时间自动机(TA)是一个行之有效的形式化描述离散状态/连续时间行为的时间临界反应系统。关于基本分析问题的候选人的实现对规范进行比较,都给定为TA,它已被证明,定时跟踪等价是不可判定的,而定时互模拟等价是可判定的。相应的证明利用区域图,一个有限的,但通常非常占用空间的TA语义表征。因此,大多数实用的TA工具利用区域图,而不是符号和一般更有效的表示TA语义,自动化分析任务。然而,区域图只产生声音的分析任务的结果被简化为平原可达性问题,从而检查定时双相似性太不精确。在本文中,我们提出了有界区域历史图,一种新的表征TA语义促进可调的权衡精度和可扩展性之间的时间双相似性检查。据我们所知,我们的工具TimBrCheck是目前唯一可用的工具,用于有效地检查定时双相似性,甚至支持无声移动的非确定性TA。我们进一步提出了实验结果,从应用我们的工具收集的社区基准,提供洞察精度和效率之间的权衡,取决于绑定值。
2020-09-16 cs.FL cs.LO
Eliminating Unfounded Set Checking for HEX-Programs
Technische Universität Wien(维也纳工业大学)
HEX程序是应答集编程(ASP)范例的扩展,其通过所谓的外部原子将外部计算手段并入声明性程序设计语言中。它们的语义是根据Faber-Leone-Pfeifer(FLP)约简的最小模型定义的。开发本地解算器的HEX程序的基础上适当的概念,无根据的集合一直受到最近的研究效率的原因。虽然这导致了使用FLP约简的朴素最小性检查的改进,但对发现性的测试仍然是一项计算昂贵的任务。在这项工作中,我们提高了在这方面的HEX程序评估确定的语法类的程序,可以有效地识别,并允许完全跳过的foundedness检查。此外,我们开发的标准分解成组件的程序,这样的搜索无根据集可以受到限制。观察到我们的结果适用于许多HEX程序的应用程序提供了分析证据,我们的方法的意义和有效性,这是补充了初步的实验验证的简要讨论。
2013-01-08 cs.AI cs.LO
Combining Static and Dynamic Contract Checking for Curry
静态类型系统通常不足以表达对函数调用的所有要求。因此,带有前置和后置条件的契约可以用来表达对操作的更复杂的约束。可以在运行时间检查协定,以确保仅使用合理的参数调用操作并返回预期的结果。虽然这种动态契约检查提供了更可靠的程序执行,但它需要执行时间,并可能导致程序崩溃,这些崩溃可能会在编译时用更高级的方法检测到。为了改善这种情况的声明性语言,我们提出了一种方法,结合静态和动态的合同检查的功能逻辑语言咖喱。基于函数式逻辑程序设计中契约检验的形式化模型,提出了一种在编译时自动检验契约的方法。如果合同验证成功,则可以省略对合同的动态检查。这种方法减少了执行时间,而不会降低可靠的程序执行。在最好的情况下,当所有契约都被静态验证时,它提供了对软件的信任,因为在程序执行期间不会发生由于违反契约而导致的崩溃。
2017-09-14 cs.LO cs.PL
Linear Encodings of Bounded LTL Model Checking
研究线性时序逻辑的有界模型检验问题。我们提出了几个有效的编码,具有大小线性的界限。此外,我们展示了如何编码可以扩展到LTL与过去的运营商(PLTL)。广义编码仍然是线性的大小,但不能检测最小长度的反例。通过使用虚拟展开技术可以捕获最小长度的反例,然而,在规范中编码的大小是二次的。我们还扩展虚拟展开的Buchi自动机,使他们能够接受最小长度的反例。我们的BMC编码可以是增量的,以便从增量SAT技术中受益。通过相当小的修改,增量编码可以通过终止检查进一步增强,允许我们使用BMC证明属性。实验清楚地表明,我们的新编码大大提高了BMC的性能,特别是在增量编码的情况下,并且它们在发现错误方面非常有竞争力。对活性到安全性转换的分析揭示了本文中BMC编码的许多相似之处。使用基于BDD的不变式检查的活性到安全性的转换结果在一个有效的方法来找到最短的反例,补充基于BMC的方法。
2006-11-16 cs.LO
PEQcheck: Localized and Context-aware Checking of Functional Equivalence (Technical Report)
重构不得改变程序的功能。然而,并不是所有的重构都满足这个要求。因此,必须明确检查重构不会改变功能。由于很少有一个正式的规格说明程序的行为,我们利用原来的程序作为功能规范。然后,我们检查原始程序和重构后的程序在功能上是否等价。为此,我们采用一个共同的想法,减少等价性检查程序验证。为了提高效率,我们的等价性检查PEQcheck构造一个验证任务,每个重构的代码段,而不是一个功能,通常由以前的工作。此外,PEQcheck考虑代码段的上下文。例如,只有被修改的和活的变量才需要是等效的,只读变量可以在原始代码段和重构的代码段之间共享。此外,我们的评估证明,本地化和上下文感知检查执行的\peqcheck确实可以是有益的。
2021-03-22 cs.LO cs.PL
SMT-based Symbolic Model-Checking for Operator Precedence Languages
针对现有POTL显式状态模型检测方法可扩展性差的问题,本文提出首个基于SMT的符号化方法,将POTL公式与程序模型编码为SMT公式,通过求解器以有界模型检测方式搜索反例轨迹,实验验证了方案有效性。
2024-05-18 cs.LO
Compact Labelings For Efficient First-Order Model-Checking
我们考虑可以从标签检查的图形属性,即,位序列,对数长度附加到顶点。我们证明了存在这样一个标签检查一个一阶公式的自由集变量在图的每一个类是\emph{nicely locally cwd-decomposable}。这个概念概括了\emph{nicely locally tree-decomposable}类的概念。这些类的图可以由具有有限重叠的有界\emph{clique-width}的图覆盖。我们也考虑这样的标签的\emph{bounded}一阶公式的图形类的\emph{bounded expansion}。其中一些结果被扩展到计数查询。
2014-07-08 cs.DS cs.LO
MPBMC: Multi-Property Bounded Model Checking with GNN-guided Clustering
Indian Statistical Institute(印度统计研究所);IBM Systems(IBM系统公司);Texas Instruments(德州仪器)
本文提出基于图神经网络的多属性有界模型检查方法,通过功能聚类提升多属性验证效率。
2026-02-26 cs.AI cs.LG cs.LO
Type-checking Liveness for Collaborative Processes with Bounded and Unbounded Recursion
我们提出了第一个会话类型系统,保证可能非终止通信进程的请求-响应活性属性。这些类型用一组所需的响应来扩充标准二进制会话类型的分支和选择类型,这表明每当选择特定标签时,最终也必须选择一组其他标签,即其响应。我们证明,这些扩展类型是严格的表达比标准的会话类型。我们提供了一个类型系统的过程演算类似于一个子集的内部(基于数据)和外部(基于事件)分支,消息传递,有界和无界循环的协作BPMN流程。我们证明了这个类型系统是合理的,即,它保证了无死锁进程的请求-响应活性。我们在一个无限状态系统的具体例子上说明了微积分和类型系统的使用。
2016-01-05 cs.LO
Model checking Branching-Time Properties of Multi-Pushdown Systems is Hard
我们解决了多下推系统的共享内存并发程序的模型检验问题。我们认为在这里布尔程序与有限数量的线程和递归过程。众所周知,这类程序的模型检验问题是不可判定的。在本文中,我们调查的可判定性和这个问题的复杂性的假设下,有界的上下文切换定义的Qadeer和Zeroof,和相位有界的La Torre等人提出的。对时间逻辑,特别是分支时间逻辑,如模态$μ$ -演算或CTL的模型检验这样的系统很少受到关注。众所周知,与模态$μ$ -演算密切相关的奇偶博弈对于有界相位系统类是可判定的(因此对于有界上下文切换也是如此),但具有非初等复杂性(赛斯)。一个自然的问题是,这种高复杂性是否是不可避免的,有什么方法来绕过它。本文解决这些问题,不幸的是,有点令人惊讶的是,它表明,分支模型检验的MPDS本质上是一个很难的问题,没有简单的解决方案。我们证明了在相位限制下的MPDS上的奇偶博弈是非初等的。我们的主要结果表明,模型检验的$k$上下文有界MPDS对一个简单的CTL片段,由公式,其时间运营商来自集合${\EF, \EX}$,有一个非初等的下界。
2012-05-31 cs.FL cs.GT cs.LO
Automatic Verification of Timed Concurrent Constraint Programs
时间并发约束(Timed Concurrent Constraint,tccp)是并发约束编程(Concurrent Constraint Programming,cc)范式的扩展,它允许我们指定时间至关重要的并发系统,例如反应式系统。可以有无限多个状态的系统可以在tccp中指定。模型检验是一种能够自动验证具有大量状态的有限状态系统的技术。在过去的几年里,一些研究已经调查了如何扩展模型检验技术的系统具有无限数量的状态。在本文中,我们提出了一种方法,利用tccp的计算模型。基于约束的计算允许我们定义一种方法,将模型检验算法应用于(一类)无限状态系统。我们扩展的经典算法的模型检验LTL的一个特定的逻辑定义的验证tccp和tccp结构,我们在这项工作中定义的建模程序的行为。我们定义了一个限制的时间,以得到一个有限的模型,然后我们开发了一些说明性的例子。据我们所知,这是第一个为tccp定义模型检验方法的方法。
2005-05-11 cs.LO
Functional Equivalence Checking for Verification of Algebraic Transformations on Array-Intensive Source Code
高能效和高性能嵌入式软件的开发越来越依赖于对源代码关键部分进行复杂转换。设计师应用这种非平凡的源代码转换往往面临的问题,以确保功能等效的原始和转换后的程序。目前,他们不得不依赖于不完整和耗时的模拟。形式化的自动验证的转换程序对原来的是可取的。这就需要类似于比较数字电路的等价性检查工具。我们提出了这样一个工具来比较数组密集型相关的程序,通过组合的重要的全球性的转换,如表达式传播,循环和代数变换。当转换后的程序未能通过等价性检查时,该工具会提供有关错误可能位置的具体反馈。
2007-10-25 cs.LO