Towards automatic imperative program synthesis through proof planning

An approach to automatic imperative program synthesis is presented which builds upon Gries' (1981) vision of developing a program and its proof hand in hand. To achieve this vision we rely on the proof planning paradigm, which enables the coupling of both heuristic and deductive components. By formalising structured programming and proof heuristics within the proof planning framework we focus the search for a correct program. Encoding these heuristics within a proof plan and strengthening proof planning, by embedding it within the conventional AI planning paradigm, enables a significant degree of automation.

[1]  Gerald Jay Sussman,et al.  A Computer Model of Skill Acquisition , 1975 .

[2]  H. Christensen Synthesis of Programs from Logic Specifications Using Programming Methodology , 1993, Struct. Program..

[3]  Richard Waldinger,et al.  Achieving several goals simultaneously , 1977 .

[4]  Michael J. C. Gordon,et al.  Mechanizing programming logics in higher order logic , 1989 .

[5]  Alan Bundy,et al.  The Use of Explicit Plans to Guide Inductive Proofs , 1988, CADE.

[6]  Johan Jeuring The derivation of hierarchies of algorithms on matrices , 1991 .

[7]  A. Bundy,et al.  Turning eureka steps into calculations in automatic program synthesis , 1990 .

[8]  Ian Green,et al.  Higher-Order Annotated Terms for Proof Search , 1996, TPHOLs.

[9]  Pierre Flener,et al.  A unified view of programming schemas and proof methods , 1999 .

[10]  Nachum Dershowitz,et al.  Synthetic Programming , 1985, Artificial Intelligence.

[11]  Alan Bundy,et al.  Automatic verification of functions with accumulating parameters , 1999, Journal of Functional Programming.

[12]  Frank van Harmelen,et al.  The Oyster-Clam System , 1990, CADE.

[13]  Robert S. Boyer,et al.  Computational Logic , 1990, ESPRIT Basic Research Series.

[14]  Zohar Manna,et al.  A Deductive Approach to Program Synthesis , 1979, TOPL.

[15]  Andrew Ireland,et al.  The Use of Planning Critics in Mechanizing Inductive Proofs , 1992, LPAR.

[16]  Krzysztof R. Apt,et al.  Ten Years of Hoare's Logic: A Survey—Part I , 1981, TOPL.

[17]  M. Gordon HOL: A Proof Generating System for Higher-Order Logic , 1988 .

[18]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[19]  Mike Jackson,et al.  Interactive Proof Critics , 1999, Formal Aspects of Computing.

[20]  Subbarao Kambhampati,et al.  Planning as Refinement Search: A Unified Framework for Evaluating Design Tradeoffs in Partial-Order Planning , 1995, Artif. Intell..

[21]  Alan Bundy,et al.  Logic Program Synthesis via Proof Planning , 1992, LOPSTR.

[22]  Richard J. Boulton,et al.  An Interface between Clam and HOL , 1998, TPHOLs.

[23]  Andrew Ireland,et al.  On the Automatic Discovery of Loop Invariants , 1997 .

[24]  Helen Lowe,et al.  Proof planning: A methodology for developing AI systems incorporating design issues , 1994, Artificial Intelligence for Engineering Design, Analysis and Manufacturing.

[25]  C. A. R. HOARE,et al.  An axiomatic basis for computer programming , 1969, CACM.

[26]  Edsger W. Dijkstra,et al.  The humble programmer , 1972, CACM.

[27]  Andrew Ireland,et al.  Invariant Discovery via Failed Proof Attempts , 1998, LOPSTR.

[28]  J. Strother Moore,et al.  An Industrial Strength Theorem Prover for a Logic Based on Common Lisp , 1997, IEEE Trans. Software Eng..

[29]  Natarajan Shankar,et al.  PVS: A Prototype Verification System , 1992, CADE.

[30]  Douglas R. Smith,et al.  KIDS: A Semiautomatic Program Development System , 1990, IEEE Trans. Software Eng..

[31]  David Gries,et al.  The Science of Programming , 1981, Text and Monographs in Computer Science.

[32]  Frank van Harmelen,et al.  Rippling: A Heuristic for Guiding Inductive Proofs , 1993, Artif. Intell..

[33]  Pierre Flener,et al.  Schema-guided synthesis of constraint logic programs , 1998, Proceedings 13th IEEE International Conference on Automated Software Engineering (Cat. No.98EX239).

[34]  Zohar Manna,et al.  Studies In Automatic Programming Logic , 1977 .

[35]  Betty H. C. Cheng,et al.  Applying Formal Methods in Automated Software Development , 1994 .