Skip to content
A visualiser for lambda terms as rooted maps.
JavaScript Haskell HTML CSS
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

A visualiser for λ-terms as rooted maps

My MSci final year project: a set of tools to help investigation of terms from various fragments of the λ-calculus. The core function of the tools is to represent these λ-terms as maps - some background on maps and how λ-terms can be represented as them can be found in my Scientific Paper.


Two tools were made for the project:

λ-term visualiser

λ-term visualiser

This is a tool to visualise λ-terms as maps. A user can input a term and a set of free variables, and the tool will draw the corresponding map.

λ-term gallery

λ-term gallery

This tool builds on the visualiser to generate galleries of λ-terms that fulfill certain critera. The primary parameters for generating terms are the size and the number of free variables. Terms can be generated from the pure, linear or planar λ-calculus. The generated terms can also be filtered by a number of different properties, such as crossings in the generated maps.

λ-term portraits

Redex 1 Redex 2

All sorts of interesting information is provided about terms, such as the available beta-redexes. By hovering over these redexes, they will be highlighted in the term and on the visualised map. Reductions can be performed by clicking on the redexes, or alternatively the process can be animated in innermost or outermost strategies.

Normalisation graphs

Normalisation graph Omega normalisation graph Normalisation graphs can also be generated for terms!


The Project Proposal is a brief overview of the aim of this project and a possible schedule.

The Scientific Paper gives some background on the topics involved, and how the project was progressing towards the end of November.

The Project Report is the report from the end of the project - the dissertation!

You can’t perform that action at this time.