Lecture Notes on Algebraic and Coalgebraic Methods for Calculating Functional Programs
Functional programs are merely equations; they may be calculated by straightforward equational reasoning. Many useful theorems for such reasoning derive from an algebraic view of programs‚ built around datatypes and their operations. Traditional algebraic methods concentrate on initial algebras‚ constructors‚ and values; dual‚ co−algebraic‚ methods concentrate on final co−algebras‚ destructors‚ and processes. Both methods are elegant and powerful; they deserve to be combined.
Estonian Winter School on Computer Science