License: Creative Commons Attribution 3.0 Unported license (CC BY 3.0)
When quoting this document, please refer to the following
DOI: 10.4230/LIPIcs.ITP.2019.20
URN: urn:nbn:de:0030-drops-110754
URL: http://dagstuhl.sunsite.rwth-aachen.de/volltexte/2019/11075/
Haslbeck, Maximilian P. L. ;
Lammich, Peter
Refinement with Time - Refining the Run-Time of Algorithms in Isabelle/HOL
Abstract
Separation Logic with Time Credits is a well established method to formally verify the correctness and run-time of algorithms, which has been applied to various medium-sized use-cases. Refinement is a technique in program verification that makes software projects of larger scale manageable.
Combining these two techniques for the first time, we present a methodology for verifying the functional correctness and the run-time analysis of algorithms in a modular way. We use it to verify Kruskal's minimum spanning tree algorithm and the Edmonds - Karp algorithm for network flow.
An adaptation of the Isabelle Refinement Framework [Lammich and Tuerk, 2012] enables us to specify the functional result and the run-time behaviour of abstract algorithms which can be refined to more concrete algorithms. From these, executable imperative code can be synthesized by an extension of the Sepref tool [Lammich, 2015], preserving correctness and the run-time bounds of the abstract algorithm.
BibTeX - Entry
@InProceedings{haslbeck_et_al:LIPIcs:2019:11075,
author = {Maximilian P. L. Haslbeck and Peter Lammich},
title = {{Refinement with Time - Refining the Run-Time of Algorithms in Isabelle/HOL}},
booktitle = {10th International Conference on Interactive Theorem Proving (ITP 2019)},
pages = {20:1--20:18},
series = {Leibniz International Proceedings in Informatics (LIPIcs)},
ISBN = {978-3-95977-122-1},
ISSN = {1868-8969},
year = {2019},
volume = {141},
editor = {John Harrison and John O'Leary and Andrew Tolmach},
publisher = {Schloss Dagstuhl--Leibniz-Zentrum fuer Informatik},
address = {Dagstuhl, Germany},
URL = {http://drops.dagstuhl.de/opus/volltexte/2019/11075},
URN = {urn:nbn:de:0030-drops-110754},
doi = {10.4230/LIPIcs.ITP.2019.20},
annote = {Keywords: Isabelle, Time Complexity Analysis, Separation Logic, Program Verification, Refinement, Run Time, Algorithms}
}
Keywords: |
|
Isabelle, Time Complexity Analysis, Separation Logic, Program Verification, Refinement, Run Time, Algorithms |
Collection: |
|
10th International Conference on Interactive Theorem Proving (ITP 2019) |
Issue Date: |
|
2019 |
Date of publication: |
|
05.09.2019 |
Supplementary Material: |
|
The formalization described in this paper is available at https://www21.in.tum.de/~haslbema/Sepreftime. |