204,647 research outputs found
Automated Generation of Non-Linear Loop Invariants Utilizing Hypergeometric Sequences
Analyzing and reasoning about safety properties of software systems becomes
an especially challenging task for programs with complex flow and, in
particular, with loops or recursion. For such programs one needs additional
information, for example in the form of loop invariants, expressing properties
to hold at intermediate program points. In this paper we study program loops
with non-trivial arithmetic, implementing addition and multiplication among
numeric program variables. We present a new approach for automatically
generating all polynomial invariants of a class of such programs. Our approach
turns programs into linear ordinary recurrence equations and computes closed
form solutions of these equations. These closed forms express the most precise
inductive property, and hence invariant. We apply Gr\"obner basis computation
to obtain a basis of the polynomial invariant ideal, yielding thus a finite
representation of all polynomial invariants. Our work significantly extends the
class of so-called P-solvable loops by handling multiplication with the loop
counter variable. We implemented our method in the Mathematica package Aligator
and showcase the practical use of our approach.Comment: A revised version of this paper is published in the proceedings of
ISSAC 201
Recurrence extraction for functional programs through call-by-push-value
The main way of analyzing the complexity of a program is that of extracting
and solving a recurrence that expresses its running time in terms of the size
of its input. We develop a method that automatically extracts such recurrences
from the syntax of higher-order recursive functional programs. The resulting
recurrences, which are programs in a call-by-name language with recursion,
explicitly compute the running time in terms of the size of the input. In order
to achieve this in a uniform way that covers both call-by-name and
call-by-value evaluation strategies, we use Call-by-Push-Value (CBPV) as an
intermediate language. Finally, we use domain theory to develop a denotational
cost semantics for the resulting recurrences.Comment: POPL 202
Generating rate equations for complex enzyme systems by a computer-assisted systematic method
<p>Abstract</p> <p>Background</p> <p>While the theory of enzyme kinetics is fundamental to analyzing and simulating biochemical systems, the derivation of rate equations for complex mechanisms for enzyme-catalyzed reactions is cumbersome and error prone. Therefore, a number of algorithms and related computer programs have been developed to assist in such derivations. Yet although a number of algorithms, programs, and software packages are reported in the literature, one or more significant limitation is associated with each of these tools. Furthermore, none is freely available for download and use by the community.</p> <p>Results</p> <p>We have implemented an algorithm based on the schematic method of King and Altman (KA) that employs the topological theory of linear graphs for systematic generation of valid reaction patterns in a GUI-based stand-alone computer program called <it>KAPattern</it>. The underlying algorithm allows for the assumption steady-state, rapid equilibrium-binding, and/or irreversibility for individual steps in catalytic mechanisms. The program can automatically generate MathML and MATLAB output files that users can easily incorporate into simulation programs.</p> <p>Conclusion</p> <p>A computer program, called <it>KAPattern</it>, for generating rate equations for complex enzyme system is a freely available and can be accessed at <url>http://www.biocoda.org</url>.</p
Analyzing Behavioural Scenarios over Tabular Specifications Using Model Checking
Tabular notations, in particular SCR specifications, have proved to be a
useful means for formally describing complex requirements. The SCR method
offers a powerful family of analysis tools, known as the SCR Toolset, but its
availability is restricted by the Naval Research Laboratory of the USA. This
toolset applies different kinds of analysis considering the whole set of
behaviours associated with a requirements specification. In this paper we
present a tool for describing and analyzing SCR requirements descriptions, that
complements the SCR Toolset in two aspects. First, its use is not limited by
any institution, and resorts to a standard model checking tool for analysis;
and second, it allows to concentrate the analysis to particular sets of
behaviours (subsets of the whole specifications), that correspond to particular
scenarios explicitly mentioned in the specification. We take an operational
notation that allows the engineer to describe behavioural "scenarios" by means
of programs, and provide a translation into Promela to perform the analysis via
Spin, an efficient off-the-shelf model checker freely available. In addition,
we apply the SCR method to a Pacemaker system and we use its tabular
specification as a running example of this article.Comment: In Proceedings LAFM 2013, arXiv:1401.056
- …