Lambda

Download

Lambda 1.0

To check the download, run sha256sum lambda-1.0.tar.gz and compare the output with the value above.

Requirements

Lambda is written in Python (3.12 or later) and depends on two native components that are not on PyPI:

Lambda is developed on Linux. On other systems it needs MathSAT, ic3ia and their Python bindings to be available; on Windows, WSL is the simplest option.

The build needs a C++ compiler, CMake, SWIG, GMP and the Python development headers. On Ubuntu or Debian:

sudo apt-get install build-essential cmake swig libgmp-dev python3-dev python3-venv

Installation

Create a virtual environment in the Lambda directory and use it for every step below, so that the bindings are built for the same Python that runs Lambda:

tar xzf lambda-1.0.tar.gz && cd lambda-1.0
python3 -m venv .venv
source .venv/bin/activate
pip install setuptools -r requirements.txt

Build MathSAT's Python bindings from the python/ directory of the distribution, and copy the extension next to mathsat.py:

cd /path/to/mathsat/python
python3 setup.py build
cp build/lib.*/_mathsat*.so .

Build ic3ia and its Python bindings against that MathSAT:

cd /path/to/ic3ia
mkdir build && cd build
cmake .. -DMATHSAT_DIR=/path/to/mathsat \
         -DCMAKE_BUILD_TYPE=Release -DPYTHON_EXECUTABLE="$(which python3)"
make
make py

Add the two bindings to PYTHONPATH and check the installation from the Lambda directory:

export PYTHONPATH=/path/to/mathsat/python:/path/to/ic3ia/build:$PYTHONPATH
python3 -c 'import mathsat, ic3ia; print(mathsat.msat_get_version())'
python3 -m lambda_pmc -l vmt benchs/collection/mcmt/mcmt/vmt/bakery.vmt

The last command should end with System is SAFE. The README.md of the distribution covers the remaining cases, such as a second MathSAT library installed system-wide.

License

Copyright © 2026 Fondazione Bruno Kessler. Lambda is developed by Gianluca Redondi and Alberto Griggio and is distributed under the GNU General Public License, version 3 or later (GPL-3.0-or-later).