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.0.tar.gz (12.5 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.0-py3-none-any.whl (10.6 kB view details)

Uploaded Python 3

File details

Details for the file vnnfilter-0.1.0.tar.gz.

File metadata

  • Download URL: vnnfilter-0.1.0.tar.gz
  • Upload date:
  • Size: 12.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.11.9

File hashes

Hashes for vnnfilter-0.1.0.tar.gz
Algorithm Hash digest
SHA256 7ad29ec8caa34ac6d604880b2c9cc784b97fb089a07878acb0a9971738e02773
MD5 f5b94369df680d1dd74fb5702356adf9
BLAKE2b-256 6616129cc17a30bdba11a999423b5a061909315044d52160619264f980f0c4cf

See more details on using hashes here.

File details

Details for the file vnnfilter-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: vnnfilter-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 10.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.11.9

File hashes

Hashes for vnnfilter-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 31943b43ed2f4db2f79dadba57e48c06625f0f2ef02782609e5424ee398f6ac9
MD5 c53dbc362a0c02f481487387ba947da9
BLAKE2b-256 e0af81c002ed90ddc39d33925712d73320ac43ed4e0bc47dca518575bfe3c389

See more details on using hashes here.

Release history Release notifications | RSS feed

0.1.1

2 files

This release

0.1.0 This release

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