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 [15] 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 [11], preserving correctness and the run-time bounds of the abstract algorithm.
Original language | English |
---|---|
Title of host publication | ITP2019: Interactive Theorem Proving |
Publication status | Accepted/In press - 1 Jun 2019 |
Event | Interactive Theorem Proving - Portland, United States Duration: 8 Sept 2019 → 13 Sept 2019 https://itp19.cecs.pdx.edu/ |
Conference
Conference | Interactive Theorem Proving |
---|---|
Abbreviated title | ITP 2019 |
Country/Territory | United States |
City | Portland |
Period | 8/09/19 → 13/09/19 |
Internet address |
Keywords
- Isabelle
- Time complexity analysis
- Separation logic
- Program verification
- Refinement
- Run time
- Algorithms