Skip to main content

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

vnnfilter-0.1.1.tar.gz (12.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vnnfilter-0.1.1-py3-none-any.whl (10.5 kB view details)

Uploaded Python 3

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

Hashes for vnnfilter-0.1.1.tar.gz
Algorithm Hash digest
SHA256 22a4b38823a65a0cf9275209b7672dd76604dc4bc12e77355ec57dc2ebc9de5b
MD5 cf38f15fc41b397a931e2fe1d3cb9c7f
BLAKE2b-256 2e448dd2b53db5a6ff5cf1b35d1720042fefb456d60d110e84f4beb361b85736

See more details on using hashes here.

Provenance

The following attestation bundles were made for vnnfilter-0.1.1.tar.gz:

Publisher: publish.yml on VNNLIB/VNNLIB-Solver-Database

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for vnnfilter-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 cdbb6ce82924f8cf025ebe3bbe0e86d25d5ac4752b8eeb69260ec742dbcef0a5
MD5 585a38f0915647fca5ecedaf6ca1b953
BLAKE2b-256 938dd8bbcaaae4ab8052950ac25e1a3fe28e29867c356e9c70e35d47d638cb40

See more details on using hashes here.

Provenance

The following attestation bundles were made for vnnfilter-0.1.1-py3-none-any.whl:

Publisher: publish.yml on VNNLIB/VNNLIB-Solver-Database

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 files

0.1.0

2 files

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