Combining relation algebra and data refinement to develop rectangle-based functional programs for reflexive-transitive closures
Using an algebra of paths we present abstract algebraic derivations for two problem classes concerning graphs, viz. layer oriented traversal and computing sets of Hamiltonian paths. In the rst case, we are even able to abstract to the very general setting of Kleene algebras. Applications include reachability and a shortest path problem as well as topological sorting, cycle detection and nding maximum cardinality matchings.