Cylindric Kleene Lattices for Program Construction

Cylindric algebras have been developed as an algebraisation of equational first order logic. We adapt them to cylindric Kleene lattices and their variants and present relational and relational fault models for these. This allows us to encode frames and local variable blocks, and to derive Morgan’s refinement calculus as well as an algebraic Hoare logic for while programs with assignment laws. Our approach thus opens the door for algebraic calculations with program and logical variables instead of domain-specific reasoning over concrete models of the program store. A refinement proof for a small program is presented as an example.

[1]  Damien Pous,et al.  Kleene Algebra with Tests and Coq Tools for while Programs , 2013, ITP.

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

[3]  Ralph-Johan Back,et al.  Refinement Calculus: A Systematic Introduction , 1998 .

[4]  Georg Struth,et al.  Modal Kleene Algebra Applied to Program Correctness , 2016, FM.

[5]  Vincenzo Ciancia,et al.  Freshness and Name-Restriction in Sets of Traces with Names , 2011, FoSSaCS.

[6]  Georg Struth,et al.  Partial Semigroups and Convolution Algebras , 2017, Arch. Formal Proofs.

[7]  Szabolcs Mikulás,et al.  The equational theory of Kleene lattices , 2011, Theor. Comput. Sci..

[8]  Georg Struth,et al.  Building program construction and verification tools from algebraic principles , 2015, Formal Aspects of Computing.

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

[10]  Roberto Giacobazzi,et al.  A Generalized Semantics for Constraint Logic Programs , 1992, Fifth Generation Computer Systems.

[11]  Carroll Morgan,et al.  Programming from specifications (2nd ed.) , 1994 .

[12]  Georg Struth,et al.  Hoare Semigroups , 2017, Mathematical Structures in Computer Science.

[13]  Georg Struth,et al.  Relational Convolution, Generalised Modalities and Incidence Algebras , 2017, ArXiv.

[14]  W. Marsden I and J , 2012 .

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

[16]  Georg Struth,et al.  Completeness results for omega-regular algebras , 2015, J. Log. Algebraic Methods Program..

[17]  Carroll Morgan,et al.  Programming from specifications , 1990, Prentice Hall International Series in computer science.

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

[19]  Vaughan R. Pratt,et al.  Action Logic and Pure Induction , 1990, JELIA.

[20]  Georg Struth,et al.  Kleene Modules , 2003, RelMiCS.

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

[22]  Ian J. Hayes,et al.  Specification case studies , 1987 .

[23]  Ian J. Hayes,et al.  Handling localisation in rely/guarantee concurrency: An algebraic approach , 2019, ArXiv.

[24]  Charles Wells,et al.  SOME APPLICATIONS OF THE WREATH PRODUCT CONSTRUCTION , 1976 .

[25]  Dexter Kozen,et al.  On Action Algebras , 1994 .

[26]  J. Michael Spivey,et al.  The Z notation - a reference manual , 1992, Prentice Hall International Series in Computer Science.

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

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

[29]  Robert Colvin,et al.  Designing a semantic model for a wide-spectrum language with concurrency , 2016, Formal Aspects of Computing.