This thesis applies formal verification to the running time analysis of algorithms. First, three Hoare logics for time bounds from the literature are studied and their application to probabilistic programs is explored. Then, a practical framework using Separation Logic with Time Credits is presented. Finally, stepwise refinement is extended to reason about the resource usage of programs. The theory is applied to formally verify the running time of introspection sort and Kruskal‘s algorithm.
Translated abstract:
Diese Dissertation wendet formale Verifikation auf die Laufzeitanalyse von Algorithmen an. Zuerst werden drei Hoare Logiken für Laufzeitschranken untersucht und ihre Anwendung auf probabilistische Programme erkundet. Dann wird ein konkretes Werkzeug basierend auf Separationslogik mit Time Credits realisiert und die Technik Schrittweise Verfeinerung auf Laufzeitanalyse erweitert. Mithilfe der entwickelten Werkzeuge wird die Laufzeitanalyse von Introsort und Kruskal‘s Algorithmus verifiziert.