Inferring Program Specifications in Polynomial-Time
نویسنده
چکیده
We consider the problem of automatically inferring properties of programs. Our approach is to explore the application of familiar type inference principles to a \type system" suuciently expressive that the typing problem is eeectively the checking of program speciications. We use familiar syntax-directed type inference rules to give a polynomial-time procedure for inferring type theorems in this rich type system. We discuss examples of simple functional programs and the speciication information this procedure automatically infers. The enriched notion of type allows the deenition of any recursively enumerable set as a type, and includes argument-dependent output types for functions. The inference procedure is capable for example of automatically inferring that an insertion sort program always returns a sorted permutation of its input.
منابع مشابه
Analysing All Polynomial Equations in Z2w
In this paper, we present methods for checking and inferring all valid polynomial relations in Z2w . In contrast to the infinite field Q, Z2w is finite and hence allows for finitely many polynomial functions only. In this paper we show, that checking the validity of a polynomial invariant over Z2w is, though decidable, only PSPACE-complete. Apart from the impracticable algorithm for the theoret...
متن کاملInferring Channel Buffer Bounds Via Linear Programming
We present a static analysis for inferring the maximum amount of buffer space used by a program consisting of concurrently running processes communicating via buffered channels. We reduce the problem to linear programming by casting the analysis as a fractional capability calculus system. Our analysis can reason about buffers used by multiple processes concurrently, and runs in time polynomial ...
متن کاملInferring Programmer Intent and Related Errors from Software
Software is difficult to write and maintain. Much of the challenge in developing a program lies in specifying it—understanding precisely what it should be doing. Both human-oriented tasks (like fixing a bug) and automated tasks (like mechanical verification) require knowledge of a program’s intended behavior. For the vast majority of software projects, though, complete and well-documented speci...
متن کاملA Minimum Spanning Tree Framework for Inferring Phylogenies
A Minimum Spanning Tree Framework for Inferring Phylogenies by Daniel Giannico Adkins Doctor of Philosophy in Computer Science University of California, Berkeley Professor Satish B. Rao, Chair This dissertation discusses how to write efficient, deterministic programs to infer phylogenetic trees. These programs are based on a theoretically optimal polynomial time algorithm. The programs are prac...
متن کاملA Unified Approach for Design of Lp Polynomial Algorithms
By summarizing Khachiyan's algorithm and Karmarkar's algorithm forlinear program (LP) a unified methodology for the design of polynomial-time algorithms for LP is presented in this paper. A key concept is the so-called extended binary search (EBS) algorithm introduced by the author. It is used as a unified model to analyze the complexities of the existing modem LP algorithms and possibly, help ...
متن کامل