A Game Semantics of Concurrent Separation Logic
在本文中,我们发展了一个博弈论的帐户并发分离逻辑。对于代码在环境中的每一个执行轨迹,我们都关联了一个规范游戏,其中夏娃为代码而亚当为环境而游戏。Eve和Adam的目的是将执行跟踪的每个中间机器状态分解为三部分:一部分用于代码,一部分用于环境,一部分用于可用的共享资源。我们建立健全的并发分离逻辑解释每一个派生树的逻辑作为一个获胜的策略,这个规范的游戏。
2017-10-06 cs.LO cs.PL
Towards Concurrent Quantitative Separation Logic
本文提出并发定量分离逻辑,将定量分离逻辑与并发分离逻辑结合,用于验证并发、指针和随机化程序实现后置条件的概率下界。
2024-09-30 cs.LO cs.PL
A Higher-Order Logic for Concurrent Termination-Preserving Refinement
高阶并发语言的更精确的正确性证明是困难的:它们涉及到在并发的高级源语言和使用低级共享内存原语的实现之间建立一个保持终止的精化。然而,现有的逻辑证明并发加细要么忽略属性,如终止,或只处理一阶状态。在本文中,我们解决这些限制,扩展虹膜,最近的高阶并发分离逻辑,支持终止保留的细化推理。为了证明这些扩展的功能,我们证明了一个高阶,会话类型的语言的有效实现的正确性。据我们所知,这是第一个能够为这种语言提供编译器正确性证明的程序逻辑。我们的扩展和我们的编译器正确性证明的合理性已经在Coq中机械化。
2017-01-20 cs.LO cs.PL
Independence and concurrent separation logic
一个组合的Petri网为基础的语义给出了一个简单的语言,允许指针操作和并行。然后,该模型被应用到给出一个概念的有效性并发分离逻辑,强调在这样的可靠性保证推理的过程-环境的二重性所作出的判断。合理性的并发分离逻辑的规则相对于这个定义的有效性。保留的Petri网模型的独立性信息,然后利用来表征的逻辑执行的并行进程的独立性。这表明允许能够改变原子动作的粒度的细化操作。
2008-03-19 cs.LO cs.PL
Observational equivalences for linear logic CC languages
线性逻辑并发约束规划(LCC)是并发约束规划(CC)的一种扩展,其中约束系统是基于Girard的线性逻辑而不是经典逻辑。在本文中,我们解决这个编程框架的程序等价性问题。为了这个目的,我们提出了一个结构化的操作语义LCC的标签转换系统的基础上,并调查不同的概念的观察等价的启发,最先进的进程代数。然后,我们证明了异步π演算可以被看作是LCC的简单的语法限制。最后,我们表明LCC观测等价可以直接转置到经典的并发约束语言和约束处理规则,并调查由此产生的等价。
2011-08-01 cs.PL
Compositional Verification in Concurrent Separation Logic with Permissions Regions
本文提出带权限区域的 CSL-Perm 组合式验证系统,通过可推断框架规则残余堆的蕴涵过程实现线程与函数调用推理,并经 CoSl 工具验证其优势。
2025-10-06 cs.LO cs.PL
Concurrent Separation Logic Meets Template Games
并发理论和程序设计语言语义学的一个古老梦想是揭示基本的同步机制,这些机制调节的情况与高阶程序的游戏语义和具有共享内存和锁的并发程序的霍尔逻辑一样不同。在本文中,我们建立了一个深刻的和意想不到的连接最近的两条工作线并发分离逻辑(CSL)和差分线性逻辑(DiLL)的模板游戏语义。由于这种联系,我们重新制定了纯粹的概念风格的模板游戏为迪尔的异步和交互式的解释CSL设计的梅利斯和Stefanesco。我们相信,分析揭示了一些重要的秘密解剖CSL,更具体地说,微妙的相互作用,分类性质,顺序组成,并行产品,错误和锁之间。
2020-05-09 cs.LO cs.PL
Trillium: Higher-Order Concurrent and Distributed Separation Logic for Intensional Refinement
本文提出Trillium分离逻辑框架,通过内涵细化方法强化高阶并发与分布式分离逻辑,支持证明非平凡的安全性和活性属性,并分别实例化出Fairis和扩展Aneris以验证并发与分布式系统的活性及与TLA+模型的细化关系。
2024-08-22 cs.LO cs.PL
A Concurrent Program Logic with a Future and History
细粒度的乐观并发程序仍然是一个悬而未决的问题。现代程序逻辑提供了抽象机制和组合推理原则来处理固有的复杂性。然而,它们的使用主要局限于纸张和纸张或机械化的证明。我们设计了一个新的分离逻辑,面向缺乏自动化。虽然本地推理是众所周知的自动化是至关重要的,我们是第一个展示如何保持这种局部性(i)推理归纳属性,而不需要幽灵代码,和(ii)推理计算历史的事后诸葛亮。我们在一个工具中实现了我们的新逻辑,并使用它来自动验证具有挑战性的并发搜索结构,这些结构需要归纳属性和事后推理,例如Harris集。
2022-11-11 cs.LO cs.PL
Concurrent Typestate-Oriented Programming in Java
我们描述了一种生成的方法,使并发面向类型状态的编程在Java和其他主流语言。该方法允许程序员使用高级同步抽象来实现暴露状态敏感接口的对象,该高级同步抽象将方法与接收方对象的状态进行同步,这些方法在接收方对象中具有效果。外部工具负责生成实现同步逻辑的所有样板代码。行为类型用于指定对象协议。该工具将协议一致性验证与同步逻辑集成在一起,以便在运行时及时检测到协议违规。
2019-04-02 cs.PL
Modular Reasoning about Error Bounds for Concurrent Probabilistic Programs (Extended Version)
提出Coneris,首个高阶并发分离逻辑,通过随机逻辑原子性支持并发概率程序的错误概率界模块化推理,并在Rocq和Iris中机械化验证。
2025-08-07 cs.LO cs.PL
On Algebraic Abstractions for Concurrent Separation Logics
并发分离逻辑的特点是在并行组合和成帧时状态所有权的转移。支撑所有权转移的代数结构是部分交换幺半群(PCM)。现有的研究主要从逻辑的角度考虑所有权转移,而相对较少注意代数的考虑。本文利用保结构的部分函数(即,态射)之间的PCM,以及分离关系的相关概念。结构的态射是代数和范畴论中的标准概念,但在分离逻辑中还没有普遍使用过。分离关系是二元关系,它推广了不相交性,并描述了态射保持结构的输入。这两个抽象通过实现编写规范的简洁方式,通过提供在所有权转移下保留的线程状态的抽象视图,以及通过实现从现有PCM中构造新PCM的用户级构造,来促进验证。
2021-03-04 cs.LO cs.PL
Mizzle: A Complete Concurrent Incorrectness Logic with Applications to Agentic Bug Certification
New York University(纽约大学);Amazon Web Services(亚马逊云服务)
针对大语言模型在程序错误查找中产生大量误报的问题,提出Mizzle方法,它是一种用于并发程序的错误分离逻辑,在Rocq证明助手实现机械化,能防止误报且完整,还通过三种错误概念实例化并展示其可用于证明错误存在。
2026-10-19 cs.PL
LAGC Semantics of Concurrent Programming Languages
形式化的、数学上严格的程序设计语言语义是设计允许对并发程序进行自动推理的逻辑和演算的基本先决条件。我们提出了一种新的模块化语义,旨在顺利对齐与演绎验证和并发程序的形式规范中使用的程序逻辑。我们的语义分离的表达式和语句的本地评估在一个抽象的,符号化的环境,从他们的组合成全球性的计算,在这一点上,他们是具体化。这使得可以逐步增加新的语言概念,而不需要修改框架。的基础是一个概括的概念,一个程序跟踪作为一个序列的不断发展的状态,我们丰富的事件描述符和尾随延续标记。这允许将调度约束从局部评估的级别推迟到全局组合阶段,其中在事件结构上的格式良好性谓词声明性地描述了广泛的并发模型。我们还说明了如何一个健全的程序逻辑和演算可以定义这种语义。
2022-02-24 cs.PL
An Asynchronous soundness theorem for concurrent separation logic
并发分离逻辑(CSL)是一种用于具有共享内存和锁的并发命令式程序的规范逻辑。在本文中,我们开发了一个并发和交互式帐户的异步游戏语义的启发逻辑。对于每个程序$C$,我们将一对异步转换系统$[C]_S$和$[C]_L$关联起来,它们描述了代码面对其环境或框架时的操作行为--在机器状态($S$)和机器指令和锁($L$)的级别上。然后,我们建立的每一个衍生树$π$的判断$Γ\vdash\{P\}C\{Q\}$定义了一个胜利和异步策略$[π]_{Sep}$相对于异步语义$[C]_S$和$[C]_L$。从这一点,我们推导出一个异步可靠性定理CSL,它指出,规范映射$\mathcal{L}:[C]_S\to[C]_L$从有状态语义$[C]_S$的无状态语义$[C]_L$满足一个基本的fibrational属性。我们主张,这提供了一个干净的和概念性的解释通常的CSL的可靠性定理,包括没有数据竞争。
2018-07-21 cs.LO cs.PL
Proving correctness of Timed Concurrent Constraint Programs
提出了一种用于时间并发约束程序正确性推理的时态逻辑。这种逻辑是基于模态,它允许人们指定一个过程产生什么作为对其环境输入的反应。这些模态提供了一个假设/承诺风格的规范,允许一个健全的和完整的组合公理化的反应行为的定时并发约束程序。
2002-08-28 cs.LO cs.PL
Contextual Refinement of Higher-Order Concurrent Probabilistic Programs (Extended Version)
Aarhus University(奥胡斯大学);New York University(纽约大学);Amazon Web Services(亚马逊云科技)
本文提出Foxtrot,首个用于证明高阶并发概率程序上下文细化的高阶分离逻辑,结合了并发推理原理与概率推理原理,展示了其在对抗性von Neumann硬币和Sodium加密库中的应用。
2026-04-27 cs.LO cs.PL
Modular termination verification with a higher-order concurrent separation logic (Intermediate report)
我们报告的中间结果,我们的研究推理活性属性,除了深正确性的一个命令,并发程序设计语言与高阶存储。目前,我们集中在一个特定的活性属性,即终止。通过保证终止性,我们可以将部分正确性的陈述加强为完全正确性。这是通过将终止性转换为安全属性的经典方法来实现的。特别是,我们扩展的程序设计语言考虑与调用权限,这已被证明,使模块化的推理终止。添加原子块是为了增加我们基于调用权限的方法的表现力。我们的工作建立在Iris --一个基础的、机器检查的、高阶并发分离逻辑框架--之上,而不修改它。有了这些补充,我们就能够模块化地推理并发但非阻塞算法的终止。我们对正在考虑的程序设计语言的添加保留了Iris对帮助和预言进行推理的能力。作为一个例子,我们将当前的系统应用于现有的无锁并发堆栈的案例研究,并在Iris中得到了证明。最后,我们概述了扩展阻塞并发方法的后续步骤。
2022-12-28 cs.LO cs.PL
Kima - an Automated Error Correction System for Concurrent Logic Programs
我们已经实现了Kima,一个并发逻辑程序的自动纠错系统。Kima纠正了诸如在没有显式声明程序属性的情况下出现错误的变量等近似错误。强建模/类型和基于约束的分析在调试并发逻辑程序以及建立通信协议和数据类型的一致性方面起着重要作用。模态平板GHC的模态/型分析是一个具有许多简单模态/型约束的约束满足问题,可以有效求解。我们提出了一个简单而有效的技术,给出了一个非良好的模式/类型的程序,诊断的“原因”的不一致,通过找到最小的不一致的子集的模式/类型的约束。由于每个约束都跟踪程序中出现的符号,因此最小子集也可以告诉程序错误的可能来源。Kima通过系统地替换可能源周围的符号出现并重新计算重写程序的模式和类型来实现自动校正。只要bug是接近失败的,Kima就提出了相当少的替代方案,包括一个预期的程序。
2001-01-05 cs.PL cs.SE
Specifying Concurrent Programs in Separation Logic: Morphisms and Simulations
除了前置条件和后置条件,最近的并行分离逻辑中的程序规范采用了一种资源的代数结构-状态转换系统的一种形式-来描述必须保留的基于状态的程序不变量,并记录允许的程序状态原子变化。在本文中,我们引入了一个新的概念,资源态射,即资源上的结构保持功能,并展示了如何有效地将其集成到分离逻辑,使用相关的概念态射特定的模拟。我们将态射和模拟应用于在一种资源下验证的程序,以使它们在另一种资源下运行,从而促进证明重用。
2019-10-15 cs.DC cs.LO cs.PL
Completeness of Logical Atomicity for Linearizability in Concurrent Separation Logic
New York University(纽约大学);CISPA Helmholtz Center for Information Security(CISPA赫尔姆霍兹信息安全中心)
研究并发数据结构线性一致性中逻辑原子性规范与线性一致性的关系,证明Iris分离逻辑框架下能为线性一致数据结构导出逻辑原子性规范,将多种证明技术嵌入Iris并应用于多个队列实现,还建立相关联系并机械化结果。
2026-07-14 cs.LO cs.PL
Context-Aware Separation Logic
针对并发分离逻辑中幽灵状态抽象导致推理足迹扩大的问题,本文提出Co(Co)SL及上下文规则,以支持更局部的推理,并在flow framework和证明检查器中验证高并发搜索树。
2024-08-03 cs.PL
concurrentKanren: miniKanren for parallel execution
本研究针对miniKanren并发实现研究不足的问题,提出用Go语言实现的并行版miniKanren,利用隐式并行性支持传统程序并行执行,验证了其可行性与性能潜力,为语言无关模型研究奠基。
2025-10-06 cs.PL
A Framework for Concurrent Imperative Programming
该框架提供了一个通用的并发命令式编程模型。程序被建模为形式语言,并发性被建模为交织(或混洗)运算符。这产生了一个简单而优雅的程序代数。该框架支持Dinsdale-Young等人的视图程序逻辑,它概括了各种类型系统和程序正确性的分离逻辑方法。它还验证了熟悉的操作演算在小步和大步的味道。程序逻辑相对于操作规则的一致性是直接建立的,并且不使用推导上的归纳。事实上,整个框架只使用简单的数学。参数化的状态,视图和基本命令,它可以实例化为各种具体的语言和设置。
2012-09-10 cs.LO cs.PL
GLP: A Grassroots, Multiagent, Concurrent, Logic Programming Language for AI
London School of Economics(伦敦政治经济学院);Weizmann Institute of Science(魏茨曼科学研究所)
介绍用于人工智能的多智能体并发逻辑编程语言GLP,通过回顾逻辑程序语义、引入并发及多智能体操作语义等,证明其为基层的,基层社交图可作编程示例,为相关平台提供平等替代方案。
2026-07-24 cs.DC cs.LO cs.MA
Compositional Non-Interference for Fine-Grained Concurrent Programs
非干扰性是一种程序属性,可确保不存在信息泄漏。在程序设计语言的上下文中,有两种常见的方法来建立非干扰:类型系统和程序逻辑。类型系统提供了强大的自动化(通过类型检查),但它们在它们支持的程序类型方面有固有的限制。程序逻辑支持具有挑战性的程序,但它们通常需要大量的人工帮助,并且不能处理模块或更高阶的程序。为了连接这两种方法,我们提出了SeLoC-一种非干扰的分离逻辑,在此基础上,我们使用逻辑关系技术建立了一个类型系统。通过在分离逻辑之上构建类型系统,我们可以组合地验证由类型化和非类型化部分组成的程序。前一部分通过型式检验进行验证,后一部分通过人工校对进行验证。SeLoC的核心技术贡献是最弱前提条件的关系形式,可以使用分离逻辑资源跟踪信息流。SeLoC是完全机器检查的,并且构建在Iris框架之上,用于Coq中的并发分离逻辑。与Iris的集成为细粒度并发提供了无缝支持,这是之前的类型系统和程序逻辑无法实现的无干扰性。
2020-03-06 cs.LO cs.PL
Proving Logical Atomicity using Lock Invariants
本文比较原子性锁规范与早期基于锁不变式的规范,证明后者仍可验证细粒度锁数据结构的逻辑原子性,但证明更复杂,并在 VST 中应用于 C 实现。
2023-04-27 cs.PL
Formal Verification of Chase-Lev Deque in Concurrent Separation Logic
本论文利用并发分离逻辑并在 Coq proof assistant 中对 Chase-Lev deque 进行了形式化验证,采用无界现实实现与 linearizability 强规范,满足最小可信计算基等三大标准,并扩展支持安全内存回收与松弛内存模型基础。
2023-05-20 cs.LO cs.PL
Effect-Dependent Transformations for Concurrent Programs
我们描述了一个指称语义的抽象效果系统的高阶,共享变量并发程序设计语言。我们证明了一些一般的基于效果的程序等价物的合理性,包括并行化方程,该方程指定了用并行组合物替换顺序组合物的充分条件。效果注释是相对于由合约指定的抽象位置而不是物理足迹,这使我们特别能够显示涉及细粒度并发数据结构(例如Michael-Scott队列)的某些转换的可靠性,这些转换允许并发访问可变数据结构的不同部分。我们的语义是基于改进的痕迹为基础的语义的一阶程序,由于布鲁克斯。通过从具体位置移动到抽象位置,并添加类型细化来捕获表达式及其并发环境的可能副作用,我们能够验证许多在未细化模型中不存在的等价性。类型的含义是使用基于游戏的逻辑关系在轨迹集上表达的。两个程序$e_1$和$e_2$是逻辑相关的,如果一个程序能够解决一个两人游戏:对于任何轨迹,结果值$v_1$在$e_1$(挑战)的语义中,玩家提出,对手可以提出一个(响应)等价的轨迹,在$e_2$的语义中,具有逻辑相关的结果值$v_2$。
2015-10-08 cs.LO cs.PL
Go with the Flow: Compositional Abstractions for Concurrent Data Structures (Extended Version)
并发分离逻辑有助于显着简化并发数据结构的正确性证明。然而,这种证明中反复出现的问题是,由于复杂的共享和覆盖,在顺序设置中工作良好的数据结构抽象在并发设置中更难推理。为了解决这个问题,我们提出了一种新的方法来抽象区域的堆编码的数据结构不变到一个局部条件的每个节点。该条件可以取决于与在整个堆图上被计算为固定点的节点相关联的量。我们把这个量称为流量。流可以编码堆的结构属性(例如从根形成树的可达节点)以及数据不变量(例如排序)。然后,我们引入了流接口的概念,它表示依赖和保证堆区域施加在其上下文上,以保持局部流相对于全局堆不变。我们的主要技术成果是,这个概念导致了一个新的语义模型的分离逻辑。在这个模型中,流接口提供了一个通用的抽象机制来描述复杂的数据结构。这种抽象机制允许在各种各样的数据结构上推广的证明规则。为了证明我们的方法的多功能性,我们展示了如何扩展逻辑RGSep流接口。我们已经使用这种新的逻辑来证明非平凡并发数据结构的线性化和内存安全性。特别是,我们获得参数线性化证明并发字典算法,抽象的底层数据结构表示的细节。使用现有的分离逻辑提供的抽象机制,这些证明不能容易地表达。
2017-11-09 cs.DS cs.LO cs.PL
GLP: A Grassroots, Multiagent, Concurrent, Logic Programming Language for AI (Full Version)
London School of Economics(伦敦政治经济学院);Weizmann Institute of Science(魏茨曼科学研究所)
提出草根逻辑程序(GLP),一种用于实现草根平台的多智能体并发逻辑编程语言,通过多智能体操作语义证明其草根性,并展示其在社交图等平台的应用。
2026-07-07 cs.CR cs.DC cs.LO
Embedding Hindsight Reasoning in Separation Logic
本文提出时间插值这一并发分离逻辑证明原则,以结构化事后推理验证具有未来依赖线性化点的数据结构,并首次形式化证明 LO-tree、验证 RDCSS,同时发现未知缺陷及一个错误的非形式化证明。
2023-04-21 cs.LO cs.PL
Logical Concurrency Control from Sequential Proofs
我们感兴趣的是识别和执行并发程序的隔离要求,即,确保程序满足其规范的并发控制。本文的论点是,这可以从顺序证明开始系统地进行,即,在没有并发交织的情况下证明程序的正确性。我们说明我们的论文提出了一个解决方案的问题,使一个顺序库线程安全的并发客户端。我们考虑一个顺序库注释断言以及证明这些断言在顺序执行。我们展示了如何使用证明来导出并发控制,以确保库方法的任何执行在由并发客户端调用时满足相同的断言。我们还提出了一个扩展,以保证库方法是线性化或原子。
2011-09-01 cs.LO cs.PL cs.SE
A Generic Logic for Proving Linearizability (Extended Version)
线性化是一个普遍接受的概念的正确性库的并发算法,近年来已经看到了一些建议的程序逻辑来证明它。虽然这些逻辑在技术细节不同,他们体现了类似的推理原则。为了阐明这些原则,我们提出了一个逻辑证明线性化是通用的:它可以实例化与不同的手段组合推理的并发性,如分离逻辑或可靠保证。为此,我们概括的意见框架的推理并发处理程序之间的关系,证明线性化。我们提出了我们的通用逻辑的示例实例,并表明它是强大的,足以处理具有挑战性的功能,如帮助并发算法。
2016-09-05 cs.DC cs.LO cs.PL
A Bunch of Sessions: A Propositions-as-Sessions Interpretation of Bunched Implications in Channel-Based Concurrency
作为会话的命题(Propositions-as-Sessions)的出现,为消息传递并发奠定了逻辑基础,它是线性逻辑命题与并发进程会话类型之间的Curry-Howard对应。这种方法的核心是由线性逻辑预示的资源消耗范式。在本文中,我们研究了一个新的点,在设计空间的会话类型系统的消息传递并发程序。我们确定O 'Hearn和Pym的逻辑束的影响(BI)作为一个富有成效的基础解释的逻辑作为一个并发程序设计语言。这导致了对非线性资源的处理,这与基于线性逻辑的现有方法完全不同。我们介绍了一个新的$π$ -演算会话,称为$π$ BI,其最显着的特点是一个构造称为产卵,它表达了新的形式的共享,诱导BI的结构原则。我们说明了$π$ BI的表现力,并奠定了其基本理论:类型保存,死锁自由和弱规范化的结果良好的类型化进程;一个操作上健全和完整的仿射$λ$ -演算的类型化编码;和一个非干扰的结果访问资源。
2022-09-12 cs.LO cs.PL
TaDA Live: Compositional Reasoning for Termination of Fine-grained Concurrent Programs
我们提出了TaDA现场,一个并发分离逻辑的推理组合终止阻塞细粒度并发程序。关键的挑战是如何处理抽象的原子阻塞:也就是说,抽象的原子操作具有阻塞行为,这些阻塞行为来自于例如细粒度自旋锁中的忙等待模式。我们的基本创新是抽象规范的设计,捕捉这种阻塞行为作为对环境的活跃假设。我们设计了一个逻辑,可以原因的客户端使用这些操作的终止,而不会打破他们的抽象边界,和操作的实现相对于他们的抽象规范的正确性。我们引入了一个新的语义模型,使用分层的主观义务来表达活性不变量,和一个证明系统,这是健全的模型。我们的规范和推理的微妙之处说明了使用几个案例研究。
2021-11-30 cs.LO cs.PL
Hoare-style Specifications as Correctness Conditions for Non-linearizable Concurrent Objects
设计可扩展的并发对象,它可以有效地用于多核处理器,往往需要放弃标准的规范技术,如线性化,有利于更宽松的一致性要求。然而,各种各样的替代正确性条件使得在特定情况下难以选择使用哪一个,并且在使用其行为通过不同标准指定的对象时难以组合它们。缺乏句法验证方法的大多数这些标准构成了挑战,在他们的系统采用和应用。在本文中,我们认为使用霍尔风格的程序逻辑作为一种替代和统一的方法规范和组合形式化验证的并发对象及其客户端程序的安全属性。通过一系列的案例研究,我们展示了如何现有的程序逻辑的并发性可以采用现成的捕捉重要的状态和历史不变,允许一个明确量化的环境线程的干扰,并提供直观和富有表现力的霍尔式规范的几个非线性并发对象,以前只指定通过专用的正确性标准。我们通过验证一些并发客户端的情况下,利用以前指定的并发对象,捕捉并发意识的线性化,静态和定量静态一致性等正确性条件的本质,说明我们的规范的充分性。本文中描述的所有示例都在Coq中进行了机械验证。
2016-07-21 cs.LO cs.PL
A beginner guide to Iris, Coq and separation logic
本指南面向初学者,介绍使用 Iris 和 Coq 进行形式化验证,重点讲解示例、策略、分离逻辑,并全面覆盖相关工具,以帮助读者安全验证并发算法。
2025-01-23 cs.LO cs.PL
Towards Algorithmic Synthesis of Synchronization for Shared-Memory Concurrent Programs
我们提出了一个框架,需要一个并发程序组成的不同步的进程,随着其全球并发行为的时间规范,并自动生成一个并发程序同步,确保正确的全球行为。我们的方法支持有限状态的并发程序组成的进程,可能有本地和共享变量,可能是直线或分支程序,可能正在进行或终止,并可能有程序初始化或用户初始化的变量。规约语言是命题计算树逻辑(CTL)的扩展,其使得能够容易地对控制和数据变量的安全性和活性属性进行规约。该框架还支持在不同的抽象和粒度级别上合成同步。
2012-07-04 cs.LO cs.PL
The Session Abstract Machine (Extended Version)
本文提出会话抽象机 SAM,利用线性逻辑类型分析实现会话类型进程的机械化执行,可分离协调顺序与并发行为,并证明其对完整 CLL 会话演算的正确性。
2024-01-18 cs.PL
Concurrent Data Structures Linked in Time
关于并发数据结构的正确性的论证通常通过使用线性化的概念并指定数据结构的过程的线性化点来执行。这种参数通常是麻烦的,因为线性化点的时间位置可以是动态的(取决于干扰、运行时值和来自过去甚至未来的事件)、非本地的(出现在所考虑的过程之外的过程中),并且其在执行跟踪中的位置只能在所考虑的过程已经终止之后确定。在本文中,我们提出了一种新的方法,基于分离式逻辑,推理并发对象的线性化点。我们接受线性化点的动态特性,并将其编码为数据结构的辅助状态的一部分,以便当发生某些适当的运行时事件时,可以根据需要通过辅助代码在适当的位置动态修改它。我们把这个想法命名为时间链接,因为它把时间推理简化为空间推理。例如,修改线性化点的时间位置可以类似于分离逻辑中的指针更新来建模。此外,辅助状态提供了一种方便的方式来简明地表达对此类并发对象的客户端进行推理所必需的属性。我们通过验证(在Coq中机械地)Jayanti以及一些客户端的复杂的最佳快照算法来说明该方法。
2017-01-18 cs.DC cs.LO cs.PL
Reasoning about Weak Isolation Levels in Separation Logic
本文针对工业级数据库默认弱隔离级别存在隔离性错误但缺乏可执行实现推理模型的问题,在分离逻辑中形式化读未提交、读已提交和快照隔离三个弱隔离级别,验证其规范可禁止违规执行、可实现且存在蕴含关系。
2025-08-20 cs.LO cs.PL
Subjective Simulation as a Notion of Morphism for Composing Concurrent Resources
最近的方法来验证程序在分离逻辑的并发使用状态转换系统(STS),以指定的原子操作的程序。这方面的一个关键挑战是将这种STS组合成更大的STS,同时使在一个STS下指定的程序能够与一个更大的STS联系起来,而不需要重新核查。本文提出了一个概念的态射之间的两个STS允许这样的提升。态射是STS之间模拟的一种构造形式,并导致了一个通用而简洁的证明系统。我们说明了几个不同的例子,包括分阶段建设的读者/作家锁和它的证据,并证明静止时,并发程序在没有外部干扰的情况下执行的概念和它的一般性。
2017-09-22 cs.DC cs.LO cs.PL
Abstract Diagnosis for Timed Concurrent Constraint programs
时间并发约束语言(Timed Concurrent Constraint Language,简称tccp)是一种基于简单但功能强大的并发约束范式Saraswat的并发逻辑语言。在这种范例中,存储作为值的概念被存储作为约束的概念所取代,这引入了与存储作为值的概念的一些差异。其他并发方法。在本文中,我们提供了一个通用的框架调试tccp程序。为此,我们首先提出了一个新的紧凑的,自底向上的语义的语言,非常适合于调试和验证的目的,在反应式系统的上下文中。我们还提供了一个抽象的语义,使我们能够有效地实现基于抽象解释的调试算法。给定一个tccp程序和一个行为规范,我们的调试方法自动检测程序是否满足规范。这与其他半自动调试方法不同,避免了提前提供症状的需要。我们通过介绍两个说明性的例子来展示我们的方法的有效性。我们选择一个特定的抽象域,并展示我们如何可以检测到一个程序是错误的。
2011-09-07 cs.LO cs.PL
Model Checking Linear Logic Specifications
本文的总体目标是研究一阶线性逻辑规格说明的算法验证技术的理论基础。我们在本文中考虑的线性逻辑片段是基于线性逻辑程序设计语言LO,它富含普遍量化的目标公式。虽然LO最初是作为逻辑程序设计语言扩展的理论基础引入的,但它也可以被视为一种非常通用的语言,用于指定各种无限状态并发系统。我们的方法是基于向后可达性和可证明性之间的关系,在我们以前的工作中强调命题LO程序。根据这条研究路线,我们在这里定义了一个一般框架,自下而上的评估一阶线性逻辑规范。评估过程是基于一个有效的不动点算子工作的一阶线性逻辑公式的无限集合的符号表示。良好拟序理论可以用来提供一阶线性逻辑非平凡片段求值终止的充分条件。
2003-09-01 cs.PL cs.SC
Actris 2.0: Asynchronous Session-Type Based Reasoning in Separation Logic
本文提出Actris 2.0,一种基于会话类型的分离逻辑,用于在混合并发范式下证明消息传递程序的功能正确性,并通过子协议增强异步推理,已在Coq中机械化验证。
2022-06-08 cs.LO cs.PL
Timed Soft Concurrent Constraint Programs: An Interleaved and a Parallel Approach
Università di Perugia(佩鲁贾大学);Università di Bologna(博洛尼亚大学);Centrum Wiskunde & Informatica (CWI)(荷兰数学与计算机科学研究所(CWI))
我们提出了并发约束编程的一个时间和软扩展。时间扩展是基于有界时间的假设:计算需要一个有限的时间段,并通过一个离散的全局时钟来测量。动作前缀被认为是区分一个时间点和下一个时间点的句法标记。在软约束而不是明确约束的支持下,告诉和询问代理现在配备了一个偏好(或一致性)阈值,用于确定它们的成功或暂停。在本文中,我们提供了一种语言来描述代理的行为,连同其操作和指称语义,我们还证明了组合性和正确性。在提出了一个语义使用最大并行的行动,我们还描述了一个版本的交错在一个单一的处理器上(最大并行的时间流逝)。需要对偏好值和时间事件进行决策的协调代理可以从这种语言中受益。逻辑程序设计理论与实践(Theory and Practice of Logic Programming,TPLP)
2014-04-22 cs.AI cs.PL
SecRSL: Security Separation Logic for C11 Release-Acquire Concurrency (Extended version with technical appendices)
我们提出了安全松弛分离逻辑(SecRSL),一个用于证明具有松弛访问的释放-获取片段中的C11程序的信息流安全性的分离逻辑。SecRSL是第一个安全逻辑,它(1)支持对高级语言程序的弱内存推理;(2)继承了分离逻辑的组合,局部推理的优点;(3)表达安全策略,如值依赖分类。据我们所知,SecRSL也是第一个在公理内存模型上开发的安全逻辑。因此,我们也提出了第一个定义的信息流安全的公理弱记忆模型,对我们证明SecRSL声音。SecRSL确保程序满足恒定时间的安全保证,同时没有未定义的行为。我们应用SecRSL来实现和验证一系列并发原语的功能正确性和恒定时间安全性,包括自旋锁模块,混合灵敏度互斥体和多个同步通道实现。后者的经验性能评估表明SecRSL的权力,以支持安全和高性能的并发C程序的开发。
2021-09-09 cs.CR cs.PL
Implementing Grassroots Logic Programs with Multiagent Transition Systems and AI (Full Version)
London School of Economics(伦敦经济学院);Weizmann Institute of Science(魏茨曼科学研究院)
本文提出dGLP和madGLP两种确定性变体,通过全局链接实现共享变量,证明其正确性,并展示如何利用AI技术实现多智能体通信。
2026-07-07 cs.AI cs.DC cs.LO