Algebras for iteration and infinite computations

We give axioms for an operation that describes iteration in various relational models of computations. The models differ in their treatment of finite, infinite and aborting executions, covering partial, total and general correctness and extensions thereof. Based on the common axioms we derive separation, refinement and program transformation results hitherto known from particular models, henceforth recognised to hold in many different models. We introduce a new model that independently describes the finite, infinite and aborting executions of a computation, and axiomatise an operation that extracts the infinite executions in this model and others. From these unifying axioms we derive explicit representations for recursion and iteration. We show that also the new model is an instance of our general theory of iteration. All results are verified in Isabelle heavily using automated theorem provers.

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

[2]  Henk Doornbos A Relational Model of Programs Without the Restriction to Egli-Milner-Monotone Constructs , 1994, PROCOMET.

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

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

[5]  Roland Carl Backhouse,et al.  Fixed-Point Calculus , 1995, Inf. Process. Lett..

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

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

[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]  Nick Bezhanishvili,et al.  Finitely generated free Heyting algebras via Birkhoff duality and coalgebra , 2011, Log. Methods Comput. Sci..

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

[12]  Walter Guttmann Fixpoints for general correctness , 2011, J. Log. Algebraic Methods Program..

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

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

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

[16]  Walter Guttmann,et al.  Unifying Correctness Statements , 2012, MPC.

[17]  Bernhard Möller,et al.  Omega Algebra, Demonic Refinement Algebra and Commands , 2006, RelMiCS.

[18]  Walter Guttmann Towards a Typed Omega Algebra , 2011, RAMICS.

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

[20]  Lawrence C. Paulson,et al.  Extending Sledgehammer with SMT Solvers , 2011, CADE.

[21]  Walter Guttmann,et al.  Unifying Lazy and Strict Computations , 2012, RAMiCS.

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

[23]  William McCune,et al.  Mace4 Reference Manual and Guide , 2003, ArXiv.

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

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

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

[27]  Tobias Nipkow,et al.  Nitpick: A Counterexample Generator for Higher-Order Logic Based on a Relational Model Finder , 2010, ITP.

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

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

[30]  David Lorge Parnas A generalized control structure and its formal definition , 1983, CACM.

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

[32]  Jules Desharnais,et al.  Kleene under a modal demonic star , 2006, J. Log. Algebraic Methods Program..

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

[34]  Bernhard Möller,et al.  Modal Design Algebra , 2006, UTP.

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

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

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

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

[39]  Ralph-Johan Back,et al.  Reasoning algebraically about loops , 1999, Acta Informatica.

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

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

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

[43]  Z. Ésik,et al.  Iteration Theories: The Equational Logic of Iterative Processes , 1993 .

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

[45]  Georg Struth,et al.  Algebraic Notions of Termination , 2010, Log. Methods Comput. Sci..

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