NeuralSAT: A DPLL(T) Framework for Verifying Deep Neural Networks
Project description
NeuralSAT: A DPLL(T) Framework for Verifying Deep Neural Networks
NeuralSAT is a high-performance verification tool for deep neural networks (DNNs). It integrates the DPLL(T) approach commonly used in SMT solving with a theory solver specialized for DNN reasoning. NeuralSAT exploits multicores and GPU for efficiency and can scale to networks with millions of parameters. It supports a wide range of neural networks and activation functions.
NEWS
- NeuralSAT is ranked 2nd overall at VNN-COMP'25
- NeuralSAT is ranked 2nd overall at VNN-COMP'24
- Initially VNN-COMP’s script incorrectly parsed NeuralSAT’s (and another tool’s) results, and ranked it last. After fixing the issue, NeuralSAT’s results were correctly parsed and NeuralSAT was officially placed 2nd, behind ABCrown and above PyRAT. The updated VNN-COMP’24 report mentions the issue, presents the corrected rankings (see Table B.1), and includes detailed results and graphs in Appendix B.
- NeuralSAT is given the
New Participation Awardat VNN-COMP'23 - NeuralSAT is ranked 4th in VNN-COMP'23. This was our first participation and we look forward to next time.
- Note: The current version of NeuralSAT adds significant improvements and fixed the implementation bugs we had during VNN-COMP'23 that produce unsound results (hence 4th place ranking).
PUBLICATIONS
- CVPR'26 research paper on verifying AI-based computer vision systems.
- FSE’26 paper on formalizing and verifying structural robustness properties of AI systems.
- NeurIPS’25 paper on generating and checking DNN verification proofs.
- NeurIPS’25 paper on compositional DNN verification (Spotlight).
- SAIV'25 competition paper on NeuralSAT.
- CAV’25 paper on NeuralSAT verification tool.
- FSE'24 paper on new optimizations developed for the NeuralSAT.
- Arxiv'24 technical report on NeuralSAT design and methodology.
INSTALLATION & USAGE
- see INSTALL.md
FEATURES
-
fully automatic, ease of use and requires no tuning (i.e., no expert knowledge required)
- NeuralSAT requires no parameter tuning (a huge engineering effort that researchers often don't pay attention to)! In fact, you can just apply NeuralSAT as is to check your networks and desired properties. The user does not have to do any configuration or tweaking. It just works!
- But if you're an expert (or want to break the tool), you are welcome to tweak its internal settings.
- This is what makes NeuralSAT different from other DNN verifiers (e.g., AB-Crown), which require lots of tuning to work well.
- NeuralSAT requires no parameter tuning (a huge engineering effort that researchers often don't pay attention to)! In fact, you can just apply NeuralSAT as is to check your networks and desired properties. The user does not have to do any configuration or tweaking. It just works!
-
standard input and output formats
- input:
onnxfor neural networks andvnnlibfor specifications - output:
unsatfor proved property,satfor disproved property (accompanied with a counterexample), andunknownortimeoutfor property that cannot be proved.
- input:
-
versatile: support multiple types of neural types of networks and activation functions
- layers (can be mixture of different types):
fully connected(fc),convolutional(cnn),residual networks(resnet),batch normalization(bn) - activation functions:
ReLU,sigmoid,tanh,power
- layers (can be mixture of different types):
-
well-tested
- NeuralSAT has been tested on a wide-range of benchmarks (e.g., ACAS XU, MNIST, CIFAR).
-
fast and among the most scalable verification tools currently
- NeuralSAT exploits and uses multhreads (i.e., multicore processing/CPUS) and GPUs available on your system to improve its performance.
-
active development and frequent updates
- If NeuralSAT does not support your problem, feel free to contact us (e.g., by openning a new Github issue). We will do our best to help.
- We will release new, stable versions about 3-4 times a year
details
- sound and complete algorithm: will give both correct
unsatandsatresults - combine ideas from conflict-clause learning (CDCL), abstractions (e.g., polytopes), LP solving
- employ multiple adversarial attack techniques for fast counterexamples (i.e.,
sat) discovery
OVERVIEW
NeuralSAT takes as input the formula $\alpha$ representing the DNN N (with non-linear ReLU activation) and the formulae $\phi_{in}\Rightarrow \phi_{out}$ representing the property $\phi$ to be proved.
Internally, it checks the satisfiability of the formula: $\alpha \land \phi_{in} \land \overline{\phi_{out}}$.
NeuralSAT returns UNSAT if the formula is unsatisfiable, indicating N satisfies $\phi$, and SAT if the formula is satisfiable, indicating the N does not satisfy $\phi$.
NeuralSAT uses a DPLL(T)-based algorithm to check unsatisfiability.
It applies DPLL/CDCL to assign values to boolean variables and checks for conflicts the assignment has with the real-valued constraints of the DNN and the property of interest.
If conflicts arise, NeuralSAT determines the assignment decisions causing the conflicts and learns clauses to avoid those decisions in the future.
NeuralSAT repeats these decisions and checking steps until it finds a full assignment for all boolean variables, in which it returns SAT, or until it no longer can decide, in which it returns UNSAT.
PERFORMANCES
VNN-COMP is an annual competition on neural network verification that has been held annually to facilitate the fair and objective comparison of SOTA neural network verification tools. The goal of VNN-COMP is to encourage the standardization of tool interfaces, and bring together the neural network verification community. To this end, VNN-COMP uses standardized formats for networks (ONNX) and specification (VNN-LIB), and evaluates tools using a common set of benchmarks (collected from various sources including previous papers and contributions from the community) on a common platform (AWS instances).
The cactus plot shows NeuralSAT and other tools performance on Regular Track benchmarks from VNN-COMP'25.
PEOPLE
- Hai Duong (GMU, main developer)
- Jahnvi (GMU)
- Thanh Le (NII)
- Lam Nguyen (HUST)
- Linhan Li (GMU)
- Nguyen Ho (GMU)
- ThanhVu Nguyen (GMU)
- Matthew Dwyer (UVA)
ACKNOWLEDGEMENTS
The NeuralSAT research is partially supported by grants from NSF (1900676, 2019239, 2129824, 2217071, 2501059, 2422036, 2319131, 2238133, 2200621) and an Amazon Research Award and an NVIDIA Academic Grant.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file neuralsat-0.2.17.tar.gz.
File metadata
- Download URL: neuralsat-0.2.17.tar.gz
- Upload date:
- Size: 936.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
842e0c2f0826ca25d5814d98a42b66a7efa66bd9c51ea30d3aa7e3e8e006fbf4
|
|
| MD5 |
90a0b2daf717e214443260f8873972e6
|
|
| BLAKE2b-256 |
4fc883dc513574d5c3a5658ee3b2d27c80777e3bdce15e60fe263d678ab61016
|
File details
Details for the file neuralsat-0.2.17-py3-none-any.whl.
File metadata
- Download URL: neuralsat-0.2.17-py3-none-any.whl
- Upload date:
- Size: 1.2 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cdb4dbb655a58dbc91ee0271ebe855693da3676e3288612ae9c06782791dbeb0
|
|
| MD5 |
12fca2448c78d88b376df6bd109a4944
|
|
| BLAKE2b-256 |
695187d079dafa85952f7ff69d60a1516b88b8eb74cc90779285989531506ef9
|