On Automated Program Construction and Verification

A new approach for automating the const construction and verification of imperative programs is presented. Based on the standard methods of Floyd, Dijkstra, Gries and Hoare, it supports proof and refutation games with automated theorem provers, model search tools and computer algebra systems combined with "hidden" domain-specific algebraic theories that have been designed and optimised for automation. The feasibility of this approach is demonstrated through fully automated correctness proofs of some classical algorithms: Warshall's transitive closure algorithm, reachability algorithms for digraphs, and Szpilrajn's algorithm for linear extensions of partial orders. Sophisticated mathematical methods that have been developed over decades could thus be integrated into push-button engineering technology.

[1]  E. Szpilrajn Sur l'extension de l'ordre partiel , 1930 .

[2]  Robert W. Floyd,et al.  Assigning Meanings to Programs , 1993 .

[3]  Rudolf Berghammer,et al.  Implementation of Relational Algebra Using Binary Decision Diagrams , 2001, RelMiCS.

[4]  J. Michael Spivey,et al.  The Z notation - a reference manual , 1992, Prentice Hall International Series in Computer Science.

[5]  Ronald L. Rivest,et al.  Introduction to Algorithms , 1990 .

[6]  Rudolf Berghammer,et al.  Applying relation algebra and RelView to solve problems on orders and lattices , 2008, Acta Informatica.

[7]  Frank Pfenning,et al.  Automated Deduction - CADE-21, 21st International Conference on Automated Deduction, Bremen, Germany, July 17-20, 2007, Proceedings , 2007, CADE.

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

[9]  W. Marsden I and J , 2012 .

[10]  W. D. Duthie Review: Alfred Tarski, On the Calculus of Relations , 1942 .

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

[12]  Gunther Schmidt,et al.  Relations and Graphs , 1993, EATCS Monographs on Theoretical Computer Science.

[13]  Gunther Schmidt,et al.  Relational Methods in Computer Science , 1999, Inf. Sci..

[14]  Roger D. Maddux,et al.  Relation Algebras , 1997, Relational Methods in Computer Science.

[15]  Georg Struth,et al.  Automated verification of refinement laws , 2009, Annals of Mathematics and Artificial Intelligence.

[16]  Frank Neumann,et al.  RelView - An OBDD-Based Computer Algebra System for Relations , 2005, CASC.

[17]  Alfred Tarski,et al.  Relational selves as self-affirmational resources , 2008 .

[18]  Larry Wos,et al.  What Is Automated Reasoning? , 1987, J. Autom. Reason..

[19]  Ralph-Johan Back,et al.  Refinement Calculus: A Systematic Introduction , 1998 .

[20]  Stephen Warshall,et al.  A Theorem on Boolean Matrices , 1962, JACM.

[21]  Kan Ching Ng,et al.  Relation algebras with transitive closure , 1984 .

[22]  Georg Struth,et al.  Modal Semirings Revisited , 2008, MPC.

[23]  Ronald L. Rivest,et al.  Introduction to Algorithms, third edition , 2009 .

[24]  Rudolf Berghammer Combining Relational Calculus and the Dijkstra-Gries Method for Deriving Relational Programs , 1999, Inf. Sci..

[25]  Dexter Kozen,et al.  Kleene algebra with tests , 1997, TOPL.

[26]  Frank Waters,et al.  The B Book , 1971 .

[27]  Georg Struth,et al.  On Automating the Calculus of Relations , 2008, IJCAR.

[28]  Georg Struth,et al.  Automated Reasoning in Kleene Algebra , 2007, CADE.