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 Type-checker
Parser Type-checker
Parser Type-checker
Parser
Parser Type-checker Semantics
We welcome PRs to these libraries and 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