Algebraic Calculi for Separation Logic

Han-Hing Dang

Dissertation, Universität Augsburg.
Erstgutachter: Professor Dr. B. Möller
Zweitgutachter: Professor Dr. B. Bauer


A major research topic for the discipline of software engineering is the development of formal methods that ensure correctness of computer programs w.r.t. their specifications. Various approaches have been developed over the last decades, especially in the field of logical methods. One of the most influential and popular methodologies in this area is separation logic. It has evolved from Hoare logic as a treatment that facilitates reasoning about programs that massively work with references to dynamically allocated storage. Due to special mechanisms it allows simple formulas for the characterisation of shapes and structures of data types. Moreover, it has proven to be scalable by enabling a compositional construction of correctness proofs in particular for large program code. During the last years various developments in this research area have been established ranging from applications within concurrency to mechanisation and tool-supported verification of imperative and object-oriented programs.
Each application-specific separation logic introduces special syntax and semantics on top of the original core that enables scalable reasoning. However, most of the calculi are very complex and not widely applicable, or they involve general abstractions that are difficult to understand and handle for non-experts. By contrast, algebraic techniques provide a balanced compromise for both problems. On the one hand they are abstract and general enough to capture and represent behaviour in a concise and simple way. On the other hand they facilitate reasoning by formulas in an (in)equational style that allow derivations of non-trivial consequences and properties. The aim of the present thesis is to develop algebraic calculi for a uniform representation and abstraction of behaviour in separation logics. This yields in particular the possibility of transferring general results between various separation logical theories. Moreover, due to simple formulas expressed within first-order logic they also enable at the abstract level a tool support for developing further theories.