Clemens Grabmayer: Relating Proof Systems for Recursive Types (pdf (locally), thesis page/pdf (on VU-Amsterdam Research Portal)). PhD thesis, Vrije Universiteit Amsterdam, 2005.
This tool is a prototype implementation of the maximal-sharing operation for functional programs in the λ-calculus with letrec as defined in our ICFP 2014 paper. Following the definition of maximally shared representations of such functional programs via a ‘representation pipeline’, the tool transforms a given functional program in the Core language of the λ-calculus with letrec into a term graph, and subsequently into a deterministic finite-state automaton (DFA). It prints intermediate representations, and graphically displays the obtained DFA. This DFA is then minimized, and finally a maximally shared representation of the original program is computed as the result.
This is an animation tool for displaying and transforming port graphs (a general framework for graph transformations), and for carrying out rewrite-rule based transformations on these graphs per mouse-click. It produces beautifully rendered graphs that slowly float over the screen like bacteria in a liquid under a microscope.