{"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/combining-induction-and-transduction-for","title":"Combining Induction and Transduction for Abstract Reasoning","arxiv_id":"2411.02272","date":"2024-11-04","proceeding":null,"authors":["Wen-Ding Li","Keya Hu","Carter Larsen","Yuqing Wu","Simon Alford","Caleb Woo","Spencer M. Dunn","Hao Tang","Michelangelo Naim","Dat Nguyen","Wei-Long Zheng","Zenna Tavares","Yewen Pu","Kevin Ellis"],"abstract":"When learning an input-output mapping from very few examples, is it better to first infer a latent function that explains the examples, or is it better to directly predict new test outputs, e.g. using a neural network? We study this question on ARC by training neural models for induction (inferring latent functions) and transduction (directly predicting the test output for a given test input). We train on synthetically generated variations of Python programs that solve ARC training tasks. We find inductive and transductive models solve different kinds of test problems, despite having the same training problems and sharing the same neural architecture: Inductive program synthesis excels at precise computations, and at composing multiple concepts, while transduction succeeds on fuzzier perceptual concepts. Ensembling them approaches human-level performance on ARC.","url_abs":"https://arxiv.org/abs/2411.02272v4","url_pdf":"https://arxiv.org/pdf/2411.02272v4.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":"combining-induction-and-transduction-for","repo_url":"https://github.com/xu3kev/barc","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"arc","task_name":"ARC"},{"task_slug":"program-synthesis","task_name":"Program Synthesis"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2411.02272","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2411.02272"}},"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/xu3kev/barc","reach":{"status":"ok"}}],"summary":{"unverified":19},"by_repo_kind":{"official":{"samples":19,"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":19,"samples":[{"code_sha256_prefix":"f60ed9b398bb02d7","entry":"check_grid","repo":"xu3kev/barc","repo_kind":"official","path":"generate_problems.py","file_url":"https://github.com/xu3kev/barc/blob/HEAD/generate_problems.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"f60ed9b398bb02d7"}},{"code_sha256_prefix":"ce383926d54b465b","entry":"check_grids_all_equal","repo":"xu3kev/barc","repo_kind":"official","path":"generate_problems.py","file_url":"https://github.com/xu3kev/barc/blob/HEAD/generate_problems.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"ce383926d54b465b"}},{"code_sha256_prefix":"f2b5a5387a1e38f0","entry":"check_identity","repo":"xu3kev/barc","repo_kind":"official","path":"generate_problems.py","file_url":"https://github.com/xu3kev/barc/blob/HEAD/generate_problems.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"f2b5a5387a1e38f0"}},{"code_sha256_prefix":"05eb189e28232ffb","entry":"color_deterministic","repo":"xu3kev/barc","repo_kind":"official","path":"color_variation.py","file_url":"https://github.com/xu3kev/barc/blob/HEAD/color_variation.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"05eb189e28232ffb"}},{"code_sha256_prefix":"86465f5ee4424776","entry":"color_deterministic","repo":"xu3kev/barc","repo_kind":"official","path":"gen_aug_dataset.py","file_url":"https://github.com/xu3kev/barc/blob/HEAD/gen_aug_dataset.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"86465f5ee4424776"}},{"code_sha256_prefix":"715d8903f925b507","entry":"color_to_number","repo":"xu3kev/barc","repo_kind":"official","path":"evaluation.py","file_url":"https://github.com/xu3kev/barc/blob/HEAD/evaluation.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"715d8903f925b507"}},{"code_sha256_prefix":"6c25536f44893fac","entry":"color_variation","repo":"xu3kev/barc","repo_kind":"official","path":"color_variation.py","file_url":"https://github.com/xu3kev/barc/blob/HEAD/color_variation.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"6c25536f44893fac"}},{"code_sha256_prefix":"3b3fa833e3b26cd4","entry":"compare_grids","repo":"xu3kev/barc","repo_kind":"official","path":"eval_code_samples.py","file_url":"https://github.com/xu3kev/barc/blob/HEAD/eval_code_samples.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"3b3fa833e3b26cd4"}},{"code_sha256_prefix":"e56a04784249e6b6","entry":"concepts_in_file","repo":"xu3kev/barc","repo_kind":"official","path":"concepts.py","file_url":"https://github.com/xu3kev/barc/blob/HEAD/concepts.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"e56a04784249e6b6"}},{"code_sha256_prefix":"74b9e46678c73f6d","entry":"convert_color_name","repo":"xu3kev/barc","repo_kind":"official","path":"gen_aug_dataset.py","file_url":"https://github.com/xu3kev/barc/blob/HEAD/gen_aug_dataset.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"74b9e46678c73f6d"}},{"code_sha256_prefix":"236e88a71bbebcfd","entry":"description_in_file","repo":"xu3kev/barc","repo_kind":"official","path":"concepts.py","file_url":"https://github.com/xu3kev/barc/blob/HEAD/concepts.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"236e88a71bbebcfd"}},{"code_sha256_prefix":"f216c58912a089d6","entry":"ensure_colors_exist","repo":"xu3kev/barc","repo_kind":"official","path":"generate_code.py","file_url":"https://github.com/xu3kev/barc/blob/HEAD/generate_code.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"f216c58912a089d6"}},{"code_sha256_prefix":"e4aaf0dc18a08032","entry":"execute_transformation","repo":"xu3kev/barc","repo_kind":"official","path":"execution.py","file_url":"https://github.com/xu3kev/barc/blob/HEAD/execution.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"e4aaf0dc18a08032"}},{"code_sha256_prefix":"61fc7c63b253b738","entry":"grid_2d_to_tuple","repo":"xu3kev/barc","repo_kind":"official","path":"evaluation.py","file_url":"https://github.com/xu3kev/barc/blob/HEAD/evaluation.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"61fc7c63b253b738"}},{"code_sha256_prefix":"0dfbc8b8fc6c38d1","entry":"grid_to_input","repo":"xu3kev/barc","repo_kind":"official","path":"gen_aug_dataset.py","file_url":"https://github.com/xu3kev/barc/blob/HEAD/gen_aug_dataset.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"0dfbc8b8fc6c38d1"}},{"code_sha256_prefix":"01c435e68ef843e8","entry":"multi_process_execute","repo":"xu3kev/barc","repo_kind":"official","path":"execution.py","file_url":"https://github.com/xu3kev/barc/blob/HEAD/execution.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"01c435e68ef843e8"}},{"code_sha256_prefix":"464b726f85abe923","entry":"multi_process_execute_v2","repo":"xu3kev/barc","repo_kind":"official","path":"execution.py","file_url":"https://github.com/xu3kev/barc/blob/HEAD/execution.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"464b726f85abe923"}},{"code_sha256_prefix":"dd3be7e32f87f0de","entry":"trace_calls","repo":"xu3kev/barc","repo_kind":"official","path":"eval_code_samples.py","file_url":"https://github.com/xu3kev/barc/blob/HEAD/eval_code_samples.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"dd3be7e32f87f0de"}},{"code_sha256_prefix":"c834c2c28315b0b0","entry":"tuple_to_grid_2d","repo":"xu3kev/barc","repo_kind":"official","path":"evaluation.py","file_url":"https://github.com/xu3kev/barc/blob/HEAD/evaluation.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"c834c2c28315b0b0"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}