Algebra of Programming by Richard Bird and Oege De Moor
Describes an algebraic approach to programming that permits the calculation of programs. Introduces the fundamentals of algebra for programming. Presents paradigms and strategies of program construction that form the core of Algorithm Design. Discusses functions and categories; applications; relations and allegories; datatypes; recursive programs, optimization issues, thinning algorithms, dynamic programming and greedy algorithms. Appropriate for all programmers. -- Amazon Review
AlgebraOfProgramming is an algebraic approach to program calculation.
The theory about RelationsAndAllegories? is based on CategoryTheory with extra axioms on the sets of morphisms (HomSets?).
Some researchers view CategoryTheory as an alternative to SetTheory. The power of CategoryTheory is that it is universal and by moving from objects and morphisms to objects and HomSets? we lose some of that UniversalExpressiveness.
For more information about RelationsAndAllegories? see The AlgebraOfProgramming, the book.
-- HenrikLjung