51 research outputs found
Flowchart Programs, Regular Expressions, and Decidability of Polynomial Growth-Rate
We present a new method for inferring complexity properties for a class of
programs in the form of flowcharts annotated with loop information.
Specifically, our method can (soundly and completely) decide if computed values
are polynomially bounded as a function of the input; and similarly for the
running time. Such complexity properties are undecidable for a Turing-complete
programming language, and a common work-around in program analysis is to settle
for sound but incomplete solutions. In contrast, we consider a class of
programs that is Turing-incomplete, but strong enough to include several
challenges for this kind of analysis. For a related language that has
well-structured syntax, similar to Meyer and Ritchie's LOOP programs, the
problem has been previously proved to be decidable. The analysis relied on the
compositionality of programs, hence the challenge in obtaining similar results
for flowchart programs with arbitrary control-flow graphs. Our answer to the
challenge is twofold: first, we propose a class of loop-annotated flowcharts,
which is more general than the class of flowcharts that directly represent
structured programs; secondly, we present a technique to reuse the ideas from
the work on tructured programs and apply them to such flowcharts. The technique
is inspired by the classic translation of non-deterministic automata to regular
expressions, but we obviate the exponential cost of constructing such an
expression, obtaining a polynomial-time analysis. These ideas may well be
applicable to other analysis problems.Comment: In Proceedings VPT 2016, arXiv:1607.0183
Tight polynomial worst-case bounds for loop programs
In 2008, Ben-Amram, Jones and Kristiansen showed that for a simple programming language - representing non-deterministic imperative programs with bounded loops, and arithmetics limited to addition and multiplication - it is possible to decide precisely whether a program has certain growth-rate properties, in particular whether a computed value, or the program's running time, has a polynomial growth rate. A natural and intriguing problem was to move from answering the decision problem to giving a quantitative result, namely, a tight polynomial upper bound. This paper shows how to obtain asymptotically-tight, multivariate, disjunctive polynomial bounds for this class of programs. This is a complete solution: whenever a polynomial bound exists it will be found. A pleasant surprise is that the algorithm is quite simple; but it relies on some subtle reasoning. An important ingredient in the proof is the forest factorization theorem, a strong structural result on homomorphisms into a finite monoid
Methods for Structural Pattern Recognition: Complexity and Applications
Katedra kybernetik
Tight polynomial bounds for Loop programs in polynomial space
We consider the following problem: given a program, find tight asymptotic
bounds on the values of some variables at the end of the computation (or at any given
program point) in terms of its input values. We focus on the case of polynomially-bounded
variables, and on a weak programming language for which we have recently shown that
tight bounds for polynomially-bounded variables are computable. These bounds are sets
of multivariate polynomials. While their computability has been settled, the complexity
of this program-analysis problem remained open. In this paper, we show the problem to
be PSPACE-complete. The main contribution is a new, space-efficient analysis algorithm.
This algorithm is obtained in a few steps. First, we develop an algorithm for univariate
bounds, a sub-problem which is already PSPACE-hard. Then, a decision procedure for
multivariate bounds is achieved by reducing this problem to the univariate case; this
reduction is orthogonal to the solution of the univariate problem and uses observations on
the geometry of a set of vectors that represent multivariate bounds. Finally, we transform
the univariate-bound algorithm to produce multivariate bounds
Foundations of Software Science and Computation Structures
This open access book constitutes the proceedings of the 22nd International Conference on Foundations of Software Science and Computational Structures, FOSSACS 2019, which took place in Prague, Czech Republic, in April 2019, held as part of the European Joint Conference on Theory and Practice of Software, ETAPS 2019. The 29 papers presented in this volume were carefully reviewed and selected from 85 submissions. They deal with foundational research with a clear significance for software science
Tools and Algorithms for the Construction and Analysis of Systems
This open access two-volume set constitutes the proceedings of the 27th International Conference on Tools and Algorithms for the Construction and Analysis of Systems, TACAS 2021, which was held during March 27 – April 1, 2021, as part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2021. The conference was planned to take place in Luxembourg and changed to an online format due to the COVID-19 pandemic. The total of 41 full papers presented in the proceedings was carefully reviewed and selected from 141 submissions. The volume also contains 7 tool papers; 6 Tool Demo papers, 9 SV-Comp Competition Papers. The papers are organized in topical sections as follows: Part I: Game Theory; SMT Verification; Probabilities; Timed Systems; Neural Networks; Analysis of Network Communication. Part II: Verification Techniques (not SMT); Case Studies; Proof Generation/Validation; Tool Papers; Tool Demo Papers; SV-Comp Tool Competition Papers
Tools and Algorithms for the Construction and Analysis of Systems
This open access two-volume set constitutes the proceedings of the 26th International Conference on Tools and Algorithms for the Construction and Analysis of Systems, TACAS 2020, which took place in Dublin, Ireland, in April 2020, and was held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2020. The total of 60 regular papers presented in these volumes was carefully reviewed and selected from 155 submissions. The papers are organized in topical sections as follows: Part I: Program verification; SAT and SMT; Timed and Dynamical Systems; Verifying Concurrent Systems; Probabilistic Systems; Model Checking and Reachability; and Timed and Probabilistic Systems. Part II: Bisimulation; Verification and Efficiency; Logic and Proof; Tools and Case Studies; Games and Automata; and SV-COMP 2020
- …