Papers › Formal Security Analysis of Neural Networks using Symbolic Intervals

Formal Security Analysis of Neural Networks using Symbolic Intervals

28 Apr 2018arXiv:1804.10829archive 2025-07-28

Shiqi Wang, Kexin Pei, Justin Whitehouse, Junfeng Yang, Suman Jana

Due to the increasing deployment of Deep Neural Networks (DNNs) in real-world security-critical domains including autonomous vehicles and collision avoidance systems, formally checking security properties of DNNs, especially under different attacker capabilities, is becoming crucial. Most existing security testing techniques for DNNs try to find adversarial examples without providing any formal security guarantees about the non-existence of such adversarial examples. Recently, several projects have used different types of Satisfiability Modulo Theory (SMT) solvers to formally check security properties of DNNs. However, all of these approaches are limited by the high overhead caused by the solver. In this paper, we present a new direction for formally checking security properties of DNNs without using SMT solvers. Instead, we leverage interval arithmetic to compute rigorous bounds on the DNN outputs. Our approach, unlike existing solver-based approaches, is easily parallelizable. We further present symbolic interval analysis along with several other optimizations to minimize overestimations of output bounds. We design, implement, and evaluate our approach as part of ReluVal, a system for formally checking security properties of Relu-based DNNs. Our extensive empirical results show that ReluVal outperforms Reluplex, a state-of-the-art solver-based system, by 200 times on average. On a single 8-core machine without GPUs, within 4 hours, ReluVal is able to verify a security property that Reluplex deemed inconclusive due to timeout after running for more than 5 days. Our experiments demonstrate that symbolic interval analysis is a promising new direction towards rigorously analyzing different security properties of DNNs.

PaperPDFCodeCode Syntology ran

In Syntology Open this paper in Syntology's Atlas, the map of the papers in Syntology's graph and their citations.

For agents, Syntology's MCP tool lists every function and class Syntology harvested from this paper and whether it ran (how to connect): get_harvested_code_for_paper(arxiv_id="1804.10829")

Code

Syntology Ran 0 of 15 code samples harvested from 2 repositories linked to this paper; 15 have no recorded run.

By repository: community (archive-listed): 15 samples from 2 repositories, 0 ran. The run record, sample by sample. “Ran” means executed on a synthesized input, not that the code is correct or reproduces the paper.

pauls658/ReluDiff-ICSE2020-Artifact mentioned on GitHubtfApache-2.0 report
rm2pt/veriprune mentioned on GitHubApache-2.0 report
tcwangshiqi-columbia/Neurify mentioned on GitHubtf report
tcwangshiqi-columbia/ReluVal mentioned on GitHubNOASSERTION report

Repository list and official/mentioned flags are the archive's, frozen 2025-07-28. Reachability, where shown, is from one Syntology probe window (2026-09-16 to 2026-09-18); repositories not probed show nothing. GitHub stars are not tracked.

Code Syntology ran Syntology

15 samples harvested; 0 ran; 0 honoured the contract we drafted; 15 have no recorded run. Read from Syntology's graph 2026-09-24; that is when this build read the record, not when the samples ran.

15unverified

Licence: 0 of the 15 samples are pointer only, meaning Syntology does not serve that copy's text. This page shows no code text for any sample; each one links to its file in the repository.

Harvested from 2 repositories linked to this paper, official or community; each sample names its own and says which. “Ran” means the sample executed on a synthesized input. It does not mean the output is correct, and nothing here reproduces the paper's results. “Honoured” and “violated” refer to a contract Syntology drafted from the code itself; “our draft was wrong” and “fixture could not drive it” are failures of Syntology's instrument, not of the code.

Each sample ends with its code_sha256, Syntology's identity for that exact code. An agent fetches the stored sample with Syntology's MCP tool get_code(code_sha256="…") (how to connect); click an identity to copy that call.

Repository labels, per sample. official repository: The archive marks this repository official for the paper. named in the paper: The archive records that the paper mentions this repository; it is not marked official. community (archive-listed): In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper. found in paper text by Syntology: Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted. community: Not in the archive's code links for this paper; a community repository Syntology harvested. Samples from a repository marked official are listed first. Licence labels name the repository's licence as recorded at harvest. “Pointer only” means Syntology does not serve that copy's text, for one of four reasons: no licence file was found; the licence was not identified; the licence is recorded as permissive but that copy's record is not marked cleared; or the licence is outside the permissive list Syntology serves text under (MIT, Apache-2.0, BSD and similar). Some licences outside that list permit redistribution, such as WTFPL, and GPL-3.0 under its conditions; they are simply not on the list. Hover a licence label for the reason. File links open the file on GitHub at the default branch, which may have changed since the harvest.

eran_affine pauls658/ReluDiff-ICSE2020-Artifact/eran/tf_verify/eranlayers.py community (archive-listed) unverified Apache-2.0 (permissive) · ef0baf6862000da8 · report
eran_conv2d_without_activation pauls658/ReluDiff-ICSE2020-Artifact/eran/tf_verify/eranlayers.py community (archive-listed) unverified Apache-2.0 (permissive) · 0b4762e13a8c346d · report
extract_mean pauls658/ReluDiff-ICSE2020-Artifact/eran/tf_verify/read_net_file.py community (archive-listed) unverified Apache-2.0 (permissive) · 822ae5b5b52798e2 · report
getEps2 pauls658/ReluDiff-ICSE2020-Artifact/eran/tf_verify/diff_analysis_artifact.py community (archive-listed) unverified Apache-2.0 (permissive) · ba593c787e773e89 · report
nodePrune_nnet rm2pt/veriprune/DiffNN-Code/python/prune_nnet.py community (archive-listed) unverified Apache-2.0 (permissive) · 411b3e36989e2fcf · report
nodePrune_nnet rm2pt/veriprune/DiffNN-Code/python/prune_scale_nnet.py community (archive-listed) unverified Apache-2.0 (permissive) · efcc5bf84e113a01 · report
product pauls658/ReluDiff-ICSE2020-Artifact/eran/tf_verify/read_net_file.py community (archive-listed) unverified Apache-2.0 (permissive) · 96cf9fddb9aeb8a0 · report
readNNet pauls658/ReluDiff-ICSE2020-Artifact/eran/NNet/utils/readNNet.py community (archive-listed) unverified Apache-2.0 (permissive) · d8c6bb8a9ac1500c · report
read_csv_file pauls658/ReluDiff-ICSE2020-Artifact/DiffNN-Code/python/make_HAR_properties.py community (archive-listed) unverified Apache-2.0 (permissive) · 1c51a497f30584f0 · report
read_csv_file pauls658/ReluDiff-ICSE2020-Artifact/DiffNN-Code/python/make_mnist_properties.py community (archive-listed) unverified Apache-2.0 (permissive) · 0b0a40d002bbc34f · report
read_network pauls658/ReluDiff-ICSE2020-Artifact/DiffNN-Code/python/common.py community (archive-listed) unverified Apache-2.0 (permissive) · ab8fc8f6b5ce1d25 · report
round_nnet_16bit pauls658/ReluDiff-ICSE2020-Artifact/DiffNN-Code/python/round_nnet.py community (archive-listed) unverified Apache-2.0 (permissive) · c4e78fa7b2f1d238 · report
runRepl pauls658/ReluDiff-ICSE2020-Artifact/eran/tf_verify/read_net_file.py community (archive-listed) unverified Apache-2.0 (permissive) · 144602513b4d55e3 · report
subtract_nnets pauls658/ReluDiff-ICSE2020-Artifact/DiffNN-Code/python/subtract_nnets.py community (archive-listed) unverified Apache-2.0 (permissive) · d2fabb9a6d5f04f0 · report
tensorshape_to_intlist pauls658/ReluDiff-ICSE2020-Artifact/eran/tf_verify/eranlayers.py community (archive-listed) unverified Apache-2.0 (permissive) · 8966ad509beb7504 · report

Tasks

Autonomous VehiclesCollision Avoidance

Results from the paper archive 2025-07-28

No leaderboard rows for this paper in the archive.

Report a problem or propose a change · a person checks every report against the paper or source before anything changes; decisions are listed on /corrections