Relations and graphs: discrete mathematics for computer scientists
Relations and graphs: discrete mathematics for computer scientists
Structuring depth-first search algorithms in Haskell
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Deriving a class of layer-oriented graph algorithms
Science of Computer Programming - Special issue on mathematics of program construction
Functional programming with graphs
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
Information Processing Letters
Journal of the ACM (JACM)
Deriving relational programs for computing kernels by reconstructing a proof of Richardson's theorem
Science of Computer Programming
Communications of the ACM
The Haskell: The Craft of Functional Programming
The Haskell: The Craft of Functional Programming
Introduction to Functional Programming
Introduction to Functional Programming
WG '92 Proceedings of the 18th International Workshop on Graph-Theoretic Concepts in Computer Science
Graph Algorithms with a Functional Flavous
Advanced Functional Programming, First International Spring School on Advanced Functional Programming Techniques-Tutorial Text
An Initial-Algebra Approach to Directed Acyclic Graphs
MPC '95 Mathematics of Program Construction
Layered Graph Traversals and Hamiltonian Path Problems - An Algebraic Approach
MPC '98 Proceedings of the Mathematics of Program Construction
Inductive graphs and functional graph algorithms
Journal of Functional Programming
Implementing Relational Specifications in a Constraint Functional Logic Language
Electronic Notes in Theoretical Computer Science (ENTCS)
Rectangles, fringes, and inverses
RelMiCS'08/AKA'08 Proceedings of the 10th international conference on Relational and kleene algebra methods in computer science, and 5th international conference on Applications of kleene algebra
On automated program construction and verification
MPC'10 Proceedings of the 10th international conference on Mathematics of program construction
A functional, successor list based version of warshall's algorithm with applications
RAMICS'11 Proceedings of the 12th international conference on Relational and algebraic methods in computer science
RelView: an OBDD-based computer algebra system for relations
CASC'05 Proceedings of the 8th international conference on Computer Algebra in Scientific Computing
Semigroupoid interfaces for relation-algebraic programming in haskell
RelMiCS'06/AKA'06 Proceedings of the 9th international conference on Relational Methods in Computer Science, and 4th international conference on Applications of Kleene Algebra
Using relations to develop a haskell program for computing maximum bipartite matchings
RAMiCS'12 Proceedings of the 13th international conference on Relational and Algebraic Methods in Computer Science
Hi-index | 0.00 |
We show how to systematically derive simple purely functional algorithms for computing the reflexive-transitive closure of directed graphs. Directed graphs can be represented as binary relations and we develop our algorithms based on a relation-algebraic description of reflexive-transitive closures. This description employs the relation-algebraic notion of rectangles and instantiating the resulting algorithm with different kinds of rectangles leads to different algorithms for computing reflexive-transitive closures. Using data refinement, we then develop simple Haskell programs for two specific choices of rectangles and show that one of them has cubic runtime like an imperative implementation of Warshall's standard algorithm.