Prior-Art Survey: Method and Ledger
This page documents how the prior-art survey behind the comparison guide, the statement of need, and the JOSS paper’s “State of the field” section was carried out, so that the survey’s central claim is reproducible and datable rather than an assertion.
Survey date: 26 July 2026.
Claim supported. As of the survey date, no located package combines BooFun’s three-part focus — Fourier-analytic Boolean-function measures, property testing, and query complexity — in one library. CircuitGraph is the clearest published partial overlap (influence and average sensitivity via model counting); fbool is the closest unpublished one (Fourier metrics, influence, sensitivity, certificate complexity). This is a scoped, dated search result, not proof of absence.
Method
The survey ran keyword searches against the sources below, then verified every candidate against primary sources before classifying it.
Sources and query strings
Source |
Queries run |
|---|---|
JOSS paper search ( |
|
Crossref REST API ( |
bibliographic queries for each candidate’s title/authors, and direct DOI record fetches to verify venue, year, authors, and title of every citation used |
PyPI ( |
|
CRAN (incl. archive) |
|
crates.io |
|
GitHub search |
|
Julia registry ( |
|
General web search (dated engine results) |
|
Verification protocol
For each candidate surfaced by any query:
Locate the primary artifact (repository and/or package registry entry).
If a paper is claimed, verify its metadata (venue, year, DOI, authors) through Crossref or the publisher — not through secondary mentions.
Establish capabilities from the project’s documented public API (API reference, README examples), not from abstracts or taglines.
Record maintenance status (last release/commit, archived flags).
Inclusion criteria
A system enters the comparison documents if it computes function-level analytic quantities of Boolean functions (spectra, influence, sensitivity, complexity measures, testing, cryptographic criteria) through a public API. Systems are classified as: direct overlap (shares part of BooFun’s Fourier/testing/complexity core), specialized cryptographic, networks/biology, BDD/circuits/synthesis, transform kernels (fast transforms without function-analysis semantics), or out of scope.
Candidate ledger
Every system evaluated, including rejections — so a future re-run can diff against this list.
Direct or materially overlapping
System |
Evidence checked |
Notes |
|---|---|---|
boolfun (R) |
R Journal 2011, DOI; CRAN archive |
Peer-reviewed scalar crypto predecessor; archived 2012 |
VBF (C++) |
ACM TOMS 2016, DOI; manual |
Peer-reviewed vectorial crypto predecessor |
fbool (Rust + Python) |
GitHub README/API, PyPI, v0.2.0 tag |
Closest modern Fourier-analytic neighbor; not peer reviewed |
py-aiger-spectral |
GitHub README |
Fourier coefficients/degree weights over AIGs; no release or paper |
Boolan |
GitHub README |
Small unmaintained package: influences, degree weights, variance, noise sensitivity |
CircuitGraph |
JOSS 2020, DOI; API docs |
Influence + average sensitivity via model counting |
QuantumQueryOptimizer |
ESA 2023, DOI |
Exact general-adversary SDP; used as a pinned cross-validation reference for BooFun’s certified adversary lower bounds |
Aaronson’s Boolean Function Wizard |
paper (2000) |
Historical query-complexity lineage; unmaintained |
Avishay Tal’s scripts |
course materials |
Reference implementations, not a versioned package |
Specialized cryptographic
System |
Evidence checked |
Notes |
|---|---|---|
SageMath |
Sage reference docs |
Walsh spectrum, nonlinearity, algebraic immunity; used as a pinned fixture reference |
sboxU |
GitHub |
Sage/C++ S-box cryptanalysis; APN, equivalence |
BooLSPLG |
Mathematics 2023, DOI |
Peer-reviewed CUDA C/C++ GPU library; Walsh/autocorrelation spectra, nonlinearity, degree, LAT/DDT, n ≤ 20 |
BoolCrypt |
GitHub; ePrint 2022/428 |
Sage-based vectorial functions; affine/CCZ equivalence via SAT |
PEIGEN |
IACR ToSC 2019 |
S-box evaluation/implementation/generation platform |
BSbox-tools |
project page |
Menu-driven predecessor from the BooLSPLG group; subsumed by BooLSPLG here |
|
crates.io, docs.rs |
Crypto properties in Rust; cross-validation candidate (#116) |
boolbox |
GitHub |
ANF/Möbius + quantum-circuit synthesis; pre-release, not on PyPI — below maturity threshold |
Boolean networks / systems biology
BoolForge (arXiv:2509.02496; live cross-validation reference), CANA (Frontiers in Physiology 2018; Bioinformatics 2025), pyboolnet, biobalm, PyDrugLogics, emba, NORDic. Network-level dynamics; function-level activities/sensitivity overlap only.
BDD / circuits / synthesis
pyeda, Biddy (JOSS 2019), sboxgates (JOSS 2021), CUDD, ABC, espresso. Representation and synthesis, not spectral analysis.
Transform kernels (no function-analysis semantics)
System |
Notes |
|---|---|
pyfwht / libfwht |
CPU/OpenMP/CUDA fast Walsh–Hadamard transforms; an optional BooFun dependency, not a competing analysis library |
Hadamard.jl (absorbed Walsh.jl) |
Julia FWHT kernels |
SymPy |
Transform function only |
SPbLA |
Sparse linear algebra over the Boolean semiring; terminological, not functional, overlap |
Out of scope / adjacent domains
Power-index packages (powerindex, powerindices, tucoopy, CooperativeGames, power-bdd): Banzhaf/Shapley–Shubik for weighted voting games via dynamic programming or BDDs. No Fourier machinery; adjacent only through the influence ↔ Banzhaf correspondence.
Boolin.jl: small helpers mirroring Mathematica’s
BooleanFunction.Mathematica (
BooleanFunction,BooleanConvert,BooleanMinimize): symbolic manipulation and minimization; no documented spectral/influence analysis.MATLAB: no located dedicated Boolean-function analysis toolbox (
fwhttransform only).
Limitations and how to re-run
The survey is limited to English-language, indexed sources on the survey date; capability judgments rest on documented public APIs, and undocumented features would be missed. To update it: re-run the queries in the table above, diff new candidates against the ledger, verify any additions via the protocol, and bump the survey date everywhere it appears (this page, the comparison guide, the statement of need, and the paper).