Linear, Polynomial or Exponential? Complexity Inference in Polynomial Time

  • Authors:
  • Amir M. Ben-Amram;Neil D. Jones;Lars Kristiansen

  • Affiliations:
  • School of Computer Science, Tel-Aviv Academic College, Israel;DIKU, the University of Copenhagen, Denmark;Department of Mathematics, University of Oslo, Norway

  • Venue:
  • CiE '08 Proceedings of the 4th conference on Computability in Europe: Logic and Theory of Algorithms
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

We present a new method for inferring complexity properties for imperative programs with bounded loops. The properties handled are: polynomial (or linear) boundedness of computed values, as a function of the input; and similarly for the running time.It is well known that complexity properties are undecidable for a Turing-complete programming language. Much work in program analysis overcomes this obstacle by relaxing the correctness notion: one does not ask for an algorithm that correctly decides whether the property of interest holds or not, but only for "yes" answers to be sound. In contrast, we reshaped the problem by defining a "core" programming language that is Turing-incomplete, but strong enough to model real programs of interest. For this language, our method is the first to give a certain answer; in other words, our inference is both sound and complete.The essence of the method is that every command is assigned a "complexity certificate", which is a concise specification of dependencies of output values on input. These certificates are produced by inference rules that are compositional and efficiently computable. The approach is inspired by previous work by Niggl and Wunderlich and by Jones and Kristiansen, but use a novel, more expressive kind of certificates.