Modular Formal Verification of Rust Programs with Unsafe Blocks
Rust是一种现代系统程序设计语言,其类型系统保证内存安全。为了表现力和性能,它允许程序员暂时放松类型规则,使用不安全的代码块。然而,在不安全的块中,确保代码最终不会有未定义行为的负担是在程序员身上。即使是最专业的程序员也会犯错误,不安全块中的内存安全错误会使所有类型系统保证无效。为了解决这个问题,我们正在尝试使用我们的模块化符号执行算法来验证Rust不安全代码的可靠性。本文概述了我们的方法和迄今取得的进展。
2022-12-26 cs.LO cs.PL
Set Theory for Verification: II. Induction and Recursion
递归定义的理论在伊莎贝尔的Zermelo-Fraenkel(ZF)集合论中已经机械化。目标是支持特定递归定义的形式化,用于验证,语义证明和其他计算推理。归纳定义的集合被表示为最小不动点,在一个合适的集合上应用Knaster-Tarski定理。递归函数由良基递归及其导数定义,例如超限递归。递归数据结构通过将Knaster-Tarski定理应用于集合(例如V[omega])来表示,该集合在笛卡尔积和不相交和下是封闭的。工作的例子包括关系的传递闭包,列表,变量分支树和相互递归树和森林。Schröder-Bernstein定理和命题逻辑的可靠性在Isabelle会议中得到证明。
2000-11-14 cs.LO
Verification of recursive parallel systems
在本文中,我们考虑证明适合用递归和并行来描述(无限状态)系统的形式主义的无限行为的性质的问题。作为一个正式的设置,我们认为过程重写系统(PRS)的框架。对于一个有意义的片段的PRS,允许同时容纳下推自动机和Petri网,我们状态的可判定性结果的一类性质的无限衍生物(无限长期重写)。所得结果可用于PRS描述的无限状态系统的某些线性时间性质的自动验证。为了验证评估结果,我们引入了一个有意义的基于自动机的形式主义,它允许表达递归和多线程。
2003-12-11 cs.LO
Liveness Verification and Synthesis: New Algorithms for Recursive Programs
我们考虑递归程序的活性验证和活性合成问题。活性验证问题(LVP)是判定给定的omega-正则语言是否包含给定的omega-上下文无关语言。活性合成问题(LSP)是计算一个策略,使得当沿着该策略进行给定的omega-上下文无关游戏时,保证导出给定omega-正则语言中的单词。这两个问题分别是EXPTIME完全问题和EXPTIME完全问题。我们的贡献是新的算法具有最佳的时间复杂度。对于LVP,我们概括了最近的拉索发现算法(也称为拉姆齐算法)从有限递归程序。对于LSP,我们概括了最近的摘要为基础的算法从有限到无限的话。Lasso查找和摘要已被证明在有限状态和有限字设置的许多实现中是有效的。
2017-01-11 cs.FL cs.LO
Verification of Object-Oriented Programs: a Transformational Approach
我们表明,验证面向对象的程序,通过断言的方法,可以实现在一个简单的方式,通过利用一个语法导向的转换,从面向对象的程序递归程序。这种转换表明自然的证明规则和它的正确性,帮助我们建立健全和相对完整的证明系统。困难之一是如何在断言语言中正确处理实例变量和别名。所讨论的程序设计语言支持数组、实例变量、失败和带参数的递归方法。
2011-11-08 cs.LO cs.PL
RHLE: Modular Deductive Verification of Relational $\forall\exists$ Properties
Hoare风格的程序逻辑是一种流行而有效的软件验证技术。关系程序逻辑是这种方法的一个实例,它能够推理两个或多个程序执行之间的关系。现有的关系程序逻辑集中于验证程序集合的所有运行不违反指定的关系行为。几个重要的关系属性,包括精细化和不干涉,不属于这一类别,因为它们也要求存在特定的理想执行。本文介绍了RHLE,用于验证这些类型的关系$\forall\exists$属性的逻辑。我们的方法的关键是一种新形式的函数规范,采用了一个变种的幽灵变量,以确保有效的实现表现出某些行为。我们已经使用了一个基于RHLE的程序验证器来验证一组不同的关系$\forall\exists$属性从文献中得出。
2022-09-08 cs.LO cs.PL
Towards modular verification of pathways: fairness and assumptions
模块化验证是一种用于解决并发交互系统等复杂系统的性能验证中经常遇到的状态爆炸问题的技术。模块化方法是基于这样的观察,即感兴趣的属性通常只涉及系统的一小部分。因此,可以构建简化的模型,其近似于整个系统的行为,从而允许更有效的验证。生物化学途径可以被看作是复杂的并发交互系统。因此,验证它们的属性通常在计算上非常昂贵,并且可以利用模块化方法。在本文中,我们报告的生化途径的模块化验证框架的发展的初步结果。我们认为生物化学途径是竞争分子资源的并行反应系统。模块化验证技术可以基于仅包含涉及感兴趣的分子资源的反应的简化模型。对于一个适当的描述系统的行为,我们认为,它是必不可少的考虑一个合适的公平性的概念,这是一个完善的概念,并发理论,但在该领域的新途径建模。我们提出了一个建模方法,包括公平性,我们确定的假设下,验证属性可以在一个模块化的方式。我们证明了这种方法的正确性,并证明它的模型上的EGF受体诱导的MAP激酶级联Schoeberl等。
2012-11-17 cs.LO
Abstract GSOS Rules and a Modular Treatment of Recursive Definitions
函子的终端余代数充当各种类型的基于状态的系统的语义域。例如,CCS过程、流、无限树、形式语言和非良基集的行为形成终端余代数。结合两种思想给出了终结余代数中递归定义语义的统一解释:(1)抽象GSOS规则l指定终结余代数上的附加代数运算;(2)终结余代数也是初始完全迭代代数.我们还表明,一个抽象的GSOS规则导致新的扩展CIA结构的终端余代数。然后,我们形式化的递归函数定义,涉及给定的操作指定的l作为递归程序计划的l,我们证明了存在唯一的解决方案,在扩展的cias。从我们的结果可以看出,终端余代数的递归(函数)定义的解决方案可以用于后续的递归定义仍然有唯一的解决方案。我们称之为模块化原则。我们用上面提到的五个具体的终端余代数来说明我们的结果,例如,在一个实施例中,有限流电路定义唯一的流函数。
2013-09-27 cs.LO math.CT
Modular Verification for Almost-Sure Termination of Probabilistic Programs
在这项工作中,我们考虑几乎肯定终止问题的概率程序,询问是否一个给定的概率程序终止概率为1。可伸缩的程序分析方法通常依赖于模块化作为其理论基础。在非概率程序中,Floyd-霍尔逻辑的经典变式规则(V-规则)为模块化分析提供了基础。将该规则扩展到概率程序的几乎确定终止是相当棘手的,并且在[Fioriti and Hermanns 2015]中提出了一个概率变体。虽然所提出的概率变量谨慎地解决了可积性的关键问题,我们表明,所提出的模块化规则仍然是不健全的几乎肯定终止的概率程序。除了建立以前的规则的不健全,我们的贡献如下:首先,我们提出了一个健全的模块规则几乎确定终止的概率程序。我们的方法是基于一个新的概念下降上鞅。其次,对于算法方法,我们考虑下降上鞅是线性的,并表明它们可以在多项式时间合成。最后,我们提出了各种基准测试和几个自然的例子,模拟各种类型的嵌套而循环的概率程序的实验结果,并证明我们的方法是能够有效地证明其几乎肯定的终止属性。
2019-08-12 cs.LO cs.PL
Verification of Component-based Systems with Recursive Architectures
研究了参数化构件系统的可靠性验证方法。该方法使用了资源逻辑,一种新的正式规约语言的分布式系统组成的一个有限的,但无界数量的组件。该逻辑允许通过与用于描述代数数据类型或递归数据结构的归纳定义类似的归纳定义来描述协调有限数量类型的组件的实例的架构配置。对于这种逻辑中指定的参数系统,我们表明,决策问题,如达到死锁或违反临界区是不可判定的,在一般情况下。尽管这个负面的结果,我们提供了这些决策问题的实际半算法依赖于自动合成的结构不变允许一般的安全性能的证明。使用一元二阶逻辑的WSkS片段定义不变量,已知其可由经典自动机逻辑连接判定,从而将验证问题减少到检查WSkS公式的可满足性。
2021-12-15 cs.FL cs.LO
Sheaves and geometric logic and applications to the modular verification of complex systems
在本文中,我们表明,并发系统的状态,转移和行为往往可以建模为一个合适的拓扑空间上的层。在这种情况下,几何逻辑可以用来描述当互连系统时,在全局级别上保留哪些局部属性(即单个系统的属性)。主要应用领域是复杂系统的模块化验证。我们说明的想法,通过一个例子,涉及一个家庭的相互作用的控制器的火车上的铁路轨道。
2008-10-16 cs.LO
Modular termination verification with a higher-order concurrent separation logic (Intermediate report)
我们报告的中间结果,我们的研究推理活性属性,除了深正确性的一个命令,并发程序设计语言与高阶存储。目前,我们集中在一个特定的活性属性,即终止。通过保证终止性,我们可以将部分正确性的陈述加强为完全正确性。这是通过将终止性转换为安全属性的经典方法来实现的。特别是,我们扩展的程序设计语言考虑与调用权限,这已被证明,使模块化的推理终止。添加原子块是为了增加我们基于调用权限的方法的表现力。我们的工作建立在Iris --一个基础的、机器检查的、高阶并发分离逻辑框架--之上,而不修改它。有了这些补充,我们就能够模块化地推理并发但非阻塞算法的终止。我们对正在考虑的程序设计语言的添加保留了Iris对帮助和预言进行推理的能力。作为一个例子,我们将当前的系统应用于现有的无锁并发堆栈的案例研究,并在Iris中得到了证明。最后,我们概述了扩展阻塞并发方法的后续步骤。
2022-12-28 cs.LO cs.PL
Transforming opacity verification to nonblocking verification in modular systems
我们考虑验证的当前状态和K步不透明的系统建模为相互作用的非确定性有限状态自动机。我们描述了一种新的方法组成的不透明性验证,采用抽象的形式称为不透明的观察等价的概念,并利用现有的组合非阻塞验证算法。合成方法是基于系统的变换,其中变换后的系统是非阻塞的,当且仅当原始系统是当前状态不透明的。此外,我们证明了$K$步不透明度也可以推断,如果转换系统是非阻塞。我们提供的实验结果,有效地验证了当前状态的不透明度为一个大规模的系统。
2019-05-13 cs.FL cs.LO
Modular Control Plane Verification via Temporal Invariants
针对超大规模网络整体式控制平面验证无法扩展的问题,提出基于时间不变量的模块化验证系统 Timepiece,通过时序逻辑接口实现高效且正确的网络属性验证。
2023-04-08 cs.LO cs.NI
Towards Compositional Verification for Modular Robotic Systems
The University of Manchester(曼彻斯特大学)
模块化机器人系统的软件工程是一项具有挑战性的任务,然而,验证所开发的组件是否都能单独和整体地表现出其独特的挑战。特别是,模块化机器人系统中的不同组件通常需要不同的验证技术,以确保它们按预期运行。当使用各种技术和形式主义验证单个组件时,很难确保整个系统的一致性。本文讨论了如何使用组合验证来集成应用于模块化机器人软件的各种验证技术,使用捕获每个组件的假设和保证的一阶逻辑(FOL)合同。然后,这些契约可以用于指导各个组件的验证,无论是通过测试还是使用正式方法。我们提供了一个说明性的例子,用于远程检查的自主机器人。我们还讨论了定义与每个组件相关的验证置信度的方法。
2020-12-03 cs.LO cs.RO cs.SE
Programming-By-Example by Programming-By-Example: Synthesis of Looping Programs
程序合成近年来有了许多新的应用,这在很大程度上要归功于SyGuS的引入。然而,现有的SyGuS求解器都不支持合成递归函数。我们介绍了一个多阶段的算法,在SyGuS中的递归“loolike”程序的合成编程的例子。我们单独解决约束,并将其视为递归程序如何行为的“展开”示例,并求解广义递归解。我们的方法是模块化的,支持任何SyGuS求解器。
2021-08-19 cs.LO cs.PL
Automatic Verification of Parametric Specifications with Complex Topologies
本文的重点是降低验证的复杂性,利用模块化在各个层次上:在规范,验证,和结构。对于规范,我们使用的模块化语言CSP-OZ-DC,它允许我们解耦验证任务有关的数据从那些有关的持续时间。在验证级别,我们利用模块化的定理证明丰富的数据结构,并使用此不变检查。在结构层面上,我们分析了模块化验证的系统组成的各种组件的相互作用的可能性,我们说明了这些想法,通过自动验证安全性能的案例研究,从欧洲训练控制系统标准,它扩展了以前的例子,包括一个复杂的轨道拓扑结构与列表的轨道段和列车与不同的路线。
2010-10-08 cs.LO cs.SE
On The Reachability Problem for Recursive Hybrid Automata with One and Two Players
受有限状态机有界模型检验框架成功的启发,Ouaknine和Worrell提出了实时验证的时间有界理论,认为对有限时间的限制恢复了与实时验证相关的几个关键决策问题的可判定性。为了支持这一理论,最近的列表不可判定的问题证明在时间有界的限制下可判定的是相当令人印象深刻的:语言包含的时间自动机,空问题交替时间自动机,空问题矩形混合自动机。我们研究的目的是恢复一般递归时间自动机的可判定性-也许递归混合自动机-在时间有界的限制下,以提供一个有吸引力的验证框架,强大的建模环境,如Stateflow/Simulink。不幸的是,然而,我们回答这个问题的否定表明,时间有界的可达性问题保持不可判定的递归时间自动机与五个或更多的时钟。虽然坏消息继续,即使当一个考虑行为良好的子类的递归混合自动机,我们恢复可判定性考虑递归混合自动机与有界上下文使用通过引用机制,或通过限制变量的数量为2,率在$\{0,1\}$。
2014-08-15 cs.FL cs.LO
Modular Verification of Differential Privacy in Probabilistic Higher-Order Separation Logic (Extended Version)
Aarhus University(奥胡斯大学);New York University(纽约大学);Amazon Web Services(亚马逊云科技)
本文提出一种适用于复杂通用编程语言中差分隐私实现验证的程序逻辑,支持隐私预算作为分离逻辑资源的推理,可处理隐私过滤器和缓存等常见编程模式,并通过实现验证的差分隐私库展示其通用性和可重用性。
2026-04-14 cs.LO cs.PL
Parallel Composition and Modular Verification of Computer Controlled Systems in Differential Dynamic Logic
计算机控制系统(CCS)是混合系统的一个子类,其中控制元件与时间的周期关系是至关重要的。由于它们也是许多安全关键设备的核心,因此正确建模此类系统并确保它们根据安全要求正确运行至关重要。微分动态逻辑$d\mathcal{L}$是一种对混合系统建模和证明其正确性的强大逻辑。我们贡献了一个基于组件的建模和推理框架,$d\mathcal{L}$,分离成组件的定时保证,如控制器的反应性和连续动态的可控性模型。组件以并行方式运行,具有粗粒度交织、周期性执行和通信。我们提出的技术,自动化系统的安全性证明,从隔离,模块化,并可能机械化的组件属性参数化的时间特性的证明。
2019-07-08 cs.LO
Probabilistic Verification for Modular Network-on-Chip Systems (extended version)
针对片上网络设计中电源噪声引发的可靠性问题,提出基于Modest语言的模块化建模方法,结合Modest Toolset与统计模型检验完成不同规模NoC的功能及PSN相关属性验证。
2025-11-17 cs.LO
solc-verify: A Modular Verifier for Solidity Smart Contracts
我们提出了solc-verify,一个以太坊智能合约的源代码级验证工具。Solc-verify采用Solidity编写的智能合约,并使用模块化程序分析和SMT求解器释放验证条件。建立在Solidity编译器之上,solc-验证在合约源代码级别的原因,而不是在以太坊字节码级别操作的更常见的方法。这使得solc-verify能够在精确建模低级语言语义的同时有效地推理高级契约属性。合约属性,如合约不变量、循环不变量和函数前置条件和后置条件,可以由开发人员在代码中作为注释提供。这为智能合约提供了自动化但用户友好的形式化验证。我们通过检查现实世界的例子,我们的工具可以有效地找到错误,并证明正确性的非平凡的属性,以最小的用户努力来演示solc验证。
2020-03-16 cs.LO cs.PL cs.SE
Efficient Verification of Concurrent Programs Over TSO Memory Model
我们解决的问题,多线程程序运行在总存储顺序(TSO)内存模型的有效验证。它已被证明,即使有限的数据域程序,控制状态可达下TSO的复杂性是非原始递归。在本文中,我们首先提出了一种有界缓冲区验证方法,其中缓冲区的大小上的界限放置,验证是递增地进行,通过增加的缓冲区的大小与验证过程的每次迭代,直到达到所述的界限。对于有限数据域上的程序,我们还证明了存在一个缓冲区的界限K,如果该程序是安全的,那么它也是安全的无界缓冲区。我们已经实现了这种技术在一个工具ProofTraPar。我们的结果对memorax [2],一个国家的最先进的声音和完整的验证TSO记忆模型,一直令人鼓舞。
2016-06-17 cs.LO cs.PL
Reasoning about Recursive Quantum Programs
大多数现代(经典)程序设计语言都支持递归。递归也被成功地应用于几种量子算法的设计,并被引入到几种量子程序设计语言中。因此,可以预期递归将成为量子编程的基本范式之一。已经开发了几种程序逻辑来验证量子while程序。然而,在量子计算(测量)中,还没有通用的方法来推理(互)递归过程和辅助量子数据结构。我们提出了一种参数化的量子断言逻辑,并在此基础上设计了一种量子霍尔逻辑,用于验证带有辅助数据和概率控制的参数化递归量子程序.量子霍尔逻辑可以用来证明这些量子程序的部分正确性、全部正确性,甚至概率正确性(通过简化为全部正确性)。特别是,两个反例说明不完整的非参数化断言在验证递归过程中,和,一个反例显示失败的推理与精确概率的基础上部分正确性,构造。我们的逻辑的有效性是由三个主要的例子-递归量子马尔可夫链(概率控制),不动点格罗弗的搜索,和递归量子傅立叶采样。
2021-07-24 cs.LO cs.PL
Incremental Observer Reduction Applied to Opacity Verification and Synthesis
随着通信网络和移动设备的激增,人们对它们的信息流的隐私和安全问题提出了担忧。给定一个可能泄露机密信息的关键系统,问题包括通过设计监督程序来验证和实施不透明性,以向未经授权的人员隐藏机密信息。为了找出入侵者看到了什么,需要构造一个系统的观察者。在本文中,我们考虑增量观测器生成模块化系统,验证和执行当前状态的不透明性。子系统的同步产生一个大的状态空间。此外,具有指数复杂度的观测器生成增加了更大的状态空间。为了解决复杂性问题,我们证明了观察者生成可以在本地同步子系统之前完成。与传统的单片方法相比,增量局部观测器生成以及抽象方法导致显着的状态空间减少。增量法亦考虑共同不可观察事件的存在。此外,我们提出了一个说明性的例子,其中验证和执行当前状态不透明度的结果显示在一个模块化的多楼层/电梯建筑与入侵者。此外,我们扩展了当前状态的不透明性,当前状态的匿名性,和基于语言的不透明性公式验证模块化系统。
2019-10-12 cs.LO
Modular assurance of an Autonomous Ferry using Contract-Based Design and Simulation-based Verification Principles
针对自主系统安全保证需形式化证据的问题,提出采用契约式设计的ADA数字资产保证框架,并以自主渡轮避碰为案例验证,同时探讨仿真测试在契约合规验证中的作用。
2024-10-30 cs.LO
Automatic Modular Abstractions for Linear Constraints
提出了一种通过抽象解释自动生成用于静态分析的抽象Transformers的方法。该方法的重点是对程序的线性约束,操作合理的,真正的或浮点变量,并包含线性分配和测试。除了无循环代码,同样的方法也适用于获得最小不动点作为前提条件的函数,这允许分析循环和递归函数。我们的算法是基于新的量词消去和符号操作技术。给定一个抽象域的规范和一个程序块,我们的方法自动输出相应的抽象Transformer的实现。因此,它是程序转换的一种形式。我们工作的动机是数据流同步程序设计语言,用于构建控制命令嵌入式系统,但它也适用于命令式和函数式编程。
2008-11-02 cs.LO cs.PL
Automatic modular abstractions for template numerical constraints
提出了一种通过抽象解释自动生成用于静态分析的抽象Transformers的方法。该方法的重点是对程序的线性约束,操作合理的,真正的或浮点变量,并包含线性分配和测试。除了无循环代码,同样的方法也适用于获得最小不动点作为前提条件的函数,这允许分析循环和递归函数。我们的算法是基于新的量词消去和符号操作技术。给定一个抽象域的规范和一个程序块,我们的方法自动输出相应的抽象Transformer的实现。因此,它是程序转换的一种形式。我们工作的动机是数据流同步程序设计语言,用于构建控制命令嵌入式系统,但它也适用于命令式和函数式编程。
2010-05-31 cs.LO cs.PL
Semi-Automated Modular Formal Verification of Critical Software: Liveness and Completeness Thresholds
本论文提出两项贡献:一是用于公平调度下忙等待程序终止性验证的分离逻辑,二是将有界内存安全证明简化为有界证明的完备性阈值概念,并刻画了数组遍历程序的阈值。
2024-03-14 cs.LO
Verification Modulo Tested Library Contracts
Indian Institute of Science(印度科学研究院);University of Illinois Urbana-Champaign, Department of Computer Science(伊利诺伊大学厄巴纳-香槟分校计算机科学系);University of Wisconsin(威斯康星大学)
本文提出了一种基于测试库合同的验证方法,通过合成模块化合同和上下文合同来确保客户端程序的正确性,并利用反例引导学习框架进行验证。
2026-05-07 cs.LG cs.LO cs.PL
A Logic for Recursive Quantum Programs
大多数现代(经典)程序设计语言都支持递归。递归也被成功地应用于几种量子算法的设计,并被引入到几种量子程序设计语言中。因此,可以预期递归将成为量子编程的基本范式之一。已经开发了几种程序逻辑用于验证非递归量子程序。然而,在量子计算中,还没有通用的方法来推理递归过程。我们填补了空白,本文提出了一个递归量子程序的逻辑。该逻辑是量子While程序的量子霍尔逻辑的推广。证明了该逻辑的(相对)完备性,并通过一个运行的例子:不动点Grover搜索证明了其有效性。
2018-12-10 cs.LO
Proving Properties of Sorting Programs: A Case Study in Horn Clause Verification
程序性质的证明可以归结为一组约束Horn子句(CHC)的可满足性证明,这些约束Horn子句可以由程序和程序性质自动生成。在本文中,我们已经进行了一个案例研究,在霍恩子句验证,考虑几个排序程序的转换技术,使我们能够消除归纳数据结构,如列表或树的有效性进行了探索。如果这种技术是成功的,我们得到一组CHC的整数和布尔值的约束,可满足性检查通常可以通过使用最先进的CHC求解器,如Eldarica或Z3,以有效的方式进行。在这个案例研究中,我们还说明了一个配套技术的有用性的基础上引入所谓的差异谓词,其定义对应于在验证过程中所需的引理。我们已经考虑了实现以下类型的排序算法作用于整数列表的函数程序:(i)线性递归排序算法,如插入排序和选择排序,以及(ii)非线性递归排序算法,如快速排序和合并排序,我们已经考虑了以下性质:(i)部分正确性属性,即输出列表的有序性,以及当被视为多集时输入和输出列表的相等性,以及(ii)一些算术属性,例如排序之前和之后的元素之和相等。
2019-07-09 cs.LO cs.PL cs.SC
Decidable Verification of Uninterpreted Programs
我们研究的问题是完全自动验证未解释的程序--程序工作在任意的数据模型,提供了一个解释的常数,功能和程序使用的关系。验证问题询问给定的程序是否满足使用无量词公式编写的后置条件,在最终状态上具有相等性,没有提供循环不变式,合同等。我们证明了这个问题在一般情况下是不可判定的。本文的主要贡献是一个子类的程序,称为一致的程序,承认可判定的验证,并可以决定在PSPACE。然后,我们扩展这类程序的程序,是$k$ -连贯的,其中$k \in \mathbb{N}$,通过(自动)添加$k$鬼变量和分配,使它们连贯。我们还扩展了可判定性的结果与递归函数调用的程序,并证明了几个不可判定性的结果,表明为什么我们的限制,以获得可判定性似乎是必要的。
2020-08-26 cs.FL cs.LO cs.PL
CB-VER: A Stable Foundation for Modular Control Plane Verification
Princeton University(普林斯顿大学)
本文提出CB-VER框架,用于验证网络控制平面的最终稳定属性,通过收敛前图(CB图)并结合SMT求解器并行检查组件需求,证明算法的正确性,并展示其在合理时间内验证复杂属性的能力。
2026-09-17 cs.LO cs.NI
Verification of the IBOS Browser Security Properties in Reachability Logic
本文给出了Illinois浏览器操作系统(IBOS)的重写逻辑规范,定义了可达性逻辑中的同源策略(SOP)等安全属性。它展示了如何使用我们的基于构造器的可达性逻辑定理证明器来演绎验证这些属性。本文还强调了证明中使用的推理技术和三个模块化原则,这些原则对扩大规模和完成验证工作至关重要。
2020-05-25 cs.CR cs.FL cs.LO
Efficient verification of imperative programs using auto2
Auto 2是最近为证明助手Isabelle引入的证明器。它被设计为既可以从Isabelle内部高度定制,又具有强大的证明搜索机制。本文将auto 2应用于命令式程序的验证。我们描述了两个阶段的证明过程中的自动2的设置:验证的功能版本的程序,并使用分离逻辑完善的命令式版本。作为例子,我们验证了几个数据结构,包括红黑树,区间树,优先级队列,和union-find。我们还验证了几个算法利用这些数据结构。这些例子表明,我们的框架是能够有效地验证复杂的算法,并在一个模块化的方式。
2018-02-24 cs.LO
Gradual C0: Symbolic Execution for Gradual Verification
本文提出首个实用的递归堆数据结构渐进式验证器 Gradual C0,以符号执行为核心并减少动态检查插入,实证显示其平均运行时开销较完全动态方法降低11%至34%。
2024-01-19 cs.LO
AProVE: Modular Termination Analysis of Memory-Manipulating C Programs
针对C程序终止性分析中精确性与大规模程序抽象需求的权衡问题,研究将侧重精确性的AProVE工具调整为模块化符号执行分析方法,使其可处理递归程序并适配大型程序。
2025-06-12 cs.LO
Modeling and Verification of Infinite Systems with Resources
我们考虑资源消耗递归程序的形式化验证。我们引入前缀替换系统与非负整数计数器,可以增加和重置为零,作为一个正式的模型,这样的程序。在这些系统中,我们调查的可达性问题的资源消耗的界限。基于这个问题,我们引入了具有资源的关系结构和这些结构上的定量一阶逻辑。我们定义了资源自动结构作为这些结构的子类,并提供了一种有效的方法来计算这个子类上的逻辑的语义。随后,我们使用这个框架来解决资源前缀替换系统的有界可达性问题。我们实现了这一结果,通过扩展著名的饱和度的方法来注释前缀替换系统。最后,我们提供了一个连接到逻辑成本的研究-WMSO。
2013-12-14 cs.LO
A Navigation Logic for Recursive Programs with Dynamic Thread Creation
本文提出时序逻辑NTL,用于推理动态下推网络中递归程序的调用、返回及动态线程创建行为,并证明其模型检测与可满足性问题的复杂度不高于下推系统上的LTL,为验证此类程序提供了新途径。
2023-10-30 cs.FL cs.LO
Formal Verification of the Safegcd Implementation
本文针对 libsecp256k1 中基于 Safegcd 的模逆算实现,利用 Coq 与 Verifiable C 分离逻辑完成其正确性的计算机验证证明。
2025-07-23 cs.CR cs.LO
Saturating Sorting without Sorts
该研究提出一种基于饱和一阶定理证明的框架,通过抽象种类参数、形式化排列性质与组合式归纳自动化,实现递归排序函数式程序的正确性验证,并在归并、快速排序上验证了适用性。
2024-03-06 cs.LO cs.SC