Engel Lefaucheux, Joël Ouaknine, David Purser, James Worrell
{"title":"Porous invariants for linear systems","authors":"Engel Lefaucheux, Joël Ouaknine, David Purser, James Worrell","doi":"10.1007/s10703-024-00444-3","DOIUrl":"https://doi.org/10.1007/s10703-024-00444-3","url":null,"abstract":"<p>We introduce the notion of <i>porous invariants</i> for multipath affine loops over the integers. These are invariants definable in (fragments of) Presburger arithmetic and, as such, lack certain tame geometrical properties, such a convexity and connectedness. Nevertheless, we show that in many cases such invariants can be automatically synthesised, and moreover can be used to settle reachability questions for various non-trivial classes of affine loops and target sets. For the class of <span>(mathbb {Z})</span>-linear invariants (those defined as conjunctions of linear equations with integer coefficients), we show that a strongest such invariant can be computed in polynomial time. For the more general class of <span>(mathbb {N})</span>-semi-linear invariants (those defined as Boolean combinations of linear inequalities with integer coefficients), such a strongest invariant need not exist. Here we show that for point targets the existence of a separating invariant is undecidable in general. However we show that such separating invariants can be computed either by restricting the number of program variables or by restricting from multipath to single-path loops. Additionally, we consider porous targets, represented as <span>(mathbb {Z})</span>-semi-linear sets (those defined as Boolean combinations of equations with integer coefficients). We show that an invariant can be computed providing the target spans the whole space. We present our tool <span>porous</span>, which computes porous invariants.</p>","PeriodicalId":12430,"journal":{"name":"Formal Methods in System Design","volume":"102 1","pages":""},"PeriodicalIF":0.8,"publicationDate":"2024-02-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"140009976","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}
Sebastian Junges, Erika Ábrahám, Christian Hensel, Nils Jansen, Joost-Pieter Katoen, Tim Quatmann, Matthias Volk
{"title":"Parameter synthesis for Markov models: covering the parameter space","authors":"Sebastian Junges, Erika Ábrahám, Christian Hensel, Nils Jansen, Joost-Pieter Katoen, Tim Quatmann, Matthias Volk","doi":"10.1007/s10703-023-00442-x","DOIUrl":"https://doi.org/10.1007/s10703-023-00442-x","url":null,"abstract":"<p>Markov chain analysis is a key technique in formal verification. A practical obstacle is that all probabilities in Markov models need to be known. However, system quantities such as failure rates or packet loss ratios, etc. are often not—or only partially—known. This motivates considering parametric models with transitions labeled with functions over parameters. Whereas traditional Markov chain analysis relies on a single, fixed set of probabilities, analysing parametric Markov models focuses on synthesising parameter values that establish a given safety or performance specification <span>(varphi )</span>. Examples are: what component failure rates ensure the probability of a system breakdown to be below 0.00000001?, or which failure rates maximise the performance, for instance the throughput, of the system? This paper presents various analysis algorithms for parametric discrete-time Markov chains and Markov decision processes. We focus on three problems: (a) do all parameter values within a given region satisfy <span>(varphi )</span>?, (b) which regions satisfy <span>(varphi )</span> and which ones do not?, and (c) an approximate version of (b) focusing on covering a large fraction of all possible parameter values. We give a detailed account of the various algorithms, present a software tool realising these techniques, and report on an extensive experimental evaluation on benchmarks that span a wide range of applications.</p>","PeriodicalId":12430,"journal":{"name":"Formal Methods in System Design","volume":"1 1","pages":""},"PeriodicalIF":0.8,"publicationDate":"2024-02-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"139902312","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}
Saumya Shankar, Ankit Pradhan, Srinivas Pinisetty, Antoine Rollet, Yliès Falcone
{"title":"Bounded-memory runtime enforcement with probabilistic and performance analysis","authors":"Saumya Shankar, Ankit Pradhan, Srinivas Pinisetty, Antoine Rollet, Yliès Falcone","doi":"10.1007/s10703-024-00446-1","DOIUrl":"https://doi.org/10.1007/s10703-024-00446-1","url":null,"abstract":"<p>Runtime Enforcement (RE) is a technique aimed at monitoring the executions of a system at runtime and ensure its compliance against a set of formal requirements (properties). RE employs an enforcer (a safety wrapper for the system) which modifies the (untrustworthy) output by performing actions such as delaying (by storing/buffering) and suppressing events, when needed. In this paper, to handle practical applications with memory constraints, we propose a new RE paradigm where the memory of the enforcer is bounded/finite. Besides the property to be enforced, the user specifies a bound on the enforcer memory. Bounding the memory poses various challenges such as how to handle the situation when the memory is full, how to optimally discard events from the buffer to accommodate new events and let the enforcer continue operating. We define the bounded-memory RE problem and develop a framework for any regular property. All of our results are formalized and proved. We also analyze probabilistically how much memory is required on an average case for a given regular property, such that the output of the bounded enforcer is equal to that of the unbounded enforcer up to a fixed probability. The proposed framework is implemented and a case study is worked out to show the practicability and usefulness of the bounded enforcer in the real-world and to show the usage of the aforementioned probabilistic analysis on them. The performance is evaluated via some examples from application scenarios and it indicates linear changes in the execution time of the enforcers in response to increases in trace length, property complexity, and buffer sizes.</p>","PeriodicalId":12430,"journal":{"name":"Formal Methods in System Design","volume":"18 1","pages":""},"PeriodicalIF":0.8,"publicationDate":"2024-02-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"139759969","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}
Masaomi Yamaguchi, Kazutaka Matsuda, Cristina David, Meng Wang
{"title":"Synbit: synthesizing bidirectional programs using unidirectional sketches","authors":"Masaomi Yamaguchi, Kazutaka Matsuda, Cristina David, Meng Wang","doi":"10.1007/s10703-023-00436-9","DOIUrl":"https://doi.org/10.1007/s10703-023-00436-9","url":null,"abstract":"<p>We propose a technique for synthesizing bidirectional programs from the corresponding unidirectional code plus input/output examples. The core ideas are: (1) <i>constructing a sketch</i> using the given unidirectional program as a specification, and (2) <i>filling the sketch</i> in a modular fashion by exploiting the properties of bidirectional programs. These ideas are enabled by our choice of programming language, HOBiT, which is specifically designed to maintain the unidirectional program structure in bidirectional programming, and keep the parts that control bidirectional behavior modular. To evaluate our approach, we implemented it in a tool called <span>Synbit</span> and used it to generate bidirectional programs for intricate microbenchmarks, as well as for a few larger, more realistic problems. We also compared <span>Synbit</span> to a state-of-the-art unidirectional synthesis tool on the task of synthesizing backward computations. This is an extended version of the paper “Synbit: Synthesizing Bidirectional Programs using Unidirectional Sketches”, published at OOPSLA 2021. In addition to the OOPSLA’21 paper, this journal will contain additional formalization and detailed examples.\u0000</p>","PeriodicalId":12430,"journal":{"name":"Formal Methods in System Design","volume":"324 1","pages":""},"PeriodicalIF":0.8,"publicationDate":"2024-01-29","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"139588472","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":"Termination of triangular polynomial loops","authors":"Marcel Hark, Florian Frohn, Jürgen Giesl","doi":"10.1007/s10703-023-00440-z","DOIUrl":"https://doi.org/10.1007/s10703-023-00440-z","url":null,"abstract":"<p>We consider the problem of proving termination for triangular weakly non-linear loops (<i>twn</i>-loops) over some ring <span>(mathcal {S})</span> like <span>(mathbb {Z})</span>, <span>(mathbb {Q})</span>, or <span>(mathbb {R})</span>. The guard of such a loop is an arbitrary quantifier-free Boolean formula over (possibly non-linear) polynomial inequations, and the body is a single assignment of the form <span>(begin{bmatrix} x_1 ldots x_d end{bmatrix} leftarrow begin{bmatrix} c_1 cdot x_1 + p_1 ldots c_d cdot x_d + p_d end{bmatrix})</span> where each <span>(x_i)</span> is a variable, <span>(c_i in mathcal {S})</span>, and each <span>(p_i)</span> is a (possibly non-linear) polynomial over <span>(mathcal {S})</span> and the variables <span>(x_{i+1},ldots ,x_{d})</span>. </p><p>We show that the question of termination can be reduced to the existential fragment of the first-order theory of <span>(mathcal {S})</span>. For loops over <span>(mathbb {R})</span>, our reduction implies decidability of termination. For loops over <span>(mathbb {Z})</span> and <span>(mathbb {Q})</span>, it proves semi-decidability of non-termination.</p><p>Furthermore, we present a transformation to convert certain non-<i>twn</i>-loops into <i>twn</i>-form. Then the original loop terminates iff the transformed loop terminates over a specific subset of <span>(mathbb {R})</span>, which can also be checked via our reduction. Moreover, we formalize a technique to <i>linearize</i> (the updates of) <i>twn</i>-loops in our setting and analyze its complexity. Based on these results, we prove complexity bounds for the termination problem of <i>twn</i>-loops as well as <i>tight</i> bounds for two important classes of loops which can <i>always</i> be transformed into <i>twn</i>-loops.</p><p>Finally, we show that there is an important class of linear loops. where our decision procedure results in an <i>efficient</i> procedure for termination analysis, i.e., where the parameterized complexity of deciding termination is <i>polynomial</i>.</p>","PeriodicalId":12430,"journal":{"name":"Formal Methods in System Design","volume":"1 1","pages":""},"PeriodicalIF":0.8,"publicationDate":"2023-12-04","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"138539757","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":"Termination of triangular polynomial loops","authors":"Marcel Hark, Florian Frohn, Jürgen Giesl","doi":"10.1007/s10703-023-00440-z","DOIUrl":"https://doi.org/10.1007/s10703-023-00440-z","url":null,"abstract":"<p>We consider the problem of proving termination for triangular weakly non-linear loops (<i>twn</i>-loops) over some ring <span>(mathcal {S})</span> like <span>(mathbb {Z})</span>, <span>(mathbb {Q})</span>, or <span>(mathbb {R})</span>. The guard of such a loop is an arbitrary quantifier-free Boolean formula over (possibly non-linear) polynomial inequations, and the body is a single assignment of the form <span>(begin{bmatrix} x_1 ldots x_d end{bmatrix} leftarrow begin{bmatrix} c_1 cdot x_1 + p_1 ldots c_d cdot x_d + p_d end{bmatrix})</span> where each <span>(x_i)</span> is a variable, <span>(c_i in mathcal {S})</span>, and each <span>(p_i)</span> is a (possibly non-linear) polynomial over <span>(mathcal {S})</span> and the variables <span>(x_{i+1},ldots ,x_{d})</span>. </p><p>We show that the question of termination can be reduced to the existential fragment of the first-order theory of <span>(mathcal {S})</span>. For loops over <span>(mathbb {R})</span>, our reduction implies decidability of termination. For loops over <span>(mathbb {Z})</span> and <span>(mathbb {Q})</span>, it proves semi-decidability of non-termination.</p><p>Furthermore, we present a transformation to convert certain non-<i>twn</i>-loops into <i>twn</i>-form. Then the original loop terminates iff the transformed loop terminates over a specific subset of <span>(mathbb {R})</span>, which can also be checked via our reduction. Moreover, we formalize a technique to <i>linearize</i> (the updates of) <i>twn</i>-loops in our setting and analyze its complexity. Based on these results, we prove complexity bounds for the termination problem of <i>twn</i>-loops as well as <i>tight</i> bounds for two important classes of loops which can <i>always</i> be transformed into <i>twn</i>-loops.</p><p>Finally, we show that there is an important class of linear loops. where our decision procedure results in an <i>efficient</i> procedure for termination analysis, i.e., where the parameterized complexity of deciding termination is <i>polynomial</i>.</p>","PeriodicalId":12430,"journal":{"name":"Formal Methods in System Design","volume":"1 1","pages":""},"PeriodicalIF":0.8,"publicationDate":"2023-12-04","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"138539751","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":"Extending rely-guarantee thinking to handle real-time scheduling","authors":"Cliff B. Jones, Alan Burns","doi":"10.1007/s10703-023-00441-y","DOIUrl":"https://doi.org/10.1007/s10703-023-00441-y","url":null,"abstract":"<p>The reference point for developing any artefact is its specification; to develop software formally, a formal specification is required. For sequential programs, pre and post conditions (together with abstract objects) suffice; rely and guarantee conditions extend the scope of formal development approaches to tackle concurrency. In addition, real-time systems need ways of both requiring progress and relating that progress to some notion of time. This paper extends rely-guarantee ideas to cope with specifications of—and assumptions about—real-time schedulers. Furthermore it shows how the approach helps identify and specify fault-tolerance aspects of such schedulers by systematically challenging the assumptions.</p>","PeriodicalId":12430,"journal":{"name":"Formal Methods in System Design","volume":"13 1","pages":""},"PeriodicalIF":0.8,"publicationDate":"2023-11-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"138539729","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":"Extending rely-guarantee thinking to handle real-time scheduling","authors":"Cliff B. Jones, Alan Burns","doi":"10.1007/s10703-023-00441-y","DOIUrl":"https://doi.org/10.1007/s10703-023-00441-y","url":null,"abstract":"<p>The reference point for developing any artefact is its specification; to develop software formally, a formal specification is required. For sequential programs, pre and post conditions (together with abstract objects) suffice; rely and guarantee conditions extend the scope of formal development approaches to tackle concurrency. In addition, real-time systems need ways of both requiring progress and relating that progress to some notion of time. This paper extends rely-guarantee ideas to cope with specifications of—and assumptions about—real-time schedulers. Furthermore it shows how the approach helps identify and specify fault-tolerance aspects of such schedulers by systematically challenging the assumptions.</p>","PeriodicalId":12430,"journal":{"name":"Formal Methods in System Design","volume":"13 1","pages":""},"PeriodicalIF":0.8,"publicationDate":"2023-11-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"138539684","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":"Church synthesis on register automata over linearly ordered data domains","authors":"Léo Exibard, Emmanuel Filiot, Ayrat Khalimov","doi":"10.1007/s10703-023-00435-w","DOIUrl":"https://doi.org/10.1007/s10703-023-00435-w","url":null,"abstract":"","PeriodicalId":12430,"journal":{"name":"Formal Methods in System Design","volume":"75 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-10-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"136352759","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":"Thread-modular counter abstraction: automated safety and termination proofs of parameterized software by reduction to sequential program verification","authors":"Thomas Pani, Georg Weissenbacher, Florian Zuleger","doi":"10.1007/s10703-023-00439-6","DOIUrl":"https://doi.org/10.1007/s10703-023-00439-6","url":null,"abstract":"Abstract Parameterized programs are composed of an arbitrary number of concurrent, infinite-state threads. Automated safety and liveness proofs of such parameterized software are hard; state-of-the-art methods for their formal verification rely on intricate abstractions and complicated proof techniques that impede automation. In this paper, we introduce thread-modular counter abstraction (TMCA), a lean new abstraction technique to replace the existing heavy proof machinery. TMCA is a structured abstraction framework built from a novel combination of counter abstraction , thread-modular reasoning , and predicate abstraction . Its major strength lies in reducing the parameterized verification problem to the sequential setting, for which powerful proof procedures, efficient heuristics, and effective automated tools have been developed over the past decades. In this work, we first introduce the TMCA abstraction paradigm, then present a fully automated method for parameterized safety proofs, and finally discuss its application to automated termination and liveness proofs of parameterized software.","PeriodicalId":12430,"journal":{"name":"Formal Methods in System Design","volume":"47 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-10-06","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"135346746","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}