Skip to content

What is ACT? ​

ACT (Abstract Constraint Transformation) is a testing and verification framework for neural networks. Given a model and a specification of the inputs it may receive and the outputs it must produce, ACT either finds a counterexample, an input that violates the specification, or proves that none exists.

ACT is PyTorch-native and runs on CPU or GPU. It reads PyTorch models, ONNX networks and VNN-LIB properties, converts them into one intermediate representation (the ACT Net), and verifies that representation with several abstract domains and solvers.


Quick Start ​

Try it online ​

The ACT online workbench runs ACT on a server, so you only need a browser. Pick a model, choose Fuzzing, Verification or BaB, and watch ACT's results, layer bounds and counterexamples.

Run it locally ​

bash
git clone --recursive https://github.com/SVF-tools/ACT.git
cd ACT
conda env create -f environment.yml
conda activate act-py312

python -m act.back_end --generate --device cpu --dtype float64              # build the example networks
python -m act.back_end --verify --network act/back_end/examples/nets/mlp_plain_3x8_64x64_3962224133.json --device cpu   # verify one of them

See Installation for Gurobi and benchmark downloads.

Verify your own model ​

bash
python -m act.back_end --verify --onnx model.onnx --vnnlib property.vnnlib --solver torchlp --device cpu

What ACT reports ​

ResultMeaning
CERTIFIEDThe property holds for every input in the specification.
FALSIFIEDACT found a counterexample and checked it on the concrete model.
UNKNOWNThe abstraction was too coarse to decide, and no counterexample was found.
TIMEOUTThe time budget ran out first.

Fuzzing can only falsify: a fuzz run without a counterexample ends as unknown, never certified.


What ACT supports ​

AreaSupported
InputsPyTorch modules, ONNX networks, VNN-LIB properties, TorchVision dataset and model pairs, compact BERT text models
Input specificationsbox, L∞ ball, linear polytope
Output propertiestop-1 robustness, margin robustness, linear constraints, output ranges, unsafe linear regions
LayersMLP, CNN, RNN and Transformer layers
Abstract domainsinterval, HybridZ (zonotopes), dual (linear relaxation)
SolversTorchLP, dual, HybridZ, Gurobi MILP/LP (license required)
Testingwhitebox fuzzing, verifier soundness validation, PyTorch ↔ ACT conversion checks

Publications ​

ACT is licensed under the GNU Affero General Public License v3.0.


What's next ​