Installation

Binary Files

The easiest way to get started with OPPAS is to use the pre-packaged OPPAS executable files from the GitHub release.

The instructions below will work on a GNU/Linux terminal. If you are running Windows, you will need to install the Windows Subsystem for Linux (WSL). Please follow the installation instructions by Microsoft. Once WSL is installed, setup and open a terminal.

If you are using GNU/Linux, you may open a terminal and proceed directly.

First extract the files from the archive with your favorite program. For instance, open a terminal and run

mkdir oppas
tar -xvf oppas-3.1.0-x86_64.tar.xz -C oppas

The above commands creates a new directory named oppas, and extract the files into it.

Among the files extracted from the archive, you’ll find the pomc and popacheck executables. Let’s do a couple of quick checks to see if they work.

First, just run

./popacheck --help

This will print something like:

POPACheck v3.1.0

followed by the usage instructions. The same should happen when running pomc with the --help flag.

Compile from Sources

OPPAS has been developed in the Haskell programming language, and packaged with the Haskell Tool Stack.

POPACheck has a few dependencies:

  • Z3 for solving (nonlinear) equations systems.

  • BLAS/LAPACK, GSL and GLPK for approximating solutions to PPSs via iterative fixpoint numerical methods (Newton’s method), which are used in the Haskell hmatrix package.

On a Debian-based GNU/Linux distribution, they can be installed by running:

sudo apt install libz3-dev libgsl0-dev liblapack-dev libatlas-base-dev

This link contains some information on how to install hmatrix dependencies on other systems. Haskell bindings to Z3 are hosted on the GitHub repository haskell-z3.

The Z3 library requires special care, because some features used by POPACheck are buggy in older versions. The current version of the tool (3.1.0) has been fully tested with Z3 versions 4.11.2, 4.13.4 and 4.14.1 on Ubuntu 24.10 and 25.04. We experienced some issues on with other versions of Z3 (e.g., 4.8.12), where Z3 sometimes returns error Z3: invalid argument. Please report to the OPPAS development team in case you experience issues.

After having resolved the dependencies, OPPAS can be built from sources by typing the following commands in a shell:

cd ~/path/to/oppas-sources
stack setup
stack build

This command automatically clones and builds also the bindings from haskell-z3.

Then, you can invoke POMC and POPACheck directly from Stack:

stack exec -- pomc --help
stack exec -- popacheck --help

Or install them somewhere with

stack install --local-bin-path /install/path