{"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/neural-network-verification-with-branch-and","title":"Neural Network Verification with Branch-and-Bound for General Nonlinearities","arxiv_id":"2405.21063","date":"2024-05-31","proceeding":null,"authors":["Zhouxing Shi","Qirui Jin","Zico Kolter","Suman Jana","Cho-Jui Hsieh","huan zhang"],"abstract":"Branch-and-bound (BaB) is among the most effective techniques for neural network (NN) verification. However, existing works on BaB for NN verification have mostly focused on NNs with piecewise linear activations, especially ReLU networks. In this paper, we develop a general framework, named GenBaB, to conduct BaB on general nonlinearities to verify NNs with general architectures, based on linear bound propagation for NN verification. To decide which neuron to branch, we design a new branching heuristic which leverages linear bounds as shortcuts to efficiently estimate the potential improvement after branching. To decide nontrivial branching points for general nonlinear functions, we propose to pre-optimize branching points, which can be efficiently leveraged during verification with a lookup table. We demonstrate the effectiveness of our GenBaB on verifying a wide range of NNs, including NNs with activation functions such as Sigmoid, Tanh, Sine and GeLU, as well as NNs involving multi-dimensional nonlinear operations such as multiplications in LSTMs and Vision Transformers. Our framework also allows the verification of general nonlinear computation graphs and enables verification applications beyond simple NNs, particularly for AC Optimal Power Flow (ACOPF). GenBaB is part of the latest $\\alpha,\\!\\beta$-CROWN, the winner of the 4th and the 5th International Verification of Neural Networks Competition (VNN-COMP 2023 and 2024).","url_abs":"https://arxiv.org/abs/2405.21063v2","url_pdf":"https://arxiv.org/pdf/2405.21063v2.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":"neural-network-verification-with-branch-and","repo_url":"https://github.com/shizhouxing/genbab","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"BSD-3-Clause"}},{"paper_slug":"neural-network-verification-with-branch-and","repo_url":"https://github.com/verified-intelligence/alpha-beta-crown","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"NOASSERTION"}},{"paper_slug":"neural-network-verification-with-branch-and","repo_url":"https://github.com/verified-intelligence/auto_lirpa","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"NOASSERTION"}},{"paper_slug":"neural-network-verification-with-branch-and","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":"neural-network-verification-with-branch-and","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"}}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2405.21063","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2405.21063"}},"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":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/verified-intelligence/auto_lirpa","reach":{"status":"ok","spdx":"NOASSERTION"}},{"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/shizhouxing/genbab","reach":{"status":"ok","spdx":"BSD-3-Clause"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/huanzhang12/alpha-beta-CROWN","reach":{"status":"ok","spdx":"NOASSERTION"}}],"summary":{"ran":6,"ran_draft_wrong":4,"ran_honours":1,"unverified":3},"by_repo_kind":{"official":{"samples":5,"ran":3,"repositories":1},"listed":{"samples":7,"ran":6,"repositories":2}},"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":14,"samples":[{"code_sha256_prefix":"a95d3680efa231cc","entry":"ResNet18","repo":"huanzhang12/alpha-beta-CROWN","repo_kind":"listed","path":"complete_verifier/model_defs.py","file_url":"https://github.com/huanzhang12/alpha-beta-CROWN/blob/HEAD/complete_verifier/model_defs.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"a95d3680efa231cc"}},{"code_sha256_prefix":"9537dbcc162a7f8c","entry":"build_beta","repo":"verified-intelligence/auto_lirpa","repo_kind":"official","path":"auto_LiRPA/beta_crown.py","file_url":"https://github.com/verified-intelligence/auto_lirpa/blob/HEAD/auto_LiRPA/beta_crown.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"9537dbcc162a7f8c"}},{"code_sha256_prefix":"f2689b948e0d82a5","entry":"concretize_bound","repo":null,"repo_kind":null,"path":null,"file_url":null,"link_basis":"identical_code_first_harvested_elsewhere","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":null,"inline_ok":false,"mcp_get_code":{"code_sha256":"f2689b948e0d82a5"}},{"code_sha256_prefix":"3a7d902c8dd6235a","entry":"crown_ibp_model_a_b","repo":"huanzhang12/alpha-beta-CROWN","repo_kind":"listed","path":"complete_verifier/model_defs.py","file_url":"https://github.com/huanzhang12/alpha-beta-CROWN/blob/HEAD/complete_verifier/model_defs.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"3a7d902c8dd6235a"}},{"code_sha256_prefix":"1c11a3ea527b1755","entry":"deep_update","repo":"huanzhang12/alpha-beta-CROWN","repo_kind":"listed","path":"complete_verifier/load_model.py","file_url":"https://github.com/huanzhang12/alpha-beta-CROWN/blob/HEAD/complete_verifier/load_model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"1c11a3ea527b1755"}},{"code_sha256_prefix":"02af614e12c22731","entry":"deprecated","repo":"huanzhang12/alpha-beta-CROWN","repo_kind":"listed","path":"complete_verifier/bab.py","file_url":"https://github.com/huanzhang12/alpha-beta-CROWN/blob/HEAD/complete_verifier/bab.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"02af614e12c22731"}},{"code_sha256_prefix":"e1af324f19462f68","entry":"get_split_depth","repo":"huanzhang12/alpha-beta-CROWN","repo_kind":"listed","path":"complete_verifier/bab.py","file_url":"https://github.com/huanzhang12/alpha-beta-CROWN/blob/HEAD/complete_verifier/bab.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"e1af324f19462f68"}},{"code_sha256_prefix":"68a6ab5e9a20bbfa","entry":"get_split_nodes","repo":"verified-intelligence/auto_lirpa","repo_kind":"official","path":"auto_LiRPA/beta_crown.py","file_url":"https://github.com/verified-intelligence/auto_lirpa/blob/HEAD/auto_LiRPA/beta_crown.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"68a6ab5e9a20bbfa"}},{"code_sha256_prefix":"d5f02d6ed407b5ca","entry":"get_unstable_size","repo":null,"repo_kind":null,"path":null,"file_url":null,"link_basis":"identical_code_first_harvested_elsewhere","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":null,"inline_ok":false,"mcp_get_code":{"code_sha256":"d5f02d6ed407b5ca"}},{"code_sha256_prefix":"4a4fb84ab3edf916","entry":"model_resnet","repo":"huanzhang12/alpha-beta-CROWN","repo_kind":"listed","path":"complete_verifier/model_defs.py","file_url":"https://github.com/huanzhang12/alpha-beta-CROWN/blob/HEAD/complete_verifier/model_defs.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"4a4fb84ab3edf916"}},{"code_sha256_prefix":"8aad4c1ed274989b","entry":"set_beta","repo":"verified-intelligence/auto_lirpa","repo_kind":"official","path":"auto_LiRPA/beta_crown.py","file_url":"https://github.com/verified-intelligence/auto_lirpa/blob/HEAD/auto_LiRPA/beta_crown.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"8aad4c1ed274989b"}},{"code_sha256_prefix":"ca36eb77350ff0f7","entry":"batched_backward","repo":"verified-intelligence/auto_lirpa","repo_kind":"official","path":"auto_LiRPA/backward_bound.py","file_url":"https://github.com/verified-intelligence/auto_lirpa/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":"ca36eb77350ff0f7"}},{"code_sha256_prefix":"bfecf96d0739bbf1","entry":"beta_crown_backward_bound","repo":"Verified-Intelligence/alpha-beta-CROWN_vnncomp2024","repo_kind":"listed","path":"auto_LiRPA/beta_crown.py","file_url":"https://github.com/Verified-Intelligence/alpha-beta-CROWN_vnncomp2024/blob/HEAD/auto_LiRPA/beta_crown.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":"bfecf96d0739bbf1"}},{"code_sha256_prefix":"5192518593b660cb","entry":"beta_crown_backward_bound","repo":"verified-intelligence/auto_lirpa","repo_kind":"official","path":"auto_LiRPA/beta_crown.py","file_url":"https://github.com/verified-intelligence/auto_lirpa/blob/HEAD/auto_LiRPA/beta_crown.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":"5192518593b660cb"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}