A tool that analyses probabilistic programs, allows for automatic invariance checking and handles inference all based on Generatingfunctionology.
// readme
prodigy: PRObability DIstributions via GeneratingfunctionologY
prodigy is a prototypical tool for the analysis of probabilistic non-negative integer programs with while-loops. It is based on (probability) generating functions.
It provides a command-line interface and a web GUI.
Contents
- Installation
- Basic Usage
Installation
With pip
Prodigy is on PyPI as prodigy-ppl (the command and the Python package are called prodigy):
pip install prodigy-ppl
This needs Python 3.11 or newer and contains the SymPy, SymEngine and the faster GiNaC engine (--engine ginac).
The GiNaC engine comes from prodigy-ppl-ginac, whose wheels bundle
GiNaC; pip installs it on Linux (x86_64, aarch64, glibc) and macOS with Python 3.11โ3.14. Elsewhere, the extra ginac
builds it from source, which needs a C++17 compiler, CMake and GiNaC:
pip install "prodigy-ppl[ginac]"
With Docker
The image contains the command line and the web GUI with the SymPy, GiNaC and SymEngine engines, for amd64 and arm64
(tags: version, e.g. 3.1.0, minor version 3.1, and latest).โฆ