Automated Verification of Relational While-Programs

  • Rudolf Berghammer
  • Peter Höfner
  • Insa Stucke
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8428)


Software verification is essential for safety-critical systems. In this paper, we illustrate that some verification tasks can be done fully automatically. We show how to automatically verify imperative programs for relation-based discrete structures by combining relation algebra and the well-known assertion-based verification method with automated theorem proving. We present two examples in detail: a relational program for determining the reflexive-transitive closure and a topological sorting algorithm. We also treat the automatic verification of the equivalence of common-logical and relation-algebraic specifications.


Theorem Prover Relation Algebra Proof Obligation Total Correctness Automate Theorem 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Berghammer, R.: Combining relational calculus and the Dijkstra-Gries method for deriving relational programs. Information Sciences 119, 155–171 (1999)CrossRefzbMATHMathSciNetGoogle Scholar
  2. 2.
    Berghammer, R., Hoffmann, T.: Deriving relational programs for computing kernels by reconstructing a proof of Richardson’s theorem. Science of Computer Programming 38, 1–25 (2000)CrossRefzbMATHMathSciNetGoogle Scholar
  3. 3.
    Berghammer, R., Hoffmann, T.: Relational depth-first-search with applications. Information Sciences 139, 167–186 (2001)CrossRefzbMATHMathSciNetGoogle Scholar
  4. 4.
    Berghammer, R.: Applying relation algebra and Rel View to solve problems on orders and lattices. Acta Informatica 45, 211–236 (2008)CrossRefzbMATHMathSciNetGoogle Scholar
  5. 5.
    Berghammer, R., Struth, G.: On automated program construction and verification. In: Bolduc, C., Desharnais, J., Ktari, B. (eds.) MPC 2010. LNCS, vol. 6120, pp. 22–41. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  6. 6.
    Berghammer, R., Fischer, S.: Simple rectangle-based functional programs for computing reflexive-transitive closures. In: Kahl, W., Griffin, T.G. (eds.) RAMiCS 2012. LNCS, vol. 7560, pp. 114–129. Springer, Heidelberg (2012)Google Scholar
  7. 7.
    Bibel, W., Schmitt, P.: Automated deduction: A basis for applications. Applied Logic Series. Kluwer (1998)Google Scholar
  8. 8.
    Chin, L.H., Tarski, A.: Distributive and modular laws in the arithmetic of relation algebras. Univ. of California Publ. Math. (new series) 1, 341–384 (1951)MathSciNetGoogle Scholar
  9. 9.
    Dang, H.H., Höfner, P.: First-order theorem prover evaluation w.r.t. relation- and Kleene algebra. In: Berghammer, R., Möller, B., Struth, G. (eds.) Relations and Kleene Algebra in Computer Science – Ph.D. Programme at RelMiCS 10/AKA 05. Technical Report 2008-04, Institut für Informatik, Universität Augsburg, 48-52 (2008)Google Scholar
  10. 10.
    Dijkstra, E.W.: Guarded commands, nondeterminacy and formal derivation of programs. Communications of the ACM 18, 453–457 (1975)CrossRefzbMATHMathSciNetGoogle Scholar
  11. 11.
    Dijkstra, E.W.: A discipline of programming. Prentice-Hall (1976)Google Scholar
  12. 12.
    Foster, S., Struth, G., Weber, T.: Automated engineering of relational and algebraic methods in Isabelle/HOL (invited Tutorial). In: de Swart, H. (ed.) RAMiCS 2011. LNCS, vol. 6663, pp. 52–67. Springer, Heidelberg (2011)Google Scholar
  13. 13.
    Gries, D.: The science of computer programming. Springer (1981)Google Scholar
  14. 14.
    Hattensperger, C., Berghammer, R., Schmidt, G.: RALF – A relation-algebraic formula manipulation system and proof checker. In: Nivat, M., Rattray, C., Rus, T., Scollo, G. (eds.) Algebraic Methodology and Software Technology. Workshops in Computing, pp. 407–408. Springer (1993)Google Scholar
  15. 15.
    Höfner, P., Struth, G.: Automated reasoning in Kleene Algebra. In: Pfenning, F. (ed.) CADE 2007. LNCS (LNAI), vol. 4603, pp. 279–294. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  16. 16.
    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)CrossRefGoogle Scholar
  17. 17.
    Kahl, W.: Calculational relation-algebraic proofs in Isabelle/Isar. In: Berghammer, R., Möller, B., Struth, G. (eds.) RelMiCS/Kleene-Algebra Ws 2003. LNCS, vol. 3051, pp. 178–190. Springer, Heidelberg (2004)Google Scholar
  18. 18.
    Kahn, A.B.: Topological sorting of large networks. Communications of the ACM 5, 558–562 (1962)CrossRefzbMATHGoogle Scholar
  19. 19.
    Kovács, L.: Invariant generation for P-solvable loops with assignments. In: Hirsch, E.A., Razborov, A.A., Semenov, A., Slissenko, A. (eds.) CSR 2008. LNCS, vol. 5010, pp. 349–359. Springer, Heidelberg (2008)Google Scholar
  20. 20.
    MacCaull, W., Orłowska, E.: Correspondence results for relational proof systems with application to the Lambek calculus. Studia Logica 71(3), 389–414 (2002)CrossRefzbMATHMathSciNetGoogle Scholar
  21. 21.
    Müller-Olm, M., Seidl, H.: Computing polynomial program invariants. Information Processing Letters 91(5), 233–244 (2004)CrossRefzbMATHMathSciNetGoogle Scholar
  22. 22.
    Schmidt, G., Ströhlein, T.: Relations and graphs, Discrete mathematics for computer scientists. EATCS Monographs on Theoretical Computer Science. Springer (1993)Google Scholar
  23. 23.
    Schmidt, G.: Relational mathematics. Encyclopedia of Mathematics and its Applications, vol. 132. Cambridge University Press (2010)Google Scholar
  24. 24.
    Schumann, J.: Automated theorem proving in software engineering. Springer (2001)Google Scholar
  25. 25.
    Sinz, C.: System description: ARA – An automated theorem prover for relation algebras. In: McAllester, D. (ed.) CADE-17. LNCS (LNAI), vol. 1831, pp. 177–182. Springer, Heidelberg (2000)Google Scholar
  26. 26.
    Tarski, A.: On the calculus of relations. Journal of Symbolic Logic 6(3), 73–89 (1941)CrossRefMathSciNetGoogle Scholar
  27. 27.
    Tarski, A., Givant, S.: A formalization of set theory without variables, vol. 41. AMS Colloquium Publications (1987)Google Scholar
  28. 28.
    von Oheimb, D., Gritzner, T.F.: RALL: Machine-supported proofs for relation algebra. In: McCune, W. (ed.) CADE 1997. LNCS (LNAI), vol. 1249, pp. 380–394. Springer, Heidelberg (1997)CrossRefGoogle Scholar
  29. 29.
    Weidenbach, C., Schmidt, R.A., Hillenbrand, T., Rusev, R., Topic, D.: System description: SPASS version 3.0. In: Pfenning, F. (ed.) CADE 2007. LNCS (LNAI), vol. 4603, pp. 514–520. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  30. 30.
    Rel View homepage: (accessed April 30, 2013)
  31. 31.
    McCune, W.W.: Prover9 and Mace4., (accessed April 30, 2013)

Copyright information

© Springer International Publishing Switzerland 2014

Authors and Affiliations

  • Rudolf Berghammer
    • 1
  • Peter Höfner
    • 2
    • 3
  • Insa Stucke
    • 1
  1. 1.Institut für InformatikChristian-Albrechts-Universität zu KielGermany
  2. 2.NICTAAustralia
  3. 3.Computer Science and EngineeringUniversity of New South WalesAustralia

Personalised recommendations