Unifying Lazy and Strict Computations

Non-strict sequential computations describe imperative programs that can be executed lazily and support infinite data structures. Based on a relational model of such computations we investigate their algebraic properties. We show that they share many laws with conventional, strict computations. We develop a common theory generalising previous algebraic descriptions of strict computation models including partial, total and general correctness and extensions thereof. Due to non-strictness, the iteration underlying loops cannot be described by a unary operation. We propose axioms that generalise the binary operation known from omega algebra, and derive properties of this new operation which hold for both strict and non-strict computations. All algebraic results are verified in Isabelle using its integrated automated theorem provers.

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

[2]  Walter Guttmann,et al.  Imperative abstractions for functional actions , 2010, J. Log. Algebraic Methods Program..

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

[4]  C. A. R. Hoare Theories of Programming: Top-Down and Bottom-Up and Meeting in the Middle , 1999, World Congress on Formal Methods.

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

[6]  Tobias Nipkow,et al.  Isabelle/HOL , 2002, Lecture Notes in Computer Science.

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

[8]  Anne Lohrli Chapman and Hall , 1985 .

[9]  Rudolf Berghammer,et al.  A Relation Algebraic Model of Robust Correctness , 1996, Theor. Comput. Sci..

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

[11]  Roger D. Maddux,et al.  Relation-Algebraic Semantics , 1996, Theor. Comput. Sci..

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

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

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

[15]  Bernhard Möller,et al.  An algebra of hybrid systems , 2009, J. Log. Algebraic Methods Program..

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

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

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

[19]  Tobias Nipkow,et al.  A Proof Assistant for Higher-Order Logic , 2002 .

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

[21]  Simon L. Peyton Jones,et al.  State in Haskell , 1995, LISP Symb. Comput..

[22]  Jeremy Gibbons Pablo Nogueira Mathematics of Program Construction , 2012, Lecture Notes in Computer Science.

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

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

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

[26]  S. Anderson,et al.  Secure Synthesis of Code: A Process Improvement Experiment , 1999, World Congress on Formal Methods.

[27]  Alfred Tarski,et al.  Relational selves as self-affirmational resources , 2008 .

[28]  C. j. Aarts,et al.  Galois Connections Presented Calculationally , 1992 .

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

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

[31]  Gunther Schmidt,et al.  Relationen und Graphen , 1989, Mathematik für Informatiker.