Algebraic Calculi for Separation Logic

  • 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 andA 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.show moreshow less
  • Ein bedeutendes Forschungsthema für die moderne Softwaretechnik ist die Entwicklung von formalen Methoden, die Korrektheit von Computerprogrammen bzgl. ihrer Spezifikation sicherstellen. Diverse Verfahren wurden innerhalb der letzten Jahrzehnte entwickelt, speziell im Fachgebiet der logischen Methoden. Eine der einflussreichsten und bekanntesten Methodiken aus diesem Bereich ist die Separationslogik. Sie hat sich aus der Hoare-Logik entwickelt, um speziell die Beweisführung auf Programmen mit einer Vielzahl an Referenzen auf dynamisch reservierten Speicher zu vereinfachen. Durch spezielle Mechanismen erlaubt sie einfache Formeln zur Charakterisierung der Formen und Strukturen von Datentypen. Insbesondere hat sich diese Logik durch die Möglichkeit einer kompositionellen Konstruktion von Korrektheitsbeweisen als skalierbar erwiesen, speziell für komplexeren Programmcode. Während der letzten Jahre wurde eine Vielzahl von Ausprägungen in diesem Forschungsbereich geschaffen, die sich vonEin bedeutendes Forschungsthema für die moderne Softwaretechnik ist die Entwicklung von formalen Methoden, die Korrektheit von Computerprogrammen bzgl. ihrer Spezifikation sicherstellen. Diverse Verfahren wurden innerhalb der letzten Jahrzehnte entwickelt, speziell im Fachgebiet der logischen Methoden. Eine der einflussreichsten und bekanntesten Methodiken aus diesem Bereich ist die Separationslogik. Sie hat sich aus der Hoare-Logik entwickelt, um speziell die Beweisführung auf Programmen mit einer Vielzahl an Referenzen auf dynamisch reservierten Speicher zu vereinfachen. Durch spezielle Mechanismen erlaubt sie einfache Formeln zur Charakterisierung der Formen und Strukturen von Datentypen. Insbesondere hat sich diese Logik durch die Möglichkeit einer kompositionellen Konstruktion von Korrektheitsbeweisen als skalierbar erwiesen, speziell für komplexeren Programmcode. Während der letzten Jahre wurde eine Vielzahl von Ausprägungen in diesem Forschungsbereich geschaffen, die sich von Anwendungen für Nebenläufigkeit bis hin zur Mechanisierung und programmgestützten Verifikation von imperativen und objektorientierten Programmen erstrecken. Jede dieser anwendungsspezifisch entwickelten Separationslogiken erweitert den ursprünglichen Kern, der skalierbare Beweisführung ermöglicht, um eine spezielle Semantik und syntaktische Ausdrücke. Jedoch sind die meisten dieser Kalküle sehr komplex und nicht weitreichend anwendbar oder sie verwenden allgemeingültige Abstraktionen, die schwer zu verstehen sind und nur mühsam von Nicht-Experten gehandhabt werden können. Im Vergleich dazu bieten algebraische Techniken einen balancierten Mittelweg für beide Probleme. Einerseits sind sie ausreichend abstrakt und allgemein um Verhalten zu erfassen und darzustellen. Andererseits vereinfachen sie Beweise durch einfache und (un)gleichungsbasierte Formeln, die Herleitungen von nicht-trivialen Konsequenzen und Eigenschaften ermöglichen. Das Ziel der vorliegenden Dissertation besteht aus der Entwicklung von algebraischen Kalkülen für eine uniforme Darstellung und Abstraktion von Verhalten in Separationslogiken. Dies ermöglicht im Speziellen, generelle Resultate einer Theorie auf eine andere zu übertragen. Darüber hinaus können durch die Verwendungen einfacher Formeln, auch auf abstrakter Ebene, Programmwerkzeuge zur Unterstützung und Steuerung der Entwicklung weiterer Theorien verwendet werden.show moreshow less

Download full text files

Export metadata

Statistics

Number of document requests

Additional Services

Share in Twitter Search Google Scholar
Metadaten
Author:Han Hing Dang
URN:urn:nbn:de:bvb:384-opus4-29201
Frontdoor URLhttps://opus.bibliothek.uni-augsburg.de/opus4/2920
Advisor:Bernhard Möller
Type:Doctoral Thesis
Language:English
Publishing Institution:Universität Augsburg
Granting Institution:Universität Augsburg, Fakultät für Angewandte Informatik
Date of final exam:2014/12/09
Release Date:2015/06/11
Tag:calculus of relations; concurrency; formal methods; separation logic; shared mutable data structures
GND-Keyword:Hoare-Logik; Kleene-Algebra; Nebenläufigkeit; Programmverifikation
Institutes:Fakultät für Angewandte Informatik
Fakultät für Angewandte Informatik / Institut für Informatik
Dewey Decimal Classification:0 Informatik, Informationswissenschaft, allgemeine Werke / 00 Informatik, Wissen, Systeme / 004 Datenverarbeitung; Informatik
Licence (German):Deutsches Urheberrecht