VNN-LIB is an open-source standard for automated solvers of satisfiability problems over neural networks. The goal of the standard is to foster interoperability in the neural network verification community. To this end, the standard defines:
Contributions and suggestions to the standard are welcome! If interested, please open an Issue describing your proposal on the GitHub repo.
(vnnlib-version <2.0>)
; Network declaration
(declare-network f
(declare-input X float32 [2,2])
(declare-output Y float32 [1])
)
; Input constraints
(assert (and (>= X[0,0] 0.0) (<= X[0,0] 1.0)))
(assert (and (>= X[0,1] 0.0) (<= X[0,1] 1.0)))
(assert (and (>= X[1,0] 0.0) (<= X[1,0] 1.0)))
(assert (and (>= X[1,1] 0.0) (<= X[1,1] 1.0)))
; Output constraints
(assert (or (<= Y[0] -3.0) (>= Y[0] 0.0)))
Solvers that are known to support VNN-LIB.
| Name | VNN-LIB Version |
|---|---|
| Marabou | 1.0 |
| NNV | 1.0 |
| Pyrat | 1.0 |
To add a solver to this list, please open a pull request.
Released versions of the VNN-LIB standard.
| Document | Release date |
|---|---|
| VNN-LIB 2.0 | December 15th 2025 |
| VNN-LIB 1.0 | November 11th 2022 |
Citing the standard:
The following official libraries are available for interacting with the VNN-LIB standard in a variety of languages.
Parser Provides:
Implemented as bindings to the C++ library.
We welcome ports to further languages!
Lecturer | University of Western Australia
Post-Grad | University of Western Australia
Post-Grad | University of Western Australia
PhD Student | UniGE
Full Professor | UniGE
Post-Doc Researcher | UniGE
Full Professor | UniSS
Post-Doc Researcher | UniSS