{"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/g2sat-learning-to-generate-sat-formulas","title":"G2SAT: Learning to Generate SAT Formulas","arxiv_id":"1910.13445","date":"2019-10-29","proceeding":"NeurIPS 2019 12","authors":["Jiaxuan You","Haoze Wu","Clark Barrett","Raghuram Ramanujan","Jure Leskovec"],"abstract":"The Boolean Satisfiability (SAT) problem is the canonical NP-complete problem and is fundamental to computer science, with a wide array of applications in planning, verification, and theorem proving. Developing and evaluating practical SAT solvers relies on extensive empirical testing on a set of real-world benchmark formulas. However, the availability of such real-world SAT formulas is limited. While these benchmark formulas can be augmented with synthetically generated ones, existing approaches for doing so are heavily hand-crafted and fail to simultaneously capture a wide range of characteristics exhibited by real-world SAT instances. In this work, we present G2SAT, the first deep generative framework that learns to generate SAT formulas from a given set of input formulas. Our key insight is that SAT formulas can be transformed into latent bipartite graph representations which we model using a specialized deep generative neural network. We show that G2SAT can generate SAT formulas that closely resemble given real-world SAT instances, as measured by both graph metrics and SAT solver behavior. Further, we show that our synthetic SAT formulas could be used to improve SAT solver performance on real-world benchmarks, which opens up new opportunities for the continued development of SAT solvers and a deeper understanding of their performance.","url_abs":"https://arxiv.org/abs/1910.13445v1","url_pdf":"https://arxiv.org/pdf/1910.13445v1.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":"g2sat-learning-to-generate-sat-formulas","repo_url":"https://github.com/JiaxuanYou/G2SAT","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"automated-theorem-proving","task_name":"Automated Theorem Proving"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1910.13445","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1910.13445"}},"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/JiaxuanYou/G2SAT","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":8},"by_repo_kind":{"listed":{"samples":8,"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":"96246363ffb91375","entry":"cut_inner_edge","repo":"JiaxuanYou/G2SAT","repo_kind":"listed","path":"eval/conversion.py","file_url":"https://github.com/JiaxuanYou/G2SAT/blob/HEAD/eval/conversion.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"96246363ffb91375"}},{"code_sha256_prefix":"1c4a68f9e16f2a14","entry":"file_to_mat","repo":"JiaxuanYou/G2SAT","repo_kind":"listed","path":"eval/conversion.py","file_url":"https://github.com/JiaxuanYou/G2SAT/blob/HEAD/eval/conversion.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1c4a68f9e16f2a14"}},{"code_sha256_prefix":"81c614caaa5d943d","entry":"get_cl_string","repo":"JiaxuanYou/G2SAT","repo_kind":"listed","path":"eval/evaluate_graphs.py","file_url":"https://github.com/JiaxuanYou/G2SAT/blob/HEAD/eval/evaluate_graphs.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"81c614caaa5d943d"}},{"code_sha256_prefix":"b9da0b2402f6baed","entry":"load_graph_list","repo":"JiaxuanYou/G2SAT","repo_kind":"listed","path":"utils.py","file_url":"https://github.com/JiaxuanYou/G2SAT/blob/HEAD/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"b9da0b2402f6baed"}},{"code_sha256_prefix":"ff29d7ef03eb44d6","entry":"load_graphs","repo":"JiaxuanYou/G2SAT","repo_kind":"listed","path":"eval/conversion.py","file_url":"https://github.com/JiaxuanYou/G2SAT/blob/HEAD/eval/conversion.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ff29d7ef03eb44d6"}},{"code_sha256_prefix":"57dbfd2e5f060dbb","entry":"load_graphs_lcg","repo":"JiaxuanYou/G2SAT","repo_kind":"listed","path":"data.py","file_url":"https://github.com/JiaxuanYou/G2SAT/blob/HEAD/data.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"57dbfd2e5f060dbb"}},{"code_sha256_prefix":"df87a442dc485388","entry":"no_unit_clause","repo":"JiaxuanYou/G2SAT","repo_kind":"listed","path":"eval/evaluate_graphs.py","file_url":"https://github.com/JiaxuanYou/G2SAT/blob/HEAD/eval/evaluate_graphs.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"df87a442dc485388"}},{"code_sha256_prefix":"c373ad51777dcac3","entry":"to_int_matrix","repo":"JiaxuanYou/G2SAT","repo_kind":"listed","path":"eval/evaluate_graphs.py","file_url":"https://github.com/JiaxuanYou/G2SAT/blob/HEAD/eval/evaluate_graphs.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c373ad51777dcac3"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}