首页 > 最新文献

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

英文 中文
Generation of algebraic data type values using evolutionary algorithms 利用进化算法生成代数数据类型值
IF 0.7 4区 数学 Q3 COMPUTER SCIENCE, THEORY & METHODS Pub Date : 2024-11-13 DOI: 10.1016/j.jlamp.2024.101022
Ignacio Ballesteros , Clara Benac-Earle , Julio Mariño , Lars-Åke Fredlund , Ángel Herranz
Automatic data generation is a key component of automated software testing. Random generation of test input data can uncover some bugs in software, but its effectiveness decreases when those inputs must satisfy complex properties in order to be meaningful. In this work, we study an evolutionary approach to generate values that can be encoded as algebraic data types plus additional properties. First, the approach is illustrated with the generation of sorted lists. Then, we generalize the technique to arbitrary algebraic data type definitions. Finally, we consider the problem of constrained data types where the data must satisfy some nontrivial property, using the well-known example of red-black trees for our experiments. This example will allow us to introduce the main principles of evolutionary algorithms and how these principles can be applied to obtain valid, nontrivial samples of a given data structure. Our experiments have revealed that this evolutionary approach is able to improve diversity, and increase the size of valid generated values with respect to simple random sampling techniques.
自动生成数据是自动软件测试的关键组成部分。随机生成测试输入数据可以发现软件中的一些错误,但当这些输入数据必须满足复杂的属性才能有意义时,其有效性就会降低。在这项工作中,我们研究了一种进化方法,用于生成可编码为代数数据类型和附加属性的值。首先,我们用生成排序列表来说明这种方法。然后,我们将该技术推广到任意代数数据类型定义。最后,我们考虑了受约束数据类型的问题,即数据必须满足某些非难属性,并以众所周知的红黑树为例来进行实验。通过这个例子,我们可以介绍进化算法的主要原理,以及如何应用这些原理来获取给定数据结构的有效、非次要样本。我们的实验表明,与简单的随机取样技术相比,这种进化方法能够提高多样性,并增加有效生成值的大小。
{"title":"Generation of algebraic data type values using evolutionary algorithms","authors":"Ignacio Ballesteros ,&nbsp;Clara Benac-Earle ,&nbsp;Julio Mariño ,&nbsp;Lars-Åke Fredlund ,&nbsp;Ángel Herranz","doi":"10.1016/j.jlamp.2024.101022","DOIUrl":"10.1016/j.jlamp.2024.101022","url":null,"abstract":"<div><div>Automatic data generation is a key component of automated software testing. Random generation of test input data can uncover some bugs in software, but its effectiveness decreases when those inputs must satisfy complex properties in order to be meaningful. In this work, we study an evolutionary approach to generate values that can be encoded as algebraic data types plus additional properties. First, the approach is illustrated with the generation of sorted lists. Then, we generalize the technique to arbitrary algebraic data type definitions. Finally, we consider the problem of constrained data types where the data must satisfy some nontrivial property, using the well-known example of red-black trees for our experiments. This example will allow us to introduce the main principles of evolutionary algorithms and how these principles can be applied to obtain valid, nontrivial samples of a given data structure. Our experiments have revealed that this evolutionary approach is able to improve diversity, and increase the size of valid generated values with respect to simple random sampling techniques.</div></div>","PeriodicalId":48797,"journal":{"name":"Journal of Logical and Algebraic Methods in Programming","volume":"143 ","pages":"Article 101022"},"PeriodicalIF":0.7,"publicationDate":"2024-11-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142701496","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
Logic and Calculi for All on the occasion of Luís Barbosa’s 60th birthday
IF 0.7 4区 数学 Q3 COMPUTER SCIENCE, THEORY & METHODS Pub Date : 2024-11-12 DOI: 10.1016/j.jlamp.2024.101023
Alexandre Madeira , José Nuno Oliveira , José Proença , Renato Neves
{"title":"Logic and Calculi for All on the occasion of Luís Barbosa’s 60th birthday","authors":"Alexandre Madeira ,&nbsp;José Nuno Oliveira ,&nbsp;José Proença ,&nbsp;Renato Neves","doi":"10.1016/j.jlamp.2024.101023","DOIUrl":"10.1016/j.jlamp.2024.101023","url":null,"abstract":"","PeriodicalId":48797,"journal":{"name":"Journal of Logical and Algebraic Methods in Programming","volume":"143 ","pages":"Article 101023"},"PeriodicalIF":0.7,"publicationDate":"2024-11-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142745024","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
First order Büchi automata and their application to verification of LTL specifications 一阶 Büchi 自动机及其在 LTL 规范验证中的应用
IF 0.7 4区 数学 Q3 COMPUTER SCIENCE, THEORY & METHODS Pub Date : 2024-10-15 DOI: 10.1016/j.jlamp.2024.101021
Wenhui Zhang
Büchi automata have applications in formal verification, e.g., in deciding whether a system satisfies given properties. We provide a definition of Büchi automata based on first order logics for representing infinite state systems, and investigate rules for proving emptiness and non-emptiness of such automata. We then apply these rules to solve the problem of verifying correctness of concurrent transition systems, leading to a relatively complete approach for proving and disproving LTL (Linear Temporal Logic) specifications. This approach overcomes weaknesses of existing work based on well-founded sets in the sense that the relative completeness does not depend on additional specification for ensuring progress of non-stuttering transitions. On the practical aspect, we provide a set of examples with an experimental verification condition generation tool to demonstrate the potential applicability of the approach for the verification of concurrent systems.
布奇自动机可应用于形式验证,例如判定系统是否满足给定属性。我们基于表示无限状态系统的一阶逻辑给出了布奇自动机的定义,并研究了证明此类自动机空性和非空性的规则。然后,我们应用这些规则来解决验证并发转换系统正确性的问题,从而形成了一种相对完整的 LTL(线性时态逻辑)规范证明和反证方法。这种方法克服了基于有据集的现有工作的弱点,因为它的相对完备性并不依赖于额外的规范来确保非停顿转换的进度。在实际应用方面,我们提供了一组带有实验验证条件生成工具的示例,以证明该方法在并发系统验证中的潜在适用性。
{"title":"First order Büchi automata and their application to verification of LTL specifications","authors":"Wenhui Zhang","doi":"10.1016/j.jlamp.2024.101021","DOIUrl":"10.1016/j.jlamp.2024.101021","url":null,"abstract":"<div><div>Büchi automata have applications in formal verification, e.g., in deciding whether a system satisfies given properties. We provide a definition of Büchi automata based on first order logics for representing infinite state systems, and investigate rules for proving emptiness and non-emptiness of such automata. We then apply these rules to solve the problem of verifying correctness of concurrent transition systems, leading to a relatively complete approach for proving and disproving LTL (Linear Temporal Logic) specifications. This approach overcomes weaknesses of existing work based on well-founded sets in the sense that the relative completeness does not depend on additional specification for ensuring progress of non-stuttering transitions. On the practical aspect, we provide a set of examples with an experimental verification condition generation tool to demonstrate the potential applicability of the approach for the verification of concurrent systems.</div></div>","PeriodicalId":48797,"journal":{"name":"Journal of Logical and Algebraic Methods in Programming","volume":"142 ","pages":"Article 101021"},"PeriodicalIF":0.7,"publicationDate":"2024-10-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142446083","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
Tuning similarity-based fuzzy logic programs 调整基于相似性的模糊逻辑程序
IF 0.7 4区 数学 Q3 COMPUTER SCIENCE, THEORY & METHODS Pub Date : 2024-10-11 DOI: 10.1016/j.jlamp.2024.101020
Ginés Moreno, José A. Riaza
We have recently designed a symbolic extension of FASILL (acronym of “Fuzzy Aggregators and Similarity Into a Logic Language”), where some truth degrees, similarity annotations and fuzzy connectives can be left unknown, so that the user can easily see the impact of their possible values at execution time. By extending our previous results in the development of tuning techniques not dealing yet with similarity relations, in this work we automatically tune FASILL programs by appropriately substituting the symbolic constants appearing on their rules and similarity relations with the concrete values that best satisfy the user's preferences. Firstly, we have formally proved two theoretical results with different levels of generality/practicability for tuning programs in a safe and effective way. Regarding efficiency, we have drastically reduced the exponential complexity of the tuning algorithms by splitting the initial set of symbolic constants in disjoint sets and using thresholding techniques. These effects have been evidenced by several experiments and benchmarks developed with the online tool we provide to verify in practice the high performance of the improved system.
我们最近设计了一种 FASILL("Fuzzy Aggregators and Similarity Into a Logic Language "的首字母缩写)的符号扩展,其中一些真值、相似性注释和模糊连接词可以保持未知,这样用户在执行时就可以很容易地看到它们可能的取值所产生的影响。在这项工作中,我们扩展了之前在开发尚未处理相似性关系的调整技术方面取得的成果,通过用最能满足用户偏好的具体值适当替代出现在规则和相似性关系中的符号常量,自动调整 FASILL 程序。首先,我们正式证明了两个具有不同通用性/实用性的理论结果,可以安全有效地调整程序。在效率方面,我们通过将初始的符号常数集分割成不相连的集合和使用阈值技术,大大降低了调整算法的指数复杂度。这些效果已通过我们提供的在线工具开发的多个实验和基准测试得到了证明,从而在实践中验证了改进系统的高性能。
{"title":"Tuning similarity-based fuzzy logic programs","authors":"Ginés Moreno,&nbsp;José A. Riaza","doi":"10.1016/j.jlamp.2024.101020","DOIUrl":"10.1016/j.jlamp.2024.101020","url":null,"abstract":"<div><div>We have recently designed a symbolic extension of <span>FASILL</span> (acronym of “Fuzzy Aggregators and Similarity Into a Logic Language”), where some truth degrees, similarity annotations and fuzzy connectives can be left unknown, so that the user can easily see the impact of their possible values at execution time. By extending our previous results in the development of tuning techniques not dealing yet with similarity relations, in this work we automatically tune <span>FASILL</span> programs by appropriately substituting the symbolic constants appearing on their rules and similarity relations with the concrete values that best satisfy the user's preferences. Firstly, we have formally proved two theoretical results with different levels of generality/practicability for tuning programs in a safe and effective way. Regarding efficiency, we have drastically reduced the exponential complexity of the tuning algorithms by splitting the initial set of symbolic constants in disjoint sets and using thresholding techniques. These effects have been evidenced by several experiments and benchmarks developed with the online tool we provide to verify in practice the high performance of the improved system.</div></div>","PeriodicalId":48797,"journal":{"name":"Journal of Logical and Algebraic Methods in Programming","volume":"142 ","pages":"Article 101020"},"PeriodicalIF":0.7,"publicationDate":"2024-10-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142432865","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"数学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Executable contracts for Elixir Elixir 的可执行合约
IF 0.7 4区 数学 Q3 COMPUTER SCIENCE, THEORY & METHODS Pub Date : 2024-10-01 DOI: 10.1016/j.jlamp.2024.101019
Luis Eduardo Bueso de Barrio, Lars-Åke Fredlund, Ángel Herranz, Julio Mariño, Clara Benac Earle
This article presents the design of a library for attaching and checking executable contracts to code written in the Elixir programming language. In addition to classical contract constructs such as preconditions and postconditions, the library allows specifying exceptional behaviour (i.e., which exceptions are thrown and under which conditions), detecting non-termination issues in recursive functions by specifying a strictly decreasing order in function arguments, and associating timers with function calls to detect slow computations. The library also focuses on language-specific features, enabling the association of contracts with the reception of messages sent by processes and the attachment of constraints to variable names (useful due to variable shadowing in Elixir). Moreover, stateful contracts (i.e., with a model state) permit specifying the behaviour of stateful APIs whose operations can be linearized. Using the stateful contracts, a monitor can be employed to check that the observed state can be explained in terms of possible linearizations.
本文介绍了一个库的设计,该库用于附加和检查用 Elixir 编程语言编写的代码中的可执行合约。除了前置条件和后置条件等经典合约构造外,该库还允许指定异常行为(即在哪些条件下抛出异常),通过指定函数参数的严格递减顺序来检测递归函数中的非终止问题,以及将计时器与函数调用关联起来以检测缓慢的计算。该库还侧重于特定语言的功能,可将合约与接收进程发送的消息关联起来,并将约束附加到变量名上(Elixir 中的变量阴影非常有用)。此外,有状态合约(即具有模型状态)允许指定有状态应用程序接口的行为,这些应用程序接口的操作可以线性化。使用有状态合约,可以使用监控器来检查观察到的状态是否可以用可能的线性化来解释。
{"title":"Executable contracts for Elixir","authors":"Luis Eduardo Bueso de Barrio,&nbsp;Lars-Åke Fredlund,&nbsp;Ángel Herranz,&nbsp;Julio Mariño,&nbsp;Clara Benac Earle","doi":"10.1016/j.jlamp.2024.101019","DOIUrl":"10.1016/j.jlamp.2024.101019","url":null,"abstract":"<div><div>This article presents the design of a library for attaching and checking executable contracts to code written in the Elixir programming language. In addition to classical contract constructs such as preconditions and postconditions, the library allows specifying exceptional behaviour (i.e., which exceptions are thrown and under which conditions), detecting non-termination issues in recursive functions by specifying a strictly decreasing order in function arguments, and associating timers with function calls to detect slow computations. The library also focuses on language-specific features, enabling the association of contracts with the reception of messages sent by processes and the attachment of constraints to variable names (useful due to variable shadowing in Elixir). Moreover, stateful contracts (i.e., with a model state) permit specifying the behaviour of stateful APIs whose operations can be linearized. Using the stateful contracts, a monitor can be employed to check that the observed state can be explained in terms of possible linearizations.</div></div>","PeriodicalId":48797,"journal":{"name":"Journal of Logical and Algebraic Methods in Programming","volume":"142 ","pages":"Article 101019"},"PeriodicalIF":0.7,"publicationDate":"2024-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142424083","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
Partially typed multiparty sessions with internal delegation 内部授权的部分类型多方会议
IF 0.7 4区 数学 Q3 COMPUTER SCIENCE, THEORY & METHODS Pub Date : 2024-09-23 DOI: 10.1016/j.jlamp.2024.101018
Franco Barbanera , Viviana Bono , Mariangiola Dezani-Ciancaglini
A multiparty session formalises a set of concurrent communicating participants. The possibility for a participant to delegate some interactions to another participant is crucial for the expressivity of multiparty sessions. We propose the first type system for multiparty sessions with delegation where some communications between participants can be ignored. This allows us to type some sessions with global types representing interesting protocols, which have no type in the standard type systems. Our type system enjoys Subject Reduction, Session Fidelity and partial Lock-freedom. The last property ensures the absence of locks for participants with non-ignored communications. A sound and complete type inference algorithm is also discussed.
多方会话是一组同时进行通信的参与者的形式化。一个参与者可以将某些互动委托给另一个参与者,这对多方会话的表达能力至关重要。我们提出了第一个多方会话类型系统,在这个系统中,参与者之间的某些通信可以被忽略。这样,我们就可以用代表有趣协议的全局类型对某些会话进行类型化,而这些协议在标准类型系统中是没有类型的。我们的类型系统具有主体还原性、会话保真度和部分无锁性。最后一个特性确保了具有非忽略通信的参与者没有锁。此外,我们还讨论了一种完善而完整的类型推断算法。
{"title":"Partially typed multiparty sessions with internal delegation","authors":"Franco Barbanera ,&nbsp;Viviana Bono ,&nbsp;Mariangiola Dezani-Ciancaglini","doi":"10.1016/j.jlamp.2024.101018","DOIUrl":"10.1016/j.jlamp.2024.101018","url":null,"abstract":"<div><div>A multiparty session formalises a set of concurrent communicating participants. The possibility for a participant to delegate some interactions to another participant is crucial for the expressivity of multiparty sessions. We propose the first type system for multiparty sessions with delegation where some communications between participants can be ignored. This allows us to type some sessions with global types representing interesting protocols, which have no type in the standard type systems. Our type system enjoys Subject Reduction, Session Fidelity and <em>partial</em> Lock-freedom. The last property ensures the absence of <em>locks</em> for participants with non-ignored communications. A sound and complete type inference algorithm is also discussed.</div></div>","PeriodicalId":48797,"journal":{"name":"Journal of Logical and Algebraic Methods in Programming","volume":"142 ","pages":"Article 101018"},"PeriodicalIF":0.7,"publicationDate":"2024-09-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142322690","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"数学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
The expression dependence graph 表达式依存图
IF 0.7 4区 数学 Q3 COMPUTER SCIENCE, THEORY & METHODS Pub Date : 2024-09-19 DOI: 10.1016/j.jlamp.2024.101016
Carlos Galindo, Sergio Pérez, Josep Silva
The system dependence graph (SDG) is a widely used program representation for the static analysis of programs. In particular, it is the standard way to represent control and flow dependences between the statements of a program. It is at the core of program slicing, a technique that extracts the part of a program that can influence a given program point (the so-called slicing criterion). In this paper, we identify several program slicing situations (e.g., list comprehensions, try-catch and for) where the representation provided by the SDG is imprecise, and we present an alternative program representation, which is indeed an extension of the SDG, that solves these situations. We call this extension the expression dependence graph (EDG). The EDG redefines the SDG by increasing the granularity of its nodes to abstract syntax tree (AST) nodes. The implications of this change include an improvement in precision, the appearance of new kinds of dependences (besides control and flow dependences), and the possibility of selecting any (sub)expression as the slicing criterion.
系统依赖图(SDG)是一种广泛应用于程序静态分析的程序表示法。特别是,它是表示程序语句间控制和流程依赖关系的标准方法。它是程序切分的核心,程序切分是一种提取程序中能影响给定程序点的部分(即所谓的切分准则)的技术。在本文中,我们指出了 SDG 所提供的表示法不精确的几种程序切分情况(如列表理解、try-catch 和 for),并提出了一种替代程序表示法,它实际上是 SDG 的扩展,可以解决这些情况。我们将这种扩展称为表达式依赖图(EDG)。EDG 重新定义了 SDG,将其节点的粒度提高到抽象语法树(AST)节点。这种变化的影响包括提高了精确度,出现了新的依赖类型(除了控制和流程依赖),以及可以选择任何(子)表达式作为切分标准。
{"title":"The expression dependence graph","authors":"Carlos Galindo,&nbsp;Sergio Pérez,&nbsp;Josep Silva","doi":"10.1016/j.jlamp.2024.101016","DOIUrl":"10.1016/j.jlamp.2024.101016","url":null,"abstract":"<div><div>The <em>system dependence graph</em> (SDG) is a widely used program representation for the static analysis of programs. In particular, it is the standard way to represent control and flow dependences between the statements of a program. It is at the core of program slicing, a technique that extracts the part of a program that can influence a given program point (the so-called slicing criterion). In this paper, we identify several program slicing situations (e.g., list comprehensions, <span>try-catch</span> and <span>for</span>) where the representation provided by the SDG is imprecise, and we present an alternative program representation, which is indeed an extension of the SDG, that solves these situations. We call this extension the <em>expression dependence graph</em> (EDG). The EDG redefines the SDG by increasing the granularity of its nodes to <em>abstract syntax tree</em> (AST) nodes. The implications of this change include an improvement in precision, the appearance of new kinds of dependences (besides control and flow dependences), and the possibility of selecting any (sub)expression as the slicing criterion.</div></div>","PeriodicalId":48797,"journal":{"name":"Journal of Logical and Algebraic Methods in Programming","volume":"142 ","pages":"Article 101016"},"PeriodicalIF":0.7,"publicationDate":"2024-09-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://www.sciencedirect.com/science/article/pii/S2352220824000701/pdfft?md5=e1a070fcd4076ea5219a2aae17e4145c&pid=1-s2.0-S2352220824000701-main.pdf","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142311098","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"数学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
On the expressiveness and efficiency of guarded lists in Bach 论巴赫守护列表的表现力和效率
IF 0.7 4区 数学 Q3 COMPUTER SCIENCE, THEORY & METHODS Pub Date : 2024-09-16 DOI: 10.1016/j.jlamp.2024.101017
Manel Barkallah, Jean-Marie Jacquet
Concurrency theory has received considerable attention, but mostly in the scope of synchronous process algebras such as CCS, CSP, and ACP. As another way of handling concurrency, data-based coordination languages aim to provide a clear separation between interaction and computation by synchronizing processes asynchronously by means of information being available or not on a shared space. Although these languages enjoy interesting properties, verifying program correctness remains challenging. In particular, model checking logic formulae is known to raise performance issues due to the state space explosion problem. In this paper, we propose a guarded list construct as a solution to address this problem. Beyond increasing performance, it also enriches the expressiveness of data-based coordination languages and allows for program transformations that further increase the speed of computations.
并发理论受到了相当多的关注,但主要是在同步进程代数(如 CCS、CSP 和 ACP)的范围内。作为处理并发性的另一种方法,基于数据的协调语言旨在通过共享空间上的信息可用与否来异步同步进程,从而明确区分交互与计算。虽然这些语言具有有趣的特性,但验证程序的正确性仍然具有挑战性。特别是,众所周知,由于状态空间爆炸问题,对逻辑公式进行建模检查会产生性能问题。在本文中,我们提出了一种有保护的列表结构作为解决这一问题的方案。除了提高性能外,它还丰富了基于数据的协调语言的表现力,并允许进行程序转换,从而进一步提高计算速度。
{"title":"On the expressiveness and efficiency of guarded lists in Bach","authors":"Manel Barkallah,&nbsp;Jean-Marie Jacquet","doi":"10.1016/j.jlamp.2024.101017","DOIUrl":"10.1016/j.jlamp.2024.101017","url":null,"abstract":"<div><div>Concurrency theory has received considerable attention, but mostly in the scope of synchronous process algebras such as CCS, CSP, and ACP. As another way of handling concurrency, data-based coordination languages aim to provide a clear separation between interaction and computation by synchronizing processes asynchronously by means of information being available or not on a shared space. Although these languages enjoy interesting properties, verifying program correctness remains challenging. In particular, model checking logic formulae is known to raise performance issues due to the state space explosion problem. In this paper, we propose a guarded list construct as a solution to address this problem. Beyond increasing performance, it also enriches the expressiveness of data-based coordination languages and allows for program transformations that further increase the speed of computations.</div></div>","PeriodicalId":48797,"journal":{"name":"Journal of Logical and Algebraic Methods in Programming","volume":"142 ","pages":"Article 101017"},"PeriodicalIF":0.7,"publicationDate":"2024-09-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142311004","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
Multifaceted formal methods and their interdisciplinary role — From the cathedral of ‘components as coalgebras’ to the HCI context and the open source software bazaar 多方面的形式化方法及其跨学科作用--从 "作为煤块的组件 "大教堂到人机交互环境和开源软件集市
IF 0.7 4区 数学 Q3 COMPUTER SCIENCE, THEORY & METHODS Pub Date : 2024-09-03 DOI: 10.1016/j.jlamp.2024.101006
Antonio Cerone
In this article we revisit the history of formal methods with a focus on important aspects that contribute to their interdisciplinary role. We consider: the variability of mathematical representation techniques on which the theoretical foundations of formal methods are based; formal methods multidisciplinarity; their capability to serve at a meta-level in providing the semantics of programming languages, specification and modelling languages as well as higher-level and domain-specific formal notations; and, finally, how some of these higher-level and domain-specific notations may be lifted at an interdisciplinary level.
Within this historical review, we are inspired by Luís Barbosa's “components as coalgebras” approach in seeing that the duality data-process is underlying all those aspects of formal methods. We also see that such a duality may not only be expressed in universal terms within category theory, but may also be characterised in practical terms and focused applications by two distinct logic paradigms, equational logic for the data and rewriting logic for the process, by two modelling directions, forward process definitions and backward data-driven process transformations, and by the distinction between syntax, defined by the data structures, and semantics, provided by rewrite rules. We use the Maude modelling language to illustrate the application of the data-process duality. In fact, Maude use equational logic to define data types and rewriting logic to express system evolution. Illustrative examples are from the areas of cognitive science and human-computer interaction (HCI).
We then define a data-driven model transformation, which we call elaborative mining, which adopts a backward perspective to recover a behaviour that was observed in real life but was not predicted forward by the original model. Finally, we see how the “open source software bazaar”, which is a metaphor for the apparently chaotic open source development process, offers us a big data context to lift the driving process for model transformation from deterministic to statistical.
在这篇文章中,我们重温了形式化方法的历史,重点是有助于其跨学科作用的重要方面。我们将考虑:作为形式方法理论基础的数学表示技术的多变性;形式方法的多学科性;形式方法在元层面上提供编程语言语义、规范和建模语言以及更高层次和特定领域的形式符号的能力;最后,这些更高层次和特定领域的符号如何在跨学科层面上得到提升。在这一历史回顾中,我们受到路易斯-巴尔博萨(Luís Barbosa)"组件即煤球 "方法的启发,看到了数据-过程二元性是形式化方法所有这些方面的基础。我们还看到,这种二元性不仅可以用范畴理论中的通用术语来表达,而且还可以用两种不同的逻辑范式(数据的等式逻辑和过程的重写逻辑)、两个建模方向(前向过程定义和后向数据驱动的过程转换)以及由数据结构定义的语法和由重写规则提供的语义之间的区别,来描述这种二元性的实际特点和重点应用。我们使用 Maude 建模语言来说明数据-流程二元性的应用。事实上,Maude 使用等式逻辑来定义数据类型,使用重写逻辑来表达系统演化。然后,我们定义了一种数据驱动的模型转换,我们称之为精心挖掘(ellaborative mining),它采用逆向视角来恢复在现实生活中观察到的、但原始模型无法预测的行为。最后,我们将看到 "开源软件集市 "是如何为我们提供一个大数据背景,将模型转换的驱动过程从确定性提升到统计性。
{"title":"Multifaceted formal methods and their interdisciplinary role — From the cathedral of ‘components as coalgebras’ to the HCI context and the open source software bazaar","authors":"Antonio Cerone","doi":"10.1016/j.jlamp.2024.101006","DOIUrl":"10.1016/j.jlamp.2024.101006","url":null,"abstract":"<div><div>In this article we revisit the history of formal methods with a focus on important aspects that contribute to their interdisciplinary role. We consider: the variability of mathematical representation techniques on which the theoretical foundations of formal methods are based; formal methods multidisciplinarity; their capability to serve at a meta-level in providing the semantics of programming languages, specification and modelling languages as well as higher-level and domain-specific formal notations; and, finally, how some of these higher-level and domain-specific notations may be lifted at an interdisciplinary level.</div><div>Within this historical review, we are inspired by Luís Barbosa's “components as coalgebras” approach in seeing that the duality data-process is underlying all those aspects of formal methods. We also see that such a duality may not only be expressed in universal terms within category theory, but may also be characterised in practical terms and focused applications by two distinct logic paradigms, equational logic for the data and rewriting logic for the process, by two modelling directions, forward process definitions and backward data-driven process transformations, and by the distinction between syntax, defined by the data structures, and semantics, provided by rewrite rules. We use the Maude modelling language to illustrate the application of the data-process duality. In fact, Maude use equational logic to define data types and rewriting logic to express system evolution. Illustrative examples are from the areas of cognitive science and human-computer interaction (HCI).</div><div>We then define a data-driven model transformation, which we call <em>elaborative mining</em>, which adopts a backward perspective to recover a behaviour that was observed in real life but was not predicted forward by the original model. Finally, we see how the “open source software bazaar”, which is a metaphor for the apparently chaotic open source development process, offers us a big data context to lift the driving process for model transformation from deterministic to statistical.</div></div>","PeriodicalId":48797,"journal":{"name":"Journal of Logical and Algebraic Methods in Programming","volume":"142 ","pages":"Article 101006"},"PeriodicalIF":0.7,"publicationDate":"2024-09-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142311003","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
Maude2Lean: Theorem proving for Maude specifications using Lean Maude2Lean:使用精益对 Maude 规范进行定理证明
IF 0.7 4区 数学 Q3 COMPUTER SCIENCE, THEORY & METHODS Pub Date : 2024-08-30 DOI: 10.1016/j.jlamp.2024.101005
Rubén Rubio , Adrián Riesco

Maude is a specification language based on rewriting logic whose programs can be executed, model checked, and analyzed with other automated techniques, but not easily theorem proved. On the other hand, Lean is a modern proof assistant based on the calculus of inductive constructions with a wide library of reusable proofs and definitions. This paper presents a translation from the first formalism to the second, and the maude2lean tool that predictably derives a Lean program from a Maude module. Hence, theorems can be proved in Lean about Maude specifications.

Maude 是一种基于重写逻辑的规范语言,它的程序可以执行、进行模型检查和使用其他自动化技术进行分析,但不容易进行定理证明。另一方面,Lean 是一种基于归纳构造微积分的现代证明助手,拥有大量可重复使用的证明和定义库。本文介绍了从第一种形式主义到第二种形式主义的转换,以及 maude2lean 工具,该工具可预测地从 Maude 模块导出 Lean 程序。因此,可以在 Lean 中证明有关 Maude 规范的定理。
{"title":"Maude2Lean: Theorem proving for Maude specifications using Lean","authors":"Rubén Rubio ,&nbsp;Adrián Riesco","doi":"10.1016/j.jlamp.2024.101005","DOIUrl":"10.1016/j.jlamp.2024.101005","url":null,"abstract":"<div><p>Maude is a specification language based on rewriting logic whose programs can be executed, model checked, and analyzed with other automated techniques, but not easily theorem proved. On the other hand, Lean is a modern proof assistant based on the calculus of inductive constructions with a wide library of reusable proofs and definitions. This paper presents a translation from the first formalism to the second, and the <span>maude2lean</span> tool that predictably derives a Lean program from a Maude module. Hence, theorems can be proved in Lean about Maude specifications.</p></div>","PeriodicalId":48797,"journal":{"name":"Journal of Logical and Algebraic Methods in Programming","volume":"142 ","pages":"Article 101005"},"PeriodicalIF":0.7,"publicationDate":"2024-08-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://www.sciencedirect.com/science/article/pii/S2352220824000592/pdfft?md5=4c71774004ee940c316d76725faf003b&pid=1-s2.0-S2352220824000592-main.pdf","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142128938","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"数学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","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