Skip to main content

On Automated Program Construction and Verification

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 6120))

Abstract

A new approach for automating the 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.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Abrial, J.-R.: The B-Book. Cambridge University Press, Cambridge (1996)

    Book  MATH  Google Scholar 

  2. Back, R.-J., von Wright, J.: Refinement Calculus: A Systematic Introduction. Springer, Heidelberg (1998)

    MATH  Google Scholar 

  3. Berghammer, R.: Combining Relational Calculus and the Dijkstra-Gries Method for Deriving Relational Programs. Information Sciences 119, 155–171 (1999)

    Article  MATH  MathSciNet  Google Scholar 

  4. Berghammer, R., Leoniuk, B., Milanese, U.: Implementation of Relation Algebra using Binary Decision Diagrams. In: de Swart, H. (ed.) RelMiCS 2001. LNCS, vol. 2561, pp. 241–257. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  5. Berghammer, R., Neumann, F.: RelView – an OBDD-based computer algebra system for relations. In: Ganzha, V.G., Mayr, E.W., Vorozhtsov, E.V. (eds.) CASC 2005. LNCS, vol. 3718, pp. 40–51. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  6. Berghammer, R.: Applying Relation Algebra and RelView to Solve Problems on Orders and Lattices. Acta Informatica 45, 211–236 (2008)

    Article  MATH  MathSciNet  Google Scholar 

  7. Cormen, T.H., Leiserson, C.E., Rivest, D.L., Stein, C.: Introduction to Algorithms, 3rd edn. The MIT Press, Cambridge (2009)

    MATH  Google Scholar 

  8. Desharnais, J., Struth, G.: Modal Semirings Revisited. In: Audebaud, P., Paulin-Mohring, C. (eds.) MPC 2008. LNCS, vol. 5133, pp. 360–387. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  9. Dijkstra, E.W.: A Discipline of Programming. Prentice-Hall, Englewood Cliffs (1976)

    MATH  Google Scholar 

  10. Floyd, R.W.: Assigning Meanings to Programs. In: Proc. AMS Symposia on Applied Mathematics, vol. 19, pp. 19–31 (1967)

    Google Scholar 

  11. Gries, D.: The Science of Computer Programming. Springer, Heidelberg (1981)

    Google Scholar 

  12. Hoare, C.A.R.: An Axiomatic Basis for Computer Programming. Communications of the ACM 12(10), 576–580 (1969)

    Article  MATH  Google Scholar 

  13. Höfner, P., Struth, G.: Algebraic Reasoning with Prover9 (2009), www.dcs.shef.ac.uk/~georg/ka/

  14. Höfner, P., Struth, G.: Automated Reasoning in Kleene Algebra. In: Pfenning, P. (ed.) CADE 2007. LNCS (LNAI), vol. 4603, pp. 279–294. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  15. Höfner, P., Struth, G.: On Automating the Calculus of Relations. In: Armando, A., Baumgartner, P., Dowek, G. (eds.) IJCAR 2008. LNCS (LNAI), vol. 5195, pp. 50–66. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  16. Jackson, D.: Software Abstractions. The MIT Press, Cambridge (2006)

    Google Scholar 

  17. Kozen, D.: Kleene Algebra with Tests. ACM Trans. Program. Lang. Syst. 19(3), 427–443 (1997)

    Article  Google Scholar 

  18. Maddux, R.D.: Relation Algebras. Elsevier, Amsterdam (2006)

    MATH  Google Scholar 

  19. McCune, W.: Prover9 and Mace4 (2007), www.prover9.org

  20. Ng, J.: Relation Algebras with Transitive Closure. Ph.D. thesis, University of California, Berkeley (1984)

    Google Scholar 

  21. Schmidt, G., Ströhlein, T.: Relations and Graphs. Springer, Heidelberg (1993)

    MATH  Google Scholar 

  22. Spivey, J.M.: The Z Notation: A Reference Manual. Prentice-Hall, Englewood Cliffs (2006)

    Google Scholar 

  23. Szpilrajn, E.: Sur l’extension de l’ordre partiel. Fundamenta Math. 16, 386–389 (1930)

    MATH  Google Scholar 

  24. Tarski, A.: On the Calculus of Relations. J. Symbolic Logic 6, 73–89 (1941)

    Article  MATH  MathSciNet  Google Scholar 

  25. Warshall, S.: A Theorem on Boolean Matrices. Journal of the ACM 9, 11–12 (1962)

    Article  MATH  MathSciNet  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2010 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Berghammer, R., Struth, G. (2010). On Automated Program Construction and Verification. In: Bolduc, C., Desharnais, J., Ktari, B. (eds) Mathematics of Program Construction. MPC 2010. Lecture Notes in Computer Science, vol 6120. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-13321-3_4

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-13321-3_4

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-13320-6

  • Online ISBN: 978-3-642-13321-3

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics