{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/fast-and-complete-enabling-complete-neural-1","title":"Fast and Complete: Enabling Complete Neural Network Verification with Rapid and Massively Parallel Incomplete Verifiers","arxiv_id":"2011.13824","date":"2020-11-27","proceeding":"ICLR 2021 1","authors":["Kaidi Xu","huan zhang","Shiqi Wang","Yihan Wang","Suman Jana","Xue Lin","Cho-Jui Hsieh"],"abstract":"Formal verification of neural networks (NNs) is a challenging and important problem. Existing efficient complete solvers typically require the branch-and-bound (BaB) process, which splits the problem domain into sub-domains and solves each sub-domain using faster but weaker incomplete verifiers, such as Linear Programming (LP) on linearly relaxed sub-domains. In this paper, we propose to use the backward mode linear relaxation based perturbation analysis (LiRPA) to replace LP during the BaB process, which can be efficiently implemented on the typical machine learning accelerators such as GPUs and TPUs. However, unlike LP, LiRPA when applied naively can produce much weaker bounds and even cannot check certain conflicts of sub-domains during splitting, making the entire procedure incomplete after BaB. To address these challenges, we apply a fast gradient based bound tightening procedure combined with batch splits and the design of minimal usage of LP bound procedure, enabling us to effectively use LiRPA on the accelerator hardware for the challenging complete NN verification problem and significantly outperform LP-based approaches. On a single GPU, we demonstrate an order of magnitude speedup compared to existing LP-based approaches.","url_abs":"https://arxiv.org/abs/2011.13824v2","url_pdf":"https://arxiv.org/pdf/2011.13824v2.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"fast-and-complete-enabling-complete-neural-1","repo_url":"https://github.com/kaidixu/LiRPA_Verify","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"unanswered"}},{"paper_slug":"fast-and-complete-enabling-complete-neural-1","repo_url":"https://github.com/Verified-Intelligence/alpha-beta-CROWN_vnncomp2024","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"fast-and-complete-enabling-complete-neural-1","repo_url":"https://github.com/avrahamraviv/formal-verification-of-object-detection","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"fast-and-complete-enabling-complete-neural-1","repo_url":"https://github.com/huanzhang12/alpha-beta-CROWN","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"NOASSERTION"}},{"paper_slug":"fast-and-complete-enabling-complete-neural-1","repo_url":"https://github.com/verified-intelligence/alpha-beta-crown","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"NOASSERTION"}}],"tasks":[{"task_slug":null,"task_name":"GPU"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2011.13824","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2011.13824"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"deterministic:regex_extraction","url":"https://github.com/kaidixu/LiRPA","reach":{"status":"unanswered"}},{"provenance":"deterministic:regex_extraction","url":"https://github.com/oval-group/GNN","reach":{"status":"unanswered"}},{"provenance":"deterministic:regex_extraction","url":"https://github.com/verivital/vnn-comp","reach":{"status":"unanswered"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/kaidixu/LiRPA_Verify","reach":{"status":"unanswered"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/Verified-Intelligence/alpha-beta-CROWN_vnncomp2024","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/verified-intelligence/alpha-beta-crown","reach":{"status":"ok","spdx":"NOASSERTION"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/huanzhang12/alpha-beta-CROWN","reach":{"status":"ok","spdx":"NOASSERTION"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/avrahamraviv/formal-verification-of-object-detection","reach":null}],"summary":{"ran_honours":1,"unverified":1},"by_repo_kind":{"listed":{"samples":2,"ran":1,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"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"},"n_pointer_only_for_licence":2,"samples":[{"code_sha256_prefix":"d5f02d6ed407b5ca","entry":"get_unstable_size","repo":"Verified-Intelligence/alpha-beta-CROWN_vnncomp2024","repo_kind":"listed","path":"auto_LiRPA/backward_bound.py","file_url":"https://github.com/Verified-Intelligence/alpha-beta-CROWN_vnncomp2024/blob/HEAD/auto_LiRPA/backward_bound.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"d5f02d6ed407b5ca"}},{"code_sha256_prefix":"8ce44ae4ee73df92","entry":"batched_backward","repo":"Verified-Intelligence/alpha-beta-CROWN_vnncomp2024","repo_kind":"listed","path":"auto_LiRPA/backward_bound.py","file_url":"https://github.com/Verified-Intelligence/alpha-beta-CROWN_vnncomp2024/blob/HEAD/auto_LiRPA/backward_bound.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"8ce44ae4ee73df92"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}