首页 > 最新文献

Journal of Logical and Algebraic Methods in Programming最新文献

英文 中文
Session-based concurrency in Maude: Executable semantics and type checking Maude中基于会话的并发:可执行语义和类型检查
IF 0.9 4区 数学 Q3 COMPUTER SCIENCE, THEORY & METHODS Pub Date : 2023-06-01 DOI: 10.1016/j.jlamp.2023.100872
Carlos Alberto Ramírez Restrepo , Juan C. Jaramillo , Jorge A. Pérez

Session types are a well-established approach to communication correctness in message-passing processes. Widely studied from a process calculi perspective, here we pursue an unexplored strand and investigate the use of the Maude system for implementing session-typed process languages and reasoning about session-typed process specifications.

We present four technical contributions. First, we develop and implement in Maude an executable specification of the operational semantics of a session-typed π-calculus by Vasconcelos. Second, we also develop an executable specification of its associated algorithmic type checking, and describe how both specifications can be integrated. Third, we show that our executable specification can be coupled with reachability and model checking tools in Maude to detect well-typed but deadlocked processes. Finally, we demonstrate the robustness of our approach by adapting it to a higher-order session π-calculus, in which exchanged values include names but also abstractions (functions from names to processes).

All in all, our contributions define a promising new approach to the (semi)automated analysis of communication correctness in message-passing concurrency.

在消息传递过程中,会话类型是一种公认的通信正确性方法。从流程演算的角度进行了广泛的研究,在这里,我们追求一条未经探索的线索,并研究了Maude系统在实现会话类型的流程语言和推理会话类型的过程规范方面的使用。我们提出了四项技术贡献。首先,我们在Maude中开发并实现了Vasconcelos的会话类型π-演算的操作语义的可执行规范。其次,我们还开发了一个相关算法类型检查的可执行规范,并描述了如何集成这两个规范。第三,我们展示了我们的可执行规范可以与Maude中的可达性和模型检查工具相结合,以检测类型良好但死锁的进程。最后,我们通过将我们的方法应用于高阶会话π-演算来证明我们的方法的稳健性,在该会话中,交换的值包括名称,但也包括抽象(从名称到进程的函数)。总之,我们的贡献为消息传递并发中通信正确性的(半)自动化分析定义了一种很有前途的新方法。
{"title":"Session-based concurrency in Maude: Executable semantics and type checking","authors":"Carlos Alberto Ramírez Restrepo ,&nbsp;Juan C. Jaramillo ,&nbsp;Jorge A. Pérez","doi":"10.1016/j.jlamp.2023.100872","DOIUrl":"https://doi.org/10.1016/j.jlamp.2023.100872","url":null,"abstract":"<div><p>Session types are a well-established approach to communication correctness in message-passing processes. Widely studied from a process calculi perspective, here we pursue an unexplored strand and investigate the use of the Maude system for implementing session-typed process languages and reasoning about session-typed process specifications.</p><p>We present four technical contributions. First, we develop and implement in Maude an executable specification of the operational semantics of a session-typed <em>π</em>-calculus by Vasconcelos. Second, we also develop an executable specification of its associated algorithmic type checking, and describe how both specifications can be integrated. Third, we show that our executable specification can be coupled with reachability and model checking tools in Maude to detect well-typed but deadlocked processes. Finally, we demonstrate the robustness of our approach by adapting it to a <em>higher-order</em> session <em>π</em>-calculus, in which exchanged values include names but also abstractions (functions from names to processes).</p><p>All in all, our contributions define a promising new approach to the (semi)automated analysis of communication correctness in message-passing concurrency.</p></div>","PeriodicalId":48797,"journal":{"name":"Journal of Logical and Algebraic Methods in Programming","volume":"133 ","pages":"Article 100872"},"PeriodicalIF":0.9,"publicationDate":"2023-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"50203597","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"数学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Relation-changing models meet paraconsistency 关系变化模型满足准一致性
IF 0.9 4区 数学 Q3 COMPUTER SCIENCE, THEORY & METHODS Pub Date : 2023-06-01 DOI: 10.1016/j.jlamp.2023.100870
Diana Costa , Daniel Figueiredo , Manuel A. Martins

Switch graphs are graph-like structures characterized by embedding higher-level edges (edges that link to other edges) to describe reactive phenomena. When an edge of such structure is traversed, the accessibility relation of this graph can be changed by adding/removing edges. Relation-changing models have been used to represent phenomena in diverse fields (from Biology to Computer Science) and some modal languages were introduced recently. In this paper we introduce four-valued local information in switch graphs, and propose a paraconsistent logic to study these systems.

切换图是一种类似图的结构,其特征是嵌入更高级的边(链接到其他边的边)来描述反应现象。当遍历这种结构的边时,可以通过添加/删除边来改变该图的可访问性关系。从生物学到计算机科学,关系变化模型已经被用来表示不同领域的现象,最近还引入了一些模态语言。本文在交换图中引入了四值局部信息,并提出了一个研究这些系统的仿一致逻辑。
{"title":"Relation-changing models meet paraconsistency","authors":"Diana Costa ,&nbsp;Daniel Figueiredo ,&nbsp;Manuel A. Martins","doi":"10.1016/j.jlamp.2023.100870","DOIUrl":"https://doi.org/10.1016/j.jlamp.2023.100870","url":null,"abstract":"<div><p>Switch graphs are graph-like structures characterized by embedding higher-level edges (edges that link to other edges) to describe reactive phenomena. When an edge of such structure is traversed, the accessibility relation of this graph can be changed by adding/removing edges. Relation-changing models have been used to represent phenomena in diverse fields (from Biology to Computer Science) and some modal languages were introduced recently. In this paper we introduce four-valued local information in switch graphs, and propose a paraconsistent logic to study these systems.</p></div>","PeriodicalId":48797,"journal":{"name":"Journal of Logical and Algebraic Methods in Programming","volume":"133 ","pages":"Article 100870"},"PeriodicalIF":0.9,"publicationDate":"2023-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"50203599","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"数学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
A verified VCGen based on dynamic logic: An exercise in meta-verification with Why3 基于动态逻辑的验证VCGen:使用Why3进行元验证的练习
IF 0.9 4区 数学 Q3 COMPUTER SCIENCE, THEORY & METHODS Pub Date : 2023-06-01 DOI: 10.1016/j.jlamp.2023.100871
Maria João Frade, Jorge Sousa Pinto

With the incresasing importance of program verification, an issue that has been receiving more attention is the certification of verification tools, addressing the vernacular question: “Who verifies the verifier?”. In this paper we approach this meta-verification problem by focusing on a fundamental component of program verifiers: the “Verification Conditions Generator” (VCGen), responsible for producing a set of proof obligations from a program and a specification. The semantic foundations of VCGens lie in program logics, such as Hoare logic, Dynamic logic, or Separation logic, and related predicate transformers.

Dynamic logic is the basis of the KeY system, one of the foremost deductive verifiers, whose logic makes use of the notion of update, which is quite intricate to formalize. In this paper we derive systematically, based on a KeY-style dynamic logic, a correct-by-construction VCGen for a toy programming language. Our workflow covers the entire process, from the logic to the VCGen. It is implemented in the Why3 tool, which is itself a program verifier. We prove the soundness and (an appropriate notion of) completeness of the logic, then define a VCGen for our language and establish its soundness.

Dynamic logic is one of a variety of research topics that our dear friend and colleague Luís Soares Barbosa has, over the years, initiated and promoted at the University of Minho. It is a pleasure for us to dedicate this work to him on the occasion of his 60th birthday.

随着程序验证的重要性越来越大,一个越来越受到关注的问题是验证工具的认证,解决了一个通俗的问题:“谁验证验证器?”。在本文中,我们通过关注程序验证器的一个基本组件来解决这个元验证问题:“验证条件生成器”(VCGen),负责从程序和规范中生成一组证明义务。VC生成的语义基础在于程序逻辑,如Hoare逻辑、动态逻辑或分离逻辑,以及相关的谓词转换器。动态逻辑是KeY系统的基础,KeY系统是最重要的演绎验证器之一,其逻辑利用了更新的概念,这一概念很难形式化。在本文中,我们基于KeY风格的动态逻辑,系统地推导了一个玩具编程语言的正确的构造VCGen。我们的工作流程涵盖了从逻辑到VCGen的整个过程。它在Why3工具中实现,Why3本身就是一个程序验证器。我们证明了逻辑的健全性和(一个适当的概念)完整性,然后为我们的语言定义一个VCGen并建立它的健全性。动态逻辑是我们亲爱的朋友和同事路易斯·苏亚雷斯·巴博萨多年来在民和大学发起和推动的各种研究课题之一。我们很高兴在他60岁生日之际把这部作品献给他。
{"title":"A verified VCGen based on dynamic logic: An exercise in meta-verification with Why3","authors":"Maria João Frade,&nbsp;Jorge Sousa Pinto","doi":"10.1016/j.jlamp.2023.100871","DOIUrl":"https://doi.org/10.1016/j.jlamp.2023.100871","url":null,"abstract":"<div><p>With the incresasing importance of program verification, an issue that has been receiving more attention is the certification of verification tools, addressing the vernacular question: “Who verifies the verifier?”. In this paper we approach this meta-verification problem by focusing on a fundamental component of program verifiers: the “Verification Conditions Generator” (VCGen), responsible for producing a set of proof obligations from a program and a specification. The semantic foundations of VCGens lie in program logics, such as Hoare logic, Dynamic logic, or Separation logic, and related predicate transformers.</p><p>Dynamic logic is the basis of the KeY system, one of the foremost deductive verifiers, whose logic makes use of the notion of <em>update</em><span>, which is quite intricate to formalize. In this paper we derive systematically, based on a KeY-style dynamic logic, a correct-by-construction VCGen for a toy programming language. Our workflow covers the entire process, from the logic to the VCGen. It is implemented in the Why3 tool, which is itself a program verifier. We prove the soundness and (an appropriate notion of) completeness of the logic, then define a VCGen for our language and establish its soundness.</span></p><p>Dynamic logic is one of a variety of research topics that our dear friend and colleague Luís Soares Barbosa has, over the years, initiated and promoted at the University of Minho. It is a pleasure for us to dedicate this work to him on the occasion of his 60th birthday.</p></div>","PeriodicalId":48797,"journal":{"name":"Journal of Logical and Algebraic Methods in Programming","volume":"133 ","pages":"Article 100871"},"PeriodicalIF":0.9,"publicationDate":"2023-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"50203168","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"数学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Decomposing monolithic processes in a process algebra with multi-actions 将单块过程分解为具有多动作的过程代数
IF 0.9 4区 数学 Q3 COMPUTER SCIENCE, THEORY & METHODS Pub Date : 2023-04-01 DOI: 10.1016/j.jlamp.2023.100858
Maurice Laveaux , Tim A.C. Willemse

A monolithic process is a single recursive equation with data parameters, which only uses non-determinism, action prefixing, and recursion. We present a technique that decomposes such a monolithic process into multiple processes where each process defines behaviour for a subset of the parameters of the monolithic process. For this decomposition we can show that a composition of these processes is strongly bisimilar to the monolithic process under a suitable synchronisation context. Minimising the resulting processes before determining their composition can be used to derive a state space that is smaller than the one obtained by a monolithic exploration. We apply the decomposition technique to several specifications to show that this works in practice. Finally, we prove that state invariants can be used to further improve the effectiveness of this decomposition technique.

单片过程是带有数据参数的单个递归方程,它只使用非确定性、动作前缀和递归。我们提出了一种技术,将这样一个整体过程分解为多个过程,其中每个过程定义整体过程参数子集的行为。对于这种分解,我们可以表明,在适当的同步上下文中,这些过程的组合与单片过程非常相似。在确定其组成之前最小化结果过程可用于导出比单片探索获得的状态空间更小的状态空间。我们将分解技术应用于几个规范,以证明它在实践中是有效的。最后,我们证明了状态不变量可以进一步提高该分解技术的有效性。
{"title":"Decomposing monolithic processes in a process algebra with multi-actions","authors":"Maurice Laveaux ,&nbsp;Tim A.C. Willemse","doi":"10.1016/j.jlamp.2023.100858","DOIUrl":"https://doi.org/10.1016/j.jlamp.2023.100858","url":null,"abstract":"<div><p>A monolithic process is a single recursive equation with data parameters, which only uses non-determinism, action prefixing, and recursion. We present a technique that decomposes such a monolithic process into multiple processes where each process defines behaviour for a subset of the parameters of the monolithic process. For this decomposition we can show that a composition of these processes is strongly bisimilar to the monolithic process under a suitable synchronisation context. Minimising the resulting processes before determining their composition can be used to derive a state space that is smaller than the one obtained by a monolithic exploration. We apply the decomposition technique to several specifications to show that this works in practice. Finally, we prove that state invariants can be used to further improve the effectiveness of this decomposition technique.</p></div>","PeriodicalId":48797,"journal":{"name":"Journal of Logical and Algebraic Methods in Programming","volume":"132 ","pages":"Article 100858"},"PeriodicalIF":0.9,"publicationDate":"2023-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"49864102","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"数学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Safety enforcement via programmable strategies in Maude Maude通过可编程策略实施安全措施
IF 0.9 4区 数学 Q3 COMPUTER SCIENCE, THEORY & METHODS Pub Date : 2023-04-01 DOI: 10.1016/j.jlamp.2023.100849
M. Alpuente , D. Ballis , S. Escobar , D. Galán , J. Sapiña

This work aims to provide a general mechanism for safety enforcement in rewriting logic computations. Our technique relies on an assertion-guided model transformation that leverages the newly defined Maude strategy language for ensuring rich safety policies in non-deterministic programs. The transformed system is guaranteed to comply with user-defined invariants that are expressed in a strategy-based, pattern-matching logic, thus preventing the concurrent system to reach any unsafe states. The performance and scalability of the technique is empirically evaluated and benchmarked on a set of realistic programs.

这项工作的目的是为重写逻辑计算提供一种通用的安全执行机制。我们的技术依赖于断言引导的模型转换,该转换利用新定义的Maude策略语言来确保非确定性程序中的丰富安全策略。转换后的系统保证符合用户定义的不变量,这些不变量用基于策略的模式匹配逻辑表示,从而防止并发系统达到任何不安全的状态。在一组实际程序上对该技术的性能和可扩展性进行了经验评估和基准测试。
{"title":"Safety enforcement via programmable strategies in Maude","authors":"M. Alpuente ,&nbsp;D. Ballis ,&nbsp;S. Escobar ,&nbsp;D. Galán ,&nbsp;J. Sapiña","doi":"10.1016/j.jlamp.2023.100849","DOIUrl":"https://doi.org/10.1016/j.jlamp.2023.100849","url":null,"abstract":"<div><p>This work aims to provide a general mechanism for safety enforcement in rewriting logic computations. Our technique relies on an assertion-guided model transformation that leverages the newly defined Maude strategy language for ensuring rich safety policies in non-deterministic programs. The transformed system is guaranteed to comply with user-defined invariants that are expressed in a strategy-based, pattern-matching logic, thus preventing the concurrent system to reach any unsafe states. The performance and scalability of the technique is empirically evaluated and benchmarked on a set of realistic programs.</p></div>","PeriodicalId":48797,"journal":{"name":"Journal of Logical and Algebraic Methods in Programming","volume":"132 ","pages":"Article 100849"},"PeriodicalIF":0.9,"publicationDate":"2023-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"49864072","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"数学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 1
Program equivalence in an untyped, call-by-value functional language with uncurried functions 无类型、按值调用的函数式语言中具有无柯里化函数的程序等价性
IF 0.9 4区 数学 Q3 COMPUTER SCIENCE, THEORY & METHODS Pub Date : 2023-04-01 DOI: 10.1016/j.jlamp.2023.100857
Dániel Horpácsi , Péter Bereczky , Simon Thompson

We aim to reason about the correctness of behaviour-preserving transformations of Erlang programs. Behaviour preservation is characterised by semantic equivalence. Based upon our existing formal semantics for Core Erlang, we investigate potential definitions of suitable equivalence relations. In particular we adapt a number of existing approaches of expression equivalence to a simple functional programming language that carries the main features of sequential Core Erlang; we then examine the properties of the equivalence relations and formally establish connections between them. The results presented in this paper, including all theorems and their proofs, have been machine checked using the Coq proof assistant.

我们的目标是对Erlang程序的行为保持转换的正确性进行推理。行为保存的特点是语义等价。基于我们现有的Core Erlang形式语义,我们研究了合适等价关系的潜在定义。特别是,我们将许多现有的表达式等价方法改编为一种简单的函数式编程语言,该语言具有顺序核心Erlang的主要特性;然后,我们考察了等价关系的性质,并形式化地建立了它们之间的联系。本文的结果,包括所有的定理及其证明,都使用Coq证明助手进行了机器检验。
{"title":"Program equivalence in an untyped, call-by-value functional language with uncurried functions","authors":"Dániel Horpácsi ,&nbsp;Péter Bereczky ,&nbsp;Simon Thompson","doi":"10.1016/j.jlamp.2023.100857","DOIUrl":"https://doi.org/10.1016/j.jlamp.2023.100857","url":null,"abstract":"<div><p>We aim to reason about the correctness of behaviour-preserving transformations of Erlang programs. Behaviour preservation is characterised by semantic equivalence. Based upon our existing formal semantics for Core Erlang, we investigate potential definitions of suitable equivalence relations. In particular we adapt a number of existing approaches of expression equivalence to a simple functional programming language that carries the main features of sequential Core Erlang; we then examine the properties of the equivalence relations and formally establish connections between them. The results presented in this paper, including all theorems and their proofs, have been machine checked using the Coq proof assistant.</p></div>","PeriodicalId":48797,"journal":{"name":"Journal of Logical and Algebraic Methods in Programming","volume":"132 ","pages":"Article 100857"},"PeriodicalIF":0.9,"publicationDate":"2023-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"49864101","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"数学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 2
A type language for distributed reactive components governed by communication protocols 一种用于受通信协议控制的分布式响应式组件的类型语言
IF 0.9 4区 数学 Q3 COMPUTER SCIENCE, THEORY & METHODS Pub Date : 2023-04-01 DOI: 10.1016/j.jlamp.2023.100848
Zorica Savanović, Letterio Galletta

Component based software engineering (CBSE) is a methodology that aims to design and build software systems by assembling together reusable and loosely coupled components. Applying CBSE in a distributed setting is appealing but challenging: distributed applications require different remote components to interact following a well-defined protocol. In this paper we consider a model for message passing component-based systems where components are assembled together with a protocol, and are reactive to messages in a flexible way. We propose a type language that allows capturing component reactive behaviour and checking its compatibility with the protocol. Moreover, we show the correspondence of component and type behaviours, which entails a progress property for components.

基于组件的软件工程(CBSE)是一种旨在通过将可重用和松散耦合的组件组装在一起来设计和构建软件系统的方法。在分布式设置中应用CBSE很有吸引力,但也很有挑战性:分布式应用程序需要不同的远程组件按照定义良好的协议进行交互。在本文中,我们考虑了基于组件的消息传递系统的模型,其中组件与协议组装在一起,并以灵活的方式响应消息。我们提出了一种类型语言,它允许捕获组件的响应行为并检查其与协议的兼容性。此外,我们还展示了组件和类型行为的对应关系,这需要组件的进度属性。
{"title":"A type language for distributed reactive components governed by communication protocols","authors":"Zorica Savanović,&nbsp;Letterio Galletta","doi":"10.1016/j.jlamp.2023.100848","DOIUrl":"https://doi.org/10.1016/j.jlamp.2023.100848","url":null,"abstract":"<div><p>Component based software engineering (CBSE) is a methodology that aims to design and build software systems by assembling together reusable and loosely coupled components. Applying CBSE in a distributed setting is appealing but challenging: distributed applications require different remote components to interact following a well-defined protocol. In this paper we consider a model for message passing component-based systems where components are assembled together with a protocol, and are reactive to messages in a flexible way. We propose a type language that allows capturing component reactive behaviour and checking its compatibility with the protocol. Moreover, we show the correspondence of component and type behaviours, which entails a progress property for components.</p></div>","PeriodicalId":48797,"journal":{"name":"Journal of Logical and Algebraic Methods in Programming","volume":"132 ","pages":"Article 100848"},"PeriodicalIF":0.9,"publicationDate":"2023-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"49864073","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"数学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Verification of the ROS NavFn planner using executable specification languages 使用可执行规范语言验证ROS NavFn规划器
IF 0.9 4区 数学 Q3 COMPUTER SCIENCE, THEORY & METHODS Pub Date : 2023-04-01 DOI: 10.1016/j.jlamp.2023.100860
Enrique Martin-Martin , Manuel Montenegro , Adrián Riesco , Juan Rodríguez-Hortalá , Rubén Rubio

The Robot Operating System (ROS) is a framework for building robust software for complex robot systems in several domains. The Navigation Stack stands out among the different libraries available in ROS, providing a set of components that can be reused to build robots with autonomous navigation capabilities. This library is a critical component, as navigation failures could have catastrophic consequences for applications like self-driving cars where safety is crucial.

Here we devise a general methodology for verifying this kind of complex systems by specifying them in different executable specification languages with verification support and validating the equivalence between the specifications and the original system using differential testing techniques. The complex system can then be indirectly analyzed using the verification tools of the specification languages like model checking, semi-automated functional verification based on Hoare logic, and other formal techniques. In this paper we apply this verification methodology to the NavFn planner, which is the main planner component of the Navigation Stack of ROS, using Maude and Dafny as specification languages. We have formally proved several desirable properties of this planner algorithm like the absence of obstacles in the planned path. Moreover, we have found counterexamples for other concerns like the optimality of the path cost.

机器人操作系统(ROS)是为多个领域的复杂机器人系统构建健壮软件的框架。导航堆栈在ROS中可用的不同库中脱颖而出,它提供了一组组件,可以重用这些组件来构建具有自主导航功能的机器人。这个库是一个至关重要的组成部分,因为导航失败可能会对安全至关重要的自动驾驶汽车等应用产生灾难性的后果。在这里,我们设计了一种通用的方法来验证这类复杂的系统,方法是用不同的可执行规范语言指定它们,并使用不同的测试技术来验证规范和原始系统之间的等价性。然后可以使用规范语言的验证工具,如模型检查、基于Hoare逻辑的半自动化功能验证,以及其他正式技术,间接地分析复杂的系统。本文使用Maude和Dafny作为规范语言,将这种验证方法应用于ROS导航堆栈的主要规划器组件NavFn规划器。我们已经正式证明了该规划算法的几个理想性质,如规划路径中没有障碍物。此外,我们还发现了其他问题的反例,如路径成本的最优性。
{"title":"Verification of the ROS NavFn planner using executable specification languages","authors":"Enrique Martin-Martin ,&nbsp;Manuel Montenegro ,&nbsp;Adrián Riesco ,&nbsp;Juan Rodríguez-Hortalá ,&nbsp;Rubén Rubio","doi":"10.1016/j.jlamp.2023.100860","DOIUrl":"https://doi.org/10.1016/j.jlamp.2023.100860","url":null,"abstract":"<div><p>The Robot Operating System (ROS) is a framework for building robust software for complex robot systems in several domains. The <em>Navigation Stack</em> stands out among the different libraries available in ROS, providing a set of components that can be reused to build robots with autonomous navigation capabilities. This library is a critical component, as navigation failures could have catastrophic consequences for applications like self-driving cars where safety is crucial.</p><p>Here we devise a general methodology for verifying this kind of complex systems by specifying them in different executable specification languages with verification support and validating the equivalence between the specifications and the original system using differential testing techniques. The complex system can then be indirectly analyzed using the verification tools of the specification languages like model checking, semi-automated functional verification based on Hoare logic, and other formal techniques. In this paper we apply this verification methodology to the NavFn planner, which is the main planner component of the Navigation Stack of ROS, using Maude and Dafny as specification languages. We have formally proved several desirable properties of this planner algorithm like the absence of obstacles in the planned path. Moreover, we have found counterexamples for other concerns like the optimality of the path cost.</p></div>","PeriodicalId":48797,"journal":{"name":"Journal of Logical and Algebraic Methods in Programming","volume":"132 ","pages":"Article 100860"},"PeriodicalIF":0.9,"publicationDate":"2023-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"49864103","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"数学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
A memory-related vulnerability detection approach based on vulnerability model with Petri Net 基于Petri网漏洞模型的内存相关漏洞检测方法
IF 0.9 4区 数学 Q3 COMPUTER SCIENCE, THEORY & METHODS Pub Date : 2023-04-01 DOI: 10.1016/j.jlamp.2023.100859
Jinfu Chen , Chi Zhang , Saihua Cai , Lin Zhang , Liang Ma

With the continuous development of information technology, software vulnerabilities have become a critical threat to information security. Post-release detection of memory leaks, double free and use after free is one of the most challenging research problems in software vulnerability analysis. To tackle this challenge, we introduce a vulnerability model based on Petri Net. We consider the characteristics and causes of vulnerabilities, modeling is conducted from the subject and environment of vulnerabilities. Based on this vulnerability model, we propose a memory-related vulnerability detection framework based on vulnerability model (MRVD-VM) and its vulnerability detection algorithm based on vulnerability mode (VDA-VM). The results of experiments on Juliet Test Suite 1.2 for C_CPP show that MRVD-VM significantly outperforms three state-of-the-art baseline tools, including Cppcheck, Flawfinder, and Splint, in detecting memory leaks, double free and use after free.

随着信息技术的不断发展,软件漏洞已成为威胁信息安全的重大问题。发布后检测内存泄漏、重复释放和释放后使用是软件漏洞分析中最具挑战性的研究问题之一。为了解决这个问题,我们引入了一个基于Petri网的漏洞模型。考虑漏洞的特点和成因,从漏洞的主体和环境两方面进行建模。基于该漏洞模型,我们提出了基于漏洞模型的内存相关漏洞检测框架(MRVD-VM)及其基于漏洞模式的漏洞检测算法(VDA-VM)。在Juliet Test Suite 1.2 for C_CPP上的实验结果表明,MRVD-VM在检测内存泄漏、双重释放和释放后使用方面明显优于三种最先进的基线工具,包括Cppcheck、Flawfinder和Splint。
{"title":"A memory-related vulnerability detection approach based on vulnerability model with Petri Net","authors":"Jinfu Chen ,&nbsp;Chi Zhang ,&nbsp;Saihua Cai ,&nbsp;Lin Zhang ,&nbsp;Liang Ma","doi":"10.1016/j.jlamp.2023.100859","DOIUrl":"https://doi.org/10.1016/j.jlamp.2023.100859","url":null,"abstract":"<div><p><span>With the continuous development of information technology, software vulnerabilities have become a critical threat to information security. Post-release detection of memory leaks, double free and use after free is one of the most challenging research problems in software vulnerability analysis. To tackle this challenge, we introduce a vulnerability model based on Petri Net. We consider the characteristics and causes of vulnerabilities, modeling is conducted from the subject and environment of vulnerabilities. Based on this vulnerability model, we propose a memory-related </span>vulnerability detection framework based on vulnerability model (MRVD-VM) and its vulnerability detection algorithm based on vulnerability mode (VDA-VM). The results of experiments on Juliet Test Suite 1.2 for C_CPP show that MRVD-VM significantly outperforms three state-of-the-art baseline tools, including Cppcheck, Flawfinder, and Splint, in detecting memory leaks, double free and use after free.</p></div>","PeriodicalId":48797,"journal":{"name":"Journal of Logical and Algebraic Methods in Programming","volume":"132 ","pages":"Article 100859"},"PeriodicalIF":0.9,"publicationDate":"2023-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"49864100","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"数学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Location automata for synchronised shuffle expressions 同步洗牌表达式的位置自动机
IF 0.9 4区 数学 Q3 COMPUTER SCIENCE, THEORY & METHODS Pub Date : 2023-04-01 DOI: 10.1016/j.jlamp.2023.100847
Sabine Broda, António Machiavelo, Nelma Moreira, Rogério Reis

Several notions of synchronisation in concurrent systems can be modelled by regular shuffle operators. In this paper we consider regular expressions extended with three operators corresponding respectively to strong, arbitrary, and weak synchronisation. For these expressions, we define a location based position automaton. Furthermore, we show that the partial derivative automaton is still a quotient of the position automaton.

并发系统中的几个同步概念可以通过正则洗牌操作符来建模。在本文中,我们考虑了正则表达式扩展的三个操作符分别对应于强同步、任意同步和弱同步。对于这些表达式,我们定义了一个基于位置的位置自动机。进一步证明了偏导数自动机仍然是位置自动机的商。
{"title":"Location automata for synchronised shuffle expressions","authors":"Sabine Broda,&nbsp;António Machiavelo,&nbsp;Nelma Moreira,&nbsp;Rogério Reis","doi":"10.1016/j.jlamp.2023.100847","DOIUrl":"https://doi.org/10.1016/j.jlamp.2023.100847","url":null,"abstract":"<div><p>Several notions of synchronisation in concurrent systems can be modelled by regular shuffle operators. In this paper we consider regular expressions extended with three operators corresponding respectively to strong, arbitrary, and weak synchronisation. For these expressions, we define a location based position automaton. Furthermore, we show that the partial derivative automaton is still a quotient of the position automaton.</p></div>","PeriodicalId":48797,"journal":{"name":"Journal of Logical and Algebraic Methods in Programming","volume":"132 ","pages":"Article 100847"},"PeriodicalIF":0.9,"publicationDate":"2023-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"49864099","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"数学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
期刊
Journal of Logical and Algebraic Methods in Programming
全部 Acc. Chem. Res. ACS Applied Bio Materials ACS Appl. Electron. Mater. ACS Appl. Energy Mater. ACS Appl. Mater. Interfaces ACS Appl. Nano Mater. ACS Appl. Polym. Mater. ACS BIOMATER-SCI ENG ACS Catal. ACS Cent. Sci. ACS Chem. Biol. ACS Chemical Health & Safety ACS Chem. Neurosci. ACS Comb. Sci. ACS Earth Space Chem. ACS Energy Lett. ACS Infect. Dis. ACS Macro Lett. ACS Mater. Lett. ACS Med. Chem. Lett. ACS Nano ACS Omega ACS Photonics ACS Sens. ACS Sustainable Chem. Eng. ACS Synth. Biol. Anal. Chem. BIOCHEMISTRY-US Bioconjugate Chem. BIOMACROMOLECULES Chem. Res. Toxicol. Chem. Rev. Chem. Mater. CRYST GROWTH DES ENERG FUEL Environ. Sci. Technol. Environ. Sci. Technol. Lett. Eur. J. Inorg. Chem. IND ENG CHEM RES Inorg. Chem. J. Agric. Food. Chem. J. Chem. Eng. Data J. Chem. Educ. J. Chem. Inf. Model. J. Chem. Theory Comput. J. Med. Chem. J. Nat. Prod. J PROTEOME RES J. Am. Chem. Soc. LANGMUIR MACROMOLECULES Mol. Pharmaceutics Nano Lett. Org. Lett. ORG PROCESS RES DEV ORGANOMETALLICS J. Org. Chem. J. Phys. Chem. J. Phys. Chem. A J. Phys. Chem. B J. Phys. Chem. C J. Phys. Chem. Lett. Analyst Anal. Methods Biomater. Sci. Catal. Sci. Technol. Chem. Commun. Chem. Soc. Rev. CHEM EDUC RES PRACT CRYSTENGCOMM Dalton Trans. Energy Environ. Sci. ENVIRON SCI-NANO ENVIRON SCI-PROC IMP ENVIRON SCI-WAT RES Faraday Discuss. Food Funct. Green Chem. Inorg. Chem. Front. Integr. Biol. J. Anal. At. Spectrom. J. Mater. Chem. A J. Mater. Chem. B J. Mater. Chem. C Lab Chip Mater. Chem. Front. Mater. Horiz. MEDCHEMCOMM Metallomics Mol. Biosyst. Mol. Syst. Des. Eng. Nanoscale Nanoscale Horiz. Nat. Prod. Rep. New J. Chem. Org. Biomol. Chem. Org. Chem. Front. PHOTOCH PHOTOBIO SCI PCCP Polym. Chem.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1