Unifying Correctness Statements

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.

[1]  Joseph M. Morris Varieties of Weakest Liberal Preconditions , 1987, Inf. Process. Lett..

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

[3]  Bernhard Möller,et al.  Relations and Kleene Algebras in Computer Science , 2008, J. Log. Algebraic Methods Program..

[4]  Walter Guttmann,et al.  Partial, Total and General Correctness , 2010, MPC.

[5]  J. Conway Regular algebra and finite machines , 1971 .

[6]  Ernst-Rüdiger Olderog,et al.  Verification of Sequential and Concurrent Programs , 1997, Graduate Texts in Computer Science.

[7]  R. G. Stone,et al.  Program Construction , 1979, Lecture Notes in Computer Science.

[8]  Jules Desharnais,et al.  Demonic Algebra with Domain , 2006, RelMiCS.

[9]  Steve Dunne Recasting Hoare and He's Unifying Theory of Programs in the Context of General Correctness , 2001, IWFM.

[10]  Bernhard Möller,et al.  The Linear Algebra of UTP , 2006, MPC.

[11]  Walter Guttmann,et al.  Algebras for iteration and infinite computations , 2012, Acta Informatica.

[12]  Carroll Morgan,et al.  The specification statement , 1988, TOPL.

[13]  C. A. R. Hoare,et al.  Laws of programming , 1987, CACM.

[14]  Bernhard Möller,et al.  Kleene getting lazy , 2007, Sci. Comput. Program..

[15]  Ernie Cohen,et al.  Separation and Reduction , 2000, MPC.

[16]  Georg Struth,et al.  Kleene algebra with domain , 2003, TOCL.

[17]  Anne Lohrli Chapman and Hall , 1985 .

[18]  David Harel On the Total Correctness of Nondeterministic Programs , 1981, Theor. Comput. Sci..

[19]  Greg Nelson,et al.  A generalization of Dijkstra's calculus , 1989, ACM Trans. Program. Lang. Syst..

[20]  David Harel,et al.  First-Order Dynamic Logic , 1979, Lecture Notes in Computer Science.

[21]  Marcel Jackson,et al.  SEMIGROUPS WITH if-then-else AND HALTING PROGRAMS , 2009, Int. J. Algebra Comput..

[22]  Georg Struth,et al.  Wp is wip , 2006 .

[23]  David Gries,et al.  General correctness: A unification of partial and total correctness , 2004, Acta Informatica.

[24]  Bernhard Möller,et al.  Normal design algebra , 2010, J. Log. Algebraic Methods Program..

[25]  Walter Guttmann,et al.  Unifying Recursion in Partial, Total and General Correctness , 2010, UTP.

[26]  C. A. R. Hoare,et al.  Unifying theories of programming , 1998, RelMiCS.

[27]  Ajitha Rajan,et al.  Requirements Coverage as an Adequacy Measure for Conformance Testing , 2008, ICFEM.

[28]  Georg Struth,et al.  Algebras of modal operators and partial correctness , 2006, Theor. Comput. Sci..

[29]  Walter Guttmann,et al.  Extended designs algebraically , 2013, Sci. Comput. Program..

[30]  Georg Struth,et al.  Internal axioms for domain semirings , 2011, Sci. Comput. Program..

[31]  Steve Dunne,et al.  Reasoning about Loops in Total and General Correctness , 2008, UTP.

[32]  Joakim von Wright,et al.  Towards a refinement algebra , 2004, Sci. Comput. Program..

[33]  Dexter Kozen On Hoare logic and Kleene algebra with tests , 2000, TOCL.

[34]  Rudolf Berghammer,et al.  Relational Algebraic Semantics of Deterministic and Nondeterministic Programs , 1986, Theor. Comput. Sci..

[35]  Dexter Kozen A Completeness Theorem for Kleene Algebras and the Algebra of Regular Events , 1994, Inf. Comput..

[36]  Walter Guttmann,et al.  General Correctness Algebra , 2009, RelMiCS.

[37]  Steve Dunne,et al.  Unifying Theories of Programming That Distinguish Nontermination and Abort , 2010, MPC.

[38]  J. W. de Bakker,et al.  Semantics and Termination of Nondeterministic Recursive Programs , 1976, ICALP.

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

[40]  Manfred Broy,et al.  Semantics of Nondeterministic and Noncontinuous Constructs , 1978, Program Construction.

[41]  Georg Struth,et al.  Automating Algebraic Methods in Isabelle , 2011, ICFEM.

[42]  Joseph M. Morris,et al.  A Theoretical Basis for Stepwise Refinement and the Programming Calculus , 1987, Sci. Comput. Program..

[43]  Lambert Meertens Abstracto 84: The next generation , 1979, ACM '79.

[44]  Georg Struth,et al.  wp Is wlp , 2005 .

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