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.7.0

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.7.0
File Size Uploaded Provenance
acacia_boomslang-2.7.0.tar.gz 6.5 MB With provenance Details

Built distributions (wheels)

Table of built distributions (wheels) for acacia-boomslang 2.7.0
File
acacia_boomslang-2.7.0-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.7.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.26+ ARM64, Linux glibc 2.28+ ARM64 Details
acacia_boomslang-2.7.0-cp314-cp314-macosx_15_0_arm64.whl CPython 3.14 CPython 3.14 macOS 15.0+ ARM64 Details
acacia_boomslang-2.7.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
acacia_boomslang-2.7.0-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.7.0-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.7.0.tar.gz

Download URL acacia_boomslang-2.7.0.tar.gz
Size 6.5 MB
Tags Source
SHA-256 checksum
How to use checksums
6ab491e5e0516610bdb6f5a730eaae3a702143062c357e866c870f615b5baea9
BLAKE2b-256 checksum
How to use checksums
efa5ac39ce546c46e2da79a6bb2f5c9ec329e18153d72ba6265d9ef5a7484e61
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 23, 2026.

Transparency log

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

Download URL acacia_boomslang-2.7.0-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
d99e6ab2b7ae58b65308eda85fd10a18a6357bdeed52238d845bff3719281f7c
BLAKE2b-256 checksum
How to use checksums
3c2a334e7660a6d99da90d98b10b016b2ab535689cfb8903bab0561e540264de
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 23, 2026.

Transparency log

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

Download URL acacia_boomslang-2.7.0-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
a8caaf69c2228f088894a1c4c8069f1dfc838114a8854c2cb20d9e938d29a133
BLAKE2b-256 checksum
How to use checksums
0ec61e1209f30127ded5e9ee5ba97f4af149689d4f2ed8df55ecfcf5a1736b34
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 23, 2026.

Transparency log

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

Download URL acacia_boomslang-2.7.0-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
e47234ffda807d139ee4eedfd588bb3f5a25ad9acafb3621320d2f9bd1a607b5
BLAKE2b-256 checksum
How to use checksums
171fdf2a094db2dc974d7c04157503bb9365e50cca93471027ab049f3acfa54d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 23, 2026.

Transparency log

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

Download URL acacia_boomslang-2.7.0-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
1b853a00eca1ee0ff776f8c9a4a195d55f6b8f70363c5d4da51bd41b0f2cde3a
BLAKE2b-256 checksum
How to use checksums
748111f708e10d59dd9d9039e0501b8a771329c9ae9cf63e72a6f6a537bbf06c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 23, 2026.

Transparency log

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

Download URL acacia_boomslang-2.7.0-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
849c196c8809cbd813182719d3f0df1f6c3eeaaeb01e3b22686e739512051be6
BLAKE2b-256 checksum
How to use checksums
916e5630ae6cd36d25e161b528a788596e0810fe28bc1a0661431659eef07333
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 23, 2026.

Transparency log

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

Download URL acacia_boomslang-2.7.0-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
164d2bc0125ac8c051936c052d03661da2286f30504c3814b9da3ce455ba2001
BLAKE2b-256 checksum
How to use checksums
305c349f927b92b27f23b990144217a32f0a706fea93c6bdf64d36b2164d4acf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 23, 2026.

Transparency log

Security for acacia-boomslang 2.7.0

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.7.0.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 23, 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