Information Flow – A Learning Environment

if4fun is a tool supporting some concepts from the notes Language Based Security: Information Flow.

Browser Compatibility

The tool uses a responsive design and can be used on any device with a modern browser. The tool has been developed and tested in Google Chrome v69. The online version of the tool has also been tested in Firefox v62.


The core functionality is written in F# and then converted to JavaScript using Fable.

Developed by Mike Castro Lundin, based on the specification developed by Hanne Riis Nielson and Flemming Nielson.

This software is protected under the Simplified BSD License and the Intellectual Property Rights of the Technical University of Denmark.

Bugs and suggestions

Please report all bugs and suggestions to


This tool is compiled to javascript, and therefore only requires a browser to run. Download the tool for offline usage.

Download Information Flow – A Learning Environment

Security Analysis

Explore the information flows in the specified program, according to a user defined security lattice and classification of variables and arrays.

There are templates for the lattices known from the book, but it is also possible to specify a custom security lattice. The lattice must be a partialy ordered set shown in the right as , otherwise there will be shown an error as . When a correct lattice is specified, it is illustrated below as a Hasse diagram.

The analysis requires you to classify all the variables and arrays in the program before it is possible to get a result.

The result shows the difference between the set of actual information flows in the program and which information flows that are allowed by the specified security classification.

Security Policies