VNN-LIB is an open-source standard for automated solvers of satisfiability problems over neural networks. The goal of the standard is to foster greater robustness and interoperability in the neural network verification landscape. To this end, the standard defines:
(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[1,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.
Parser
A C++ library for parsing VNN-LIB query files.
Functionality includes the generation of an AST from a VNN-LIB query, and utilities to transform the AST into other formats.
Parser
A Python library for parsing VNN-LIB query files.
This package is implemented via Python bindings to the C++ parser.
Parser
A Julia library for parsing VNN-LIB query files.
This package is implemented via Julia bindings to the C++ parser.
Parser
Semantics
An Agda library for parsing VNN-LIB query files.
The library also contains a mechanised formal semantics of VNN-LIB queries.
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