\title{Relational Minimum Spanning Tree Algorithms}
\author{Walter Guttmann and Nicolas Robinson-O'Brien}
\maketitle
\begin{abstract}
We verify the correctness of Prim's, Kruskal's and Bor\r{u}vka's minimum spanning tree algorithms based on algebras for aggregation and minimisation.
\end{abstract}
\tableofcontents
\section{Overview}
The theories described in this document prove the correctness of Prim's, Kruskal's and Bor\r{u}vka's minimum spanning tree algorithms.
Specifications and algorithms work in Stone-Kleene relation algebras extended by operations for aggregation and minimisation.
The algorithms are implemented in a simple imperative language and their proof uses Hoare logic.
The correctness proofs are discussed in \cite{Guttmann2016c,Guttmann2018b,Guttmann2018c,RobinsonOBrien2020}.
\subsection{Prim's and Kruskal's minimum spanning tree algorithms}
A framework based on Stone relation algebras and Kleene algebras and extended by operations for aggregation and minimisation was presented by the first author in \cite{Guttmann2016c,Guttmann2018b} and used to formally verify the correctness of Prim's minimum spanning tree algorithm.
It was extended in \cite{Guttmann2018c} and applied to prove the correctness of Kruskal's minimum spanning tree algorithm.
Two theories, one each for Prim's and Kruskal's algorithms, prove total correctness of these algorithms.
As case studies for the algebraic framework, these two theories combined were originally part of another AFP entry \cite{Guttmann2018a}.
\subsection{Bor\r{u}vka's minimum spanning tree algorithm}
Otakar Bor\r{u}vka formalised the minimum spanning tree problem and proposed a solution to it \cite{Boruvka1926}.
Bor\r{u}vka's original paper is written in Czech; translations of varying completeness can be found in \cite{GrahamHell1985,NesetrilMilkovaNesetrilova2001}.
The theory for Bor\r{u}vka's minimum spanning tree algorithm proves partial correctness of this algorithm.
This work is based on the same algebraic framework as the proof of Kruskal's algorithm; in particular it uses many theories from the hierarchy underlying \cite{Guttmann2018a}.
The theory for Bor\r{u}vka's algorithm formally verifies results from the second author's Master's thesis \cite{RobinsonOBrien2020}.
Certain lemmas in this theory are numbered for easy correlation to theorems from the thesis.