{"title":"The expression dependence graph","authors":"Carlos Galindo, Sergio Pérez, 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}
{"title":"On the expressiveness and efficiency of guarded lists in Bach","authors":"Manel Barkallah, 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}
{"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}
{"title":"Maude2Lean: Theorem proving for Maude specifications using Lean","authors":"Rubén Rubio , 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}
{"title":"Comparing session type systems derived from linear logic","authors":"Bas van den Heuvel , Jorge A. Pérez","doi":"10.1016/j.jlamp.2024.101004","DOIUrl":"10.1016/j.jlamp.2024.101004","url":null,"abstract":"<div><p><em>Session types</em> are a typed approach to message-passing concurrency, where types describe sequences of intended exchanges over channels. Session type systems have been given strong logical foundations via Curry-Howard correspondences with <em>linear logic</em>, a resource-aware logic that naturally captures structured interactions. These logical foundations provide an elegant framework to specify and (statically) verify message-passing processes.</p><p>In this paper, we rigorously compare different type systems for concurrency derived from the Curry-Howard correspondence between linear logic and session types. We address the main divide between these type systems: the classical and intuitionistic presentations of linear logic. Over the years, these presentations have given rise to separate research strands on logical foundations for concurrency; the differences between their derived type systems have only been addressed informally.</p><p>To formally assess these differences, we develop <span><math><mi>π</mi><mrow><mi>ULL</mi></mrow></math></span>, a session type system that encompasses type systems derived from classical and intuitionistic interpretations of linear logic. Based on a fragment of Girard's Logic of Unity, <span><math><mi>π</mi><mrow><mi>ULL</mi></mrow></math></span> provides a basic reference framework: we compare existing session type systems by characterizing fragments of <span><math><mi>π</mi><mrow><mi>ULL</mi></mrow></math></span> that coincide with classical and intuitionistic formulations. We analyze the significance of our characterizations by considering the <em>locality</em> principle (enforced by intuitionistic interpretations but not by classical ones) and forms of <em>process composition</em> induced by the interpretations.</p></div>","PeriodicalId":48797,"journal":{"name":"Journal of Logical and Algebraic Methods in Programming","volume":"142 ","pages":"Article 101004"},"PeriodicalIF":0.7,"publicationDate":"2024-08-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://www.sciencedirect.com/science/article/pii/S2352220824000580/pdfft?md5=294ab7a9dfc6c75e24cca0d439232106&pid=1-s2.0-S2352220824000580-main.pdf","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142089470","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}
{"title":"Towards an efficient implementation of a tableau method for reactive safety specifications","authors":"Ander Alonso , Montserrat Hermo , Josu Oca","doi":"10.1016/j.jlamp.2024.101003","DOIUrl":"10.1016/j.jlamp.2024.101003","url":null,"abstract":"<div><p>In this paper, we will show how to handle a new normal form called <em>terse normal form</em> (<span><math><mtext>TNF</mtext></math></span>), which is crucial to the development of a novel tableau method that solves realizability and synthesis for specifications expressed in a safety fragment of <span><math><mtext>LTL</mtext></math></span>. The construction of these tableaux is based on the conversion of <span><math><mtext>LTL</mtext></math></span> formulas into <span><math><mtext>TNF</mtext></math></span>, which is one of the most computationally expensive parts of the method. We will explain how to efficiently extract the relevant information required by the tableaux without having to compute the entire <span><math><mtext>TNF</mtext></math></span> of a safety formula. We present a correct algorithm for carrying out this task as well as its implementation.</p></div>","PeriodicalId":48797,"journal":{"name":"Journal of Logical and Algebraic Methods in Programming","volume":"142 ","pages":"Article 101003"},"PeriodicalIF":0.7,"publicationDate":"2024-08-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141979562","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}
{"title":"Towards the exact complexity of realizability for Safety LTL","authors":"Noel Arteche , Montserrat Hermo","doi":"10.1016/j.jlamp.2024.101002","DOIUrl":"10.1016/j.jlamp.2024.101002","url":null,"abstract":"<div><p>We study the realizability and strong satisfiability problems for <span>Safety<!--> <!-->LTL</span>, a syntactic fragment of Linear Temporal Logic (<figure><img></figure>) capturing safe formulas. While it is well-known that realizability for this fragment lies in <figure><img></figure>, the best-known lower bound is <figure><img></figure>-hardness. Surprisingly, closing this gap has proven an elusive task. Previous works have claimed first <figure><img></figure>-completeness <span><span>[1]</span></span> and later <figure><img></figure>-completeness <span><span>[2]</span></span> for this problem, but both of these proofs turned out to be incorrect.</p><p>We revisit the problem of the exact classification of the complexity of realizability for <figure><img></figure> through the lens of seemingly weaker fragments. While we cannot settle the question for <figure><img></figure>, we study a subfragment of it consisting of formulas of the form <figure><img></figure>, where <em>α</em> is a present formula over system variables and <em>ψ</em> contains Next as the only temporal operator. We prove that the realizability problem for this new fragment, which we call <figure><img></figure>, is <figure><img></figure>-complete, and observe that this fragment is equirealizable to existing more expressive fragments, such as the class <figure><img></figure> <span><span>[3]</span></span>.</p><p>Furthermore, we revisit the techniques used in the purported proof of <figure><img></figure>-completeness of Arteche and Hermo <span><span>[1]</span></span>, and observe that, while incorrect in their original claims, their proofs can be modified to classify the complexity of <em>strong satisfiability</em>, a necessary condition for realizability introduced by Kupferman, Sadigh, and Seshia <span><span>[4]</span></span>. We prove that, with regards to strong satisfiability, the fragments <figure><img></figure> and <figure><img></figure> are in fact equivalent under polynomial-time many-one reductions.</p></div>","PeriodicalId":48797,"journal":{"name":"Journal of Logical and Algebraic Methods in Programming","volume":"141 ","pages":"Article 101002"},"PeriodicalIF":0.7,"publicationDate":"2024-07-31","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141936878","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}
{"title":"Efficient analysis of belief properties in process algebra","authors":"Zahra Moezkarimi , Fatemeh Ghassemi","doi":"10.1016/j.jlamp.2024.101001","DOIUrl":"10.1016/j.jlamp.2024.101001","url":null,"abstract":"<div><p>Protocols are typically specified in an operational manner by specifying the communication patterns among the different involved principals. However, many properties are of epistemic nature, e.g., what each principal believes after having seen a run of the protocol. We elaborate on a unified algebraic framework suitable for epistemic reasoning about operational protocols. This reasoning framework is based on a logic of beliefs and allows for the operational specification of untruthful communications. The information recorded in the semantic models to support reasoning about the interaction between the operational and epistemic aspects intensifies the state-space explosion. We propose an efficient on-the-fly reduction for such a unifying framework by providing a set of operational rules. These operational rules automatically generate efficient reduced semantics for a class of epistemic properties, specified in a rich extension of modal <em>μ</em>-calculus with past and belief modality, and can potentially reduce an infinite state space into a finite one. We reformulate and prove criteria that guarantee belief consistency for credulous agents, i.e., agents that are ready to believe what is told unless it is logically inconsistent. We adjust our reduction so that the belief consistency of an original model is preserved. We prove the soundness and completeness result for the specified class of properties.</p></div>","PeriodicalId":48797,"journal":{"name":"Journal of Logical and Algebraic Methods in Programming","volume":"141 ","pages":"Article 101001"},"PeriodicalIF":0.7,"publicationDate":"2024-07-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141638494","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}
Karima Makhlouf , Sami Zhioua , Catuscia Palamidessi
{"title":"When causality meets fairness: A survey","authors":"Karima Makhlouf , Sami Zhioua , Catuscia Palamidessi","doi":"10.1016/j.jlamp.2024.101000","DOIUrl":"https://doi.org/10.1016/j.jlamp.2024.101000","url":null,"abstract":"<div><p>Addressing the problem of fairness is crucial to safely using machine learning algorithms to support decisions that have a critical impact on people's lives, such as job hiring, child maltreatment, disease diagnosis, loan granting, etc. Several notions of fairness have been defined and examined in the past decade, such as statistical parity and equalized odds. However, the most recent notions of fairness are causal-based and reflect the now widely accepted idea that using causality is necessary to appropriately address the problem of fairness. This paper examines an exhaustive list of causal-based fairness notions and studies their applicability in real-world scenarios. As most causal-based fairness notions are defined in terms of non-observable quantities (e.g., interventions and counterfactuals), their deployment in practice requires computing or estimating those quantities using observational data. This paper offers a comprehensive report of the different approaches to infer causal quantities from observational data, including identifiability (Pearl's SCM framework) and estimation (potential outcome framework). The main contributions of this survey paper are (1) a guideline to help select a suitable causal fairness notion given a specific real-world scenario and (2) a ranking of the fairness notions according to Pearl's causation ladder, indicating how difficult it is to deploy each notion in practice.</p></div>","PeriodicalId":48797,"journal":{"name":"Journal of Logical and Algebraic Methods in Programming","volume":"141 ","pages":"Article 101000"},"PeriodicalIF":0.7,"publicationDate":"2024-06-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141486837","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}
{"title":"Formal definitions and proofs for partial (co)recursive functions","authors":"Horaţiu Cheval , David Nowak , Vlad Rusu","doi":"10.1016/j.jlamp.2024.100999","DOIUrl":"https://doi.org/10.1016/j.jlamp.2024.100999","url":null,"abstract":"<div><p>Partial functions are a key concept in programming. Without partiality a programming language has limited expressiveness – it is not Turing-complete, hence, it excludes some constructs such as while-loops. In functional programming languages, partiality mostly originates from the non-termination of recursive functions. Corecursive functions are another source of partiality: here, the issue is not termination, but the inability to produce arbitrary large, finite approximations of a theoretically infinite output.</p><p>Partial functions have been formally studied in the branch of theoretical computer science called domain theory. In this paper we propose to step up the level of formality by using the Coq proof assistant. The main difficulty is that Coq requires all functions to be total, since partiality would break the soundness of its underlying logic. We propose practical solutions for this issue, and others, which appear when one attempts to define and reason about partial (co)recursive functions in a total functional language.</p></div>","PeriodicalId":48797,"journal":{"name":"Journal of Logical and Algebraic Methods in Programming","volume":"141 ","pages":"Article 100999"},"PeriodicalIF":0.9,"publicationDate":"2024-06-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141429499","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}