🤖 AI Summary
This work addresses the lack of formal verification for minimum-cost flow algorithms by presenting the first complete formalization of Orlin’s capacity scaling algorithm in Isabelle/HOL. Employing a stepwise refinement methodology, the authors derive executable code from an abstract specification and formally verify the reduction from the general problem to a restricted setting. The development not only rigorously establishes the algorithm’s correctness and worst-case time complexity but also refines existing theorem statements and contributes a reusable library of formalized graph algorithms. This constitutes the first end-to-end formally verified solution to the minimum-cost flow problem.
📝 Abstract
We present formalisations of the correctness of executable algorithms to solve minimum-cost flow problems in Isabelle/HOL. Two of the algorithms are based on the technique of scaling, most notably Orlin's algorithm, which has the fastest known running time for solving the problem of minimum-cost flow. We also include a formalisation of the worst-case running time argument for Orlin's algorithm. Our verified implementation of this algorithm, which is derived by the technique of stepwise refinement, is fully executable and was integrated into a reusable formal library on graph algorithms. Because the problems for which Orlin's algorithm works are restricted, we also verified an executable reduction from the general minimum-cost flow problem. We believe we are the first to formally consider the problem of minimum-cost flows and, more generally, any scaling algorithms. Our work has also led to a number of mathematical insights and improvements to proofs as well as theorem statements, compared to all existing expositions.