{"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/a-dual-approach-to-scalable-verification-of","title":"A Dual Approach to Scalable Verification of Deep Networks","arxiv_id":"1803.06567","date":"2018-03-17","proceeding":null,"authors":["Krishnamurthy","Dvijotham","Robert Stanforth","Sven Gowal","Timothy Mann","Pushmeet Kohli"],"abstract":"This paper addresses the problem of formally verifying desirable properties\nof neural networks, i.e., obtaining provable guarantees that neural networks\nsatisfy specifications relating their inputs and outputs (robustness to bounded\nnorm adversarial perturbations, for example). Most previous work on this topic\nwas limited in its applicability by the size of the network, network\narchitecture and the complexity of properties to be verified. In contrast, our\nframework applies to a general class of activation functions and specifications\non neural network inputs and outputs. We formulate verification as an\noptimization problem (seeking to find the largest violation of the\nspecification) and solve a Lagrangian relaxation of the optimization problem to\nobtain an upper bound on the worst case violation of the specification being\nverified. Our approach is anytime i.e. it can be stopped at any time and a\nvalid bound on the maximum violation can be obtained. We develop specialized\nverification algorithms with provable tightness guarantees under special\nassumptions and demonstrate the practical significance of our general\nverification approach on a variety of verification tasks.","url_abs":"http://arxiv.org/abs/1803.06567v2","url_pdf":"http://arxiv.org/pdf/1803.06567v2.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":"a-dual-approach-to-scalable-verification-of","repo_url":"https://github.com/deepmind/deep-verify","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"a-dual-approach-to-scalable-verification-of","repo_url":"https://github.com/oval-group/decomposition-plnn-bounds","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":null,"task_name":"valid"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1803.06567","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1803.06567"}},"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/oval-group/decomposition-plnn-bounds","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/deepmind/deep-verify","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"unverified":6},"by_repo_kind":{"listed":{"samples":6,"ran":0,"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":0,"samples":[{"code_sha256_prefix":"efa31b965bbc5035","entry":"build_dual_vars","repo":"deepmind/deep-verify","repo_kind":"listed","path":"deep_verify/src/formulations/verify_dual_base.py","file_url":"https://github.com/deepmind/deep-verify/blob/HEAD/deep_verify/src/formulations/verify_dual_base.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"efa31b965bbc5035"}},{"code_sha256_prefix":"fead252df558f628","entry":"build_project_duals_op","repo":"deepmind/deep-verify","repo_kind":"listed","path":"deep_verify/src/formulations/verify_dual_base.py","file_url":"https://github.com/deepmind/deep-verify/blob/HEAD/deep_verify/src/formulations/verify_dual_base.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"fead252df558f628"}},{"code_sha256_prefix":"45c0777d9abebccb","entry":"concave_max_binsearch","repo":"deepmind/deep-verify","repo_kind":"listed","path":"deep_verify/src/common.py","file_url":"https://github.com/deepmind/deep-verify/blob/HEAD/deep_verify/src/common.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"45c0777d9abebccb"}},{"code_sha256_prefix":"3782a1552206c3a4","entry":"linear_weighted_gram_abs_projection","repo":"deepmind/deep-verify","repo_kind":"listed","path":"deep_verify/src/formulations/semidefinite/gram_calcs.py","file_url":"https://github.com/deepmind/deep-verify/blob/HEAD/deep_verify/src/formulations/semidefinite/gram_calcs.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"3782a1552206c3a4"}},{"code_sha256_prefix":"8cf63c8d3f5e1c5a","entry":"targeted_objective","repo":"deepmind/deep-verify","repo_kind":"listed","path":"deep_verify/src/common.py","file_url":"https://github.com/deepmind/deep-verify/blob/HEAD/deep_verify/src/common.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"8cf63c8d3f5e1c5a"}},{"code_sha256_prefix":"6a92df17b3062303","entry":"with_explicit_update","repo":"deepmind/deep-verify","repo_kind":"listed","path":"deep_verify/src/common.py","file_url":"https://github.com/deepmind/deep-verify/blob/HEAD/deep_verify/src/common.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"6a92df17b3062303"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}