Skip to main content

Acacia-Bonsai

Acacia-Bonsai decides LTL realizability using antichains over downsets and synthesizes controllers. See the TACAS 2023 paper.

Docker

The CLI image includes sources and build dependencies. Compile inside the named container to target the host CPU, then run the wrappers:

docker pull ghcr.io/gaperez64/acacia-bonsai:latest
docker run --name acacia -it ghcr.io/gaperez64/acacia-bonsai:latest
./scripts/compile.sh
./scripts/acacia-bonsai.sh -f 'G F req -> G F grant' -i req -o grant
cat examples/realizable.tlsf | ./scripts/acacia-bonsai.sh --tlsf
cat examples/realizable.tlsf | ./scripts/acacia-synthesis.sh --tlsf > controller.aag

Re-enter with docker start -ai acacia. The wrappers follow docker_default; pass a shipped configuration as the first argument to select another. The Boomslang image bundles the Python bindings, Spot and Jupyter:

docker run --rm -p 8888:8888 ghcr.io/gaperez64/acacia-boomslang:latest

Build and run

Install GCC with C++23 support, Spot, Meson, Ninja, Zsh, Flex, Bison, Cargo (Rust 1.91+) and cbindgen 0.29.4. Every build includes OxiDD and native GR(1); Meson builds the native library from the nested sources. Initialize them:

git submodule update --init --recursive
meson setup build
meson compile -C build
build/src/acacia-bonsai -f 'G F req -> G F grant' -i req -o grant
build/src/acacia-bonsai -T examples/realizable.tlsf

On macOS, install GCC with Homebrew, set CC/CXX to that GCC toolchain, and build Spot with the same compiler. If needed, set PKG_CONFIG_PATH to Spot's lib/pkgconfig directory before Meson setup.

For an optimized build, read a shipping configuration from the registry:

preset=$(python3 scripts/acacia-config.py list-group docker_default | head -n1)
./self-benchmark.sh -R -c "$preset"
"build_${preset}/src/acacia-bonsai" -T spec.tlsf -s controller.aag

-R builds without benchmarking; add -L for the low-memory compile profile. Release builds target the local CPU. Native TLSF parsing needs no external converter at runtime. -s writes a controller for a REALIZABLE answer, including conversion for Moore targets. Use -h for CLI options.

Reference and results

Generate API documentation with doxygen Doxyfile.

Citing

@inproceedings{CadilhacPerez2023,
  author = {Michaël Cadilhac and Guillermo A. Pérez},
  title = {Acacia-Bonsai: A Modern Implementation of Downset-Based LTL Realizability},
  booktitle = {TACAS},
  year = {2023},
  pages = {192--207},
  doi = {10.1007/978-3-031-30820-8_14}
}

Metadata

Release files for acacia-boomslang 2.6.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for acacia-boomslang 2.6.1
File Size Uploaded Provenance
acacia_boomslang-2.6.1.tar.gz 6.5 MB With provenance Details

Built distributions (wheels)

Table of built distributions (wheels) for acacia-boomslang 2.6.1
File
acacia_boomslang-2.6.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
acacia_boomslang-2.6.1-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ ARM64, Linux glibc 2.26+ ARM64 Details
acacia_boomslang-2.6.1-cp314-cp314-macosx_15_0_arm64.whl CPython 3.14 CPython 3.14 macOS 15.0+ ARM64 Details
acacia_boomslang-2.6.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
acacia_boomslang-2.6.1-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.26+ ARM64, Linux glibc 2.28+ ARM64 Details
acacia_boomslang-2.6.1-cp313-cp313-macosx_15_0_arm64.whl CPython 3.13 CPython 3.13 macOS 15.0+ ARM64 Details

Total release size: 231.1 MB

Release files / acacia_boomslang-2.6.1.tar.gz

Download URL acacia_boomslang-2.6.1.tar.gz
Size 6.5 MB
Tags Source
SHA-256 checksum
How to use checksums
e573acdefcb99760c7f1297e2219b4ab6bbc429148a5553a585049290d59276b
BLAKE2b-256 checksum
How to use checksums
530918910f7bed6ab7e6c5b967a77a28dbbc58acdfd79b16eedd26ae6daaba76
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 18, 2026.

Transparency log

Release files / acacia_boomslang-2.6.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL acacia_boomslang-2.6.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 54.5 MB
Tags CPython 3.14 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
f24928fd7111e54d536ad23189ed7f4e9138db969521699f3c67f345cd457c44
BLAKE2b-256 checksum
How to use checksums
810d98be267ec68671069f3643790a6a768afc95772b466d28ceb197c9ff795c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 18, 2026.

Transparency log

Release files / acacia_boomslang-2.6.1-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL acacia_boomslang-2.6.1-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 53.3 MB
Tags CPython 3.14 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
59af48cc32ee7f5ba8eeb53c5ab12db78e47659907bf3accc47a3eba80d14900
BLAKE2b-256 checksum
How to use checksums
5ed55c4bfb27e569cf5fe45c8ea0f8f9fffe82e931a0a638164814767347599c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 18, 2026.

Transparency log

Release files / acacia_boomslang-2.6.1-cp314-cp314-macosx_15_0_arm64.whl

Download URL acacia_boomslang-2.6.1-cp314-cp314-macosx_15_0_arm64.whl
Size 4.5 MB
Tags CPython 3.14 macOS 15.0+ ARM64
SHA-256 checksum
How to use checksums
3eec9520983c3eadebc329adf3d049dfdf618470fd723f1cb3bc54ee9dd3787f
BLAKE2b-256 checksum
How to use checksums
1dbbae782c4d06b5ff3fd88d1691108e28d7f7363fab367ac87a8cb5466cb68f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 18, 2026.

Transparency log

Release files / acacia_boomslang-2.6.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL acacia_boomslang-2.6.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 54.5 MB
Tags CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
6a659194ab8a23a3f88d12631e4522f9ed0085c1a31d84783ad6682c02f74aca
BLAKE2b-256 checksum
How to use checksums
4956ef5011b0b5db6f554ab246ac3381afd795aaf09895e8346e1dc79053af22
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 18, 2026.

Transparency log

Release files / acacia_boomslang-2.6.1-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL acacia_boomslang-2.6.1-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 53.3 MB
Tags CPython 3.13 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
ec2b5afc28643a2078d61aa2927951ccc37426bd038e00c3980bc781c5284269
BLAKE2b-256 checksum
How to use checksums
a35d0f943ca081553b75523c6d68034d95141c26578cc3ace98a2ebe92709ad6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 18, 2026.

Transparency log

Release files / acacia_boomslang-2.6.1-cp313-cp313-macosx_15_0_arm64.whl

Download URL acacia_boomslang-2.6.1-cp313-cp313-macosx_15_0_arm64.whl
Size 4.5 MB
Tags CPython 3.13 macOS 15.0+ ARM64
SHA-256 checksum
How to use checksums
7fb402f015a487b25770f4e71364533a9139c0de344a2afdc89932312f4c17e0
BLAKE2b-256 checksum
How to use checksums
fd8b1288bb7842d908a593d33ed1f513fed15da96b28f004e3cfa12bbf8611d4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 18, 2026.

Transparency log

Security for acacia-boomslang 2.6.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 7 files in this release have been uploaded with provenance metadata.

Select from 7 files

Attestation for acacia_boomslang-2.6.1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 18, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page