VNN-LIB Solver Database
A searchable record of what each neural network verifier can do, collected automatically from the verifiers themselves.
Verifiers that conform to VNN-LIB 2.0 implement a
supports command that reports their capabilities. This repository installs
each registered solver once, asks it, records the answer, and throws the solver
away. Everything downstream reads the recorded answers and never touches a
solver again.
Repository layout
solvers/<id>/<version>/ one directory per solver release
install.sh how to install it
solver.toml who wrote it, where it lives
data/solvers.json the collected solvers
scripts/ the collection pipeline
validate.py check a submission, installing nothing
register.py install it, hand it to collect, tear down
collect.py ask the solver what it supports
build.py merge records into the database
report.py render records as markdown for a PR comment
schema.py constants the others must agree on
api/ read-only HTTP API over the database
src/vnnfilter/ the Python package
tests/
unit/ pure functions, no solver, milliseconds
integration/ the whole pipeline against fake solvers
fixtures/ fake solvers, one per outcome
docs/SUBMITTING.md what a submission must contain
docs/SCHEMA.md what the database records mean
Each directory has its own README: scripts for the pipeline, tests for how to run everything, api for the HTTP endpoints and hosting.
Python 3.12, everywhere — the workflows, the machine that collects, and
the API host. register.py builds each solver's virtualenv by cloning the
interpreter that runs it, so the version you launch it with is the version
solvers get installed under.
Searching the database
pip install vnnfilter
vnnfilter --arithmetic POLY --operators Conv
Where a solver's supports command reports what it can do, vnnfilter asks the
opposite question: given what you need, which solvers can do it. Every criterion
is optional, and anything you leave out is ignored rather than assumed.
Adding a solver
Open a pull request adding a directory under solvers/. See
docs/SUBMITTING.md.
A workflow will install your solver and post its capabilities as a comment on the pull request, so you can see exactly what will be recorded before anyone merges it.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file vnnfilter-0.1.1.tar.gz.
File metadata
- Download URL: vnnfilter-0.1.1.tar.gz
- Upload date:
- Size: 12.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
22a4b38823a65a0cf9275209b7672dd76604dc4bc12e77355ec57dc2ebc9de5b
|
|
| MD5 |
cf38f15fc41b397a931e2fe1d3cb9c7f
|
|
| BLAKE2b-256 |
2e448dd2b53db5a6ff5cf1b35d1720042fefb456d60d110e84f4beb361b85736
|
Provenance
The following attestation bundles were made for vnnfilter-0.1.1.tar.gz:
Publisher:
publish.yml on VNNLIB/VNNLIB-Solver-Database
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vnnfilter-0.1.1.tar.gz -
Subject digest:
22a4b38823a65a0cf9275209b7672dd76604dc4bc12e77355ec57dc2ebc9de5b - Sigstore transparency entry: 2754440665
- Sigstore integration time:
-
Permalink:
VNNLIB/VNNLIB-Solver-Database@614e129e3feec2058da38b86964d2914fbc7f8d2 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/VNNLIB
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@614e129e3feec2058da38b86964d2914fbc7f8d2 -
Trigger Event:
push
-
Statement type:
File details
Details for the file vnnfilter-0.1.1-py3-none-any.whl.
File metadata
- Download URL: vnnfilter-0.1.1-py3-none-any.whl
- Upload date:
- Size: 10.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cdbb6ce82924f8cf025ebe3bbe0e86d25d5ac4752b8eeb69260ec742dbcef0a5
|
|
| MD5 |
585a38f0915647fca5ecedaf6ca1b953
|
|
| BLAKE2b-256 |
938dd8bbcaaae4ab8052950ac25e1a3fe28e29867c356e9c70e35d47d638cb40
|
Provenance
The following attestation bundles were made for vnnfilter-0.1.1-py3-none-any.whl:
Publisher:
publish.yml on VNNLIB/VNNLIB-Solver-Database
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vnnfilter-0.1.1-py3-none-any.whl -
Subject digest:
cdbb6ce82924f8cf025ebe3bbe0e86d25d5ac4752b8eeb69260ec742dbcef0a5 - Sigstore transparency entry: 2754440668
- Sigstore integration time:
-
Permalink:
VNNLIB/VNNLIB-Solver-Database@614e129e3feec2058da38b86964d2914fbc7f8d2 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/VNNLIB
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@614e129e3feec2058da38b86964d2914fbc7f8d2 -
Trigger Event:
push
-
Statement type: