Welcome to BPpy’s documentation!
BPpy is a Python implementation for the Behavioral Programming paradigm.
A general introduction to Behavioral Programming can be found in this BPjs tutorial and others.
Installation
You can install bppy with pip:
pip install bppy
This does not include dependencies for gym integration. To install bppy with gym integration, use:
pip install bppy[gym]
If installation is not working, you can try upgrading pip:
pip install --upgrade pip
before submitting an issue.
In case you want to get started instantly and use bppy (with pynusmv and all dependencies) without installing it, you can use the docker image:
docker run -it tomyaacov/bppy-docker
Contents
- API Docs
- Examples
- Hello World
- Hot Cold
- Using Z3-Solver SMT based BP
- Dynamically Adding b-threads
- Using External Events
- Using Priority Based Event Selection Strategy (Tic Tac Toe)
- Learning a BProgram as a gym environment
- Verify a BProgram using Depth First Search (DFS)
- Symbolically verify a BProgram using PyNuSMV
- Example - Sokoban
- Analyzing Probabilistic Systems using PRISM integration
Citing BPpy
To cite this repository in publications:
@inproceedings{yaacov_exploring_2025,
title = {Exploring and Evaluating Interplays of BPpy with Deep Reinforcement Learning and Formal Methods},
isbn = {978-989-758-742-9},
doi = {10.5220/0013215200003928},
booktitle = {Proceedings of the 20th International Conference on Evaluation of Novel Approaches to Software Engineering},
publisher = {SciTePress},
author = {Yaacov, Tom and Weiss, Gera and Ashrov, Adiel and Katz, Guy and Zisser, Jules},
year = {2025},
pages = {27--40},
}