Skip to content


Folders and files

Last commit message
Last commit date

Latest commit



7 Commits

Repository files navigation


This repository contains an Haskell package, picalc, and an executable jb, short for "James Bound". It defines data structures and functions for the representation of the syntax and operational semantics of the π-calculus, and its depth-bounded fragment (hence the name).

For more information about π-calculus see

Other (more theoretical) references for a quick introduction are

The analysis implemented by James Bound is a variation over the type system described in

This module is not intended to define a π-calculus style embedded domain specific language but rather to represent, transform, analyse and interpret π-calculus terms. For this reason the interpretation is not tuned for speed and it is not meant to be used for executing systems but rather to explore the semantics of the terms.

The current version is to be considered experimental and simply a playground for experimenting with π-calculus.


This code is released under GPLv2 but in the spirit of the CRAPL:

Science thrives on openness.

In modern science, it is often infeasible to replicate claims without access to the software underlying those claims.

Let's all be honest: when scientists write code, aesthetics and software engineering principles take a back seat to having running, working code before a deadline.

So, let's release the ugly. And, let's be proud of that.


The jb program can be compiled by running

cabal build

from the top directory of the repository.

Syntax of the language

PiCalc implements a variant of polyadic π-calculus. Its syntax is defined in the wiki and the file.


James Bound, a depth-bounded π-calculus playground







No releases published


No packages published