Skip to main content

Unifying Correctness Statements

  • Conference paper
Mathematics of Program Construction (MPC 2012)

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

Included in the following conference series:

Abstract

Partial, total and general correctness and further models of sequential computations differ in their treatment of finite, infinite and aborting executions. Algebras structure this diversity of models to avoid the repeated development of similar theories and to clarify their range of application. We introduce algebras that uniformly describe correctness statements, correctness calculi, pre-post specifications and loop refinement rules in five kinds of computation models. This extends previous work that unifies iteration, recursion and program transformations for some of these models. Our new description includes a relativised domain operation, which ignores parts of a computation, and represents bound functions for claims of termination by sequences of tests. We verify all results in Isabelle heavily using its automated theorem provers.

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

Access this chapter

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

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Apt, K.R., de Boer, F.S., Olderog, E.R.: Verification of Sequential and Concurrent Programs, 3rd edn. Springer (2009)

    Google Scholar 

  2. de Bakker, J.W.: Semantics and termination of nondeterministic recursive programs. In: Michaelson, S., Milner, R. (eds.) Automata, Languages and Programming: Third International Colloquium, pp. 435–477. Edinburgh University Press (1976)

    Google Scholar 

  3. Berghammer, R., Zierer, H.: Relational algebraic semantics of deterministic and nondeterministic programs. Theor. Comput. Sci. 43, 123–147 (1986)

    Article  MathSciNet  MATH  Google Scholar 

  4. Broy, M., Gnatz, R., Wirsing, M.: Semantics of Nondeterministic and Noncontinuous Constructs. In: Bauer, F.L., Broy, M. (eds.) Program Construction. LNCS, vol. 69, pp. 553–592. Springer, Heidelberg (1979)

    Chapter  Google Scholar 

  5. Cohen, E.: Separation and Reduction. In: Backhouse, R., Oliveira, J.N. (eds.) MPC 2000. LNCS, vol. 1837, pp. 45–59. Springer, Heidelberg (2000)

    Chapter  Google Scholar 

  6. Conway, J.H.: Regular Algebra and Finite Machines. Chapman and Hall (1971)

    Google Scholar 

  7. De Carufel, J.-L., Desharnais, J.: Demonic Algebra with Domain. In: Schmidt, R.A. (ed.) RelMiCS/AKA 2006. LNCS, vol. 4136, pp. 120–134. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  8. Desharnais, J., Möller, B., Struth, G.: Kleene algebra with domain. ACM Transactions on Computational Logic 7(4), 798–833 (2006)

    Article  MathSciNet  Google Scholar 

  9. Desharnais, J., Struth, G.: Internal axioms for domain semirings. Sci. Comput. Program. 76(3), 181–203 (2011)

    Article  MathSciNet  MATH  Google Scholar 

  10. Dijkstra, E.W.: A Discipline of Programming. Prentice Hall (1976)

    Google Scholar 

  11. Dunne, S.: Recasting Hoare and He’s Unifying Theory of Programs in the context of general correctness. In: Butterfield, A., Strong, G., Pahl, C. (eds.) 5th Irish Workshop on Formal Methods. Electronic Workshops in Computing. The British Computer Society (2001)

    Google Scholar 

  12. Dunne, S.E., Hayes, I.J., Galloway, A.J.: Reasoning about Loops in Total and General Correctness. In: Butterfield, A. (ed.) UTP 2008. LNCS, vol. 5713, pp. 62–81. Springer, Heidelberg (2010)

    Chapter  Google Scholar 

  13. Guttmann, W.: General Correctness Algebra. In: Berghammer, R., Jaoua, A.M., Möller, B. (eds.) RelMiCS/AKA 2009. LNCS, vol. 5827, pp. 150–165. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

  14. Guttmann, W.: Partial, Total and General Correctness. In: Bolduc, C., Desharnais, J., Ktari, B. (eds.) MPC 2010. LNCS, vol. 6120, pp. 157–177. Springer, Heidelberg (2010)

    Chapter  Google Scholar 

  15. Guttmann, W.: Unifying Recursion in Partial, Total and General Correctness. In: Qin, S. (ed.) UTP 2010. LNCS, vol. 6445, pp. 207–225. Springer, Heidelberg (2010)

    Chapter  Google Scholar 

  16. Guttmann, W.: Algebras for iteration and infinite computations (submitted, 2011)

    Google Scholar 

  17. Guttmann, W.: Extended designs algebraically. Sci. Comput. Program. (to appear, 2012)

    Google Scholar 

  18. Guttmann, W., Möller, B.: Normal design algebra. Journal of Logic and Algebraic Programming 79(2), 144–173 (2010)

    Article  MathSciNet  MATH  Google Scholar 

  19. Guttmann, W., Struth, G., Weber, T.: Automating Algebraic Methods in Isabelle. In: Qin, S., Qiu, Z. (eds.) ICFEM 2011. LNCS, vol. 6991, pp. 617–632. Springer, Heidelberg (2011)

    Chapter  Google Scholar 

  20. Harel, D.: First-Order Dynamic Logic. LNCS, vol. 68. Springer, Heidelberg (1979)

    Book  MATH  Google Scholar 

  21. Harel, D.: On the total correctness of nondeterministic programs. Theor. Comput. Sci. 13(2), 175–192 (1981)

    Article  MathSciNet  MATH  Google Scholar 

  22. Hayes, I.J., Dunne, S.E., Meinicke, L.: Unifying Theories of Programming That Distinguish Nontermination and Abort. In: Bolduc, C., Desharnais, J., Ktari, B. (eds.) MPC 2010. LNCS, vol. 6120, pp. 178–194. Springer, Heidelberg (2010)

    Chapter  Google Scholar 

  23. Hoare, C.A.R.: An axiomatic basis for computer programming. Commun. ACM 12(10), 576–580/583 (1969)

    Article  MATH  Google Scholar 

  24. Hoare, C.A.R., Hayes, I.J., He, J., Morgan, C.C., Roscoe, A.W., Sanders, J.W., Sorensen, I.H., Spivey, J.M., Sufrin, B.A.: Laws of programming. Commun. ACM 30(8), 672–686 (1987)

    Article  MathSciNet  MATH  Google Scholar 

  25. Hoare, C.A.R., He, J.: Unifying theories of programming. Prentice Hall Europe (1998)

    Google Scholar 

  26. Jackson, M., Stokes, T.: Semigroups with if-then-else and halting programs. International Journal of Algebra and Computation 19(7), 937–961 (2009)

    Article  MathSciNet  MATH  Google Scholar 

  27. Jacobs, D., Gries, D.: General correctness: A unification of partial and total correctness. Acta Inf. 22(1), 67–83 (1985)

    Article  MathSciNet  MATH  Google Scholar 

  28. Kozen, D.: A completeness theorem for Kleene algebras and the algebra of regular events. Information and Computation 110(2), 366–390 (1994)

    Article  MathSciNet  MATH  Google Scholar 

  29. Kozen, D.: On Hoare logic and Kleene algebra with tests. ACM Transactions on Computational Logic 1(1), 60–76 (2000)

    Article  MathSciNet  Google Scholar 

  30. Meertens, L.: Abstracto 84: The next generation. In: Martin, A.L., Elshoff, J.L. (eds.) ACM 1979: Proceedings of the 1979 Annual Conference, pp. 33–39. ACM Press (1979)

    Google Scholar 

  31. Möller, B.: The Linear Algebra of UTP. In: Uustalu, T. (ed.) MPC 2006. LNCS, vol. 4014, pp. 338–358. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  32. Möller, B.: Kleene getting lazy. Sci. Comput. Program. 65(2), 195–214 (2007)

    Article  MATH  Google Scholar 

  33. Möller, B., Struth, G.: Algebras of modal operators and partial correctness. Theor. Comput. Sci. 351(2), 221–239 (2006)

    Article  MATH  Google Scholar 

  34. Möller, B., Struth, G.: wp Is wlp. In: MacCaull, W., Winter, M., Düntsch, I. (eds.) RelMiCS 2005. LNCS, vol. 3929, pp. 200–211. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  35. Morgan, C.: The specification statement. ACM Trans. Progr. Lang. Syst. 10(3), 403–419 (1988)

    Article  MATH  Google Scholar 

  36. Morris, J.M.: A theoretical basis for stepwise refinement and the programming calculus. Sci. Comput. Program. 9(3), 287–306 (1987)

    Article  MATH  Google Scholar 

  37. Morris, J.M.: Varieties of weakest liberal preconditions. Inf. Process. Lett. 25(3), 207–210 (1987)

    Article  Google Scholar 

  38. Nelson, G.: A generalization of Dijkstra’s calculus. ACM Trans. Progr. Lang. Syst. 11(4), 517–561 (1989)

    Article  Google Scholar 

  39. von Wright, J.: Towards a refinement algebra. Sci. Comput. Program. 51(1-2), 23–45 (2004)

    Article  MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2012 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Guttmann, W. (2012). Unifying Correctness Statements. In: Gibbons, J., Nogueira, P. (eds) Mathematics of Program Construction. MPC 2012. Lecture Notes in Computer Science, vol 7342. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-31113-0_11

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-31113-0_11

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-31112-3

  • Online ISBN: 978-3-642-31113-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics