{"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/fairr-faithful-and-robust-deductive-reasoning-1","title":"FaiRR: Faithful and Robust Deductive Reasoning over Natural Language","arxiv_id":"2203.10261","date":"2022-03-19","proceeding":"ACL 2022 5","authors":["Soumya Sanyal","Harman Singh","Xiang Ren"],"abstract":"Transformers have been shown to be able to perform deductive reasoning on a logical rulebase containing rules and statements written in natural language. Recent works show that such models can also produce the reasoning steps (i.e., the proof graph) that emulate the model's logical reasoning process. Currently, these black-box models generate both the proof graph and intermediate inferences within the same model and thus may be unfaithful. In this work, we frame the deductive logical reasoning task by defining three modular components: rule selection, fact selection, and knowledge composition. The rule and fact selection steps select the candidate rule and facts to be used and then the knowledge composition combines them to generate new inferences. This ensures model faithfulness by assured causal relation from the proof step to the inference reasoning. To test our framework, we propose FaiRR (Faithful and Robust Reasoner) where the above three components are independently modeled by transformers. We observe that FaiRR is robust to novel language perturbations, and is faster at inference than previous works on existing reasoning datasets. Additionally, in contrast to black-box generative models, the errors made by FaiRR are more interpretable due to the modular approach.","url_abs":"https://arxiv.org/abs/2203.10261v1","url_pdf":"https://arxiv.org/pdf/2203.10261v1.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":"fairr-faithful-and-robust-deductive-reasoning-1","repo_url":"https://github.com/ink-usc/fairr","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"fact-selection","task_name":"Fact Selection"},{"task_slug":"logical-reasoning","task_name":"Logical Reasoning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2203.10261","atlas_url":"https://app.syntology.ai/?focus=2203.10261","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2203.10261"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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/ink-usc/fairr","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"deterministic:regex_extraction","url":"https://github.com/INK-USC/FaiRR","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":8,"unverified":1},"by_repo_kind":{"official":{"samples":9,"ran":8,"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":"acb5d67c498916e4","entry":"generate_proof","repo":"INK-USC/FaiRR","repo_kind":"official","path":"proof_inference.py","file_url":"https://github.com/INK-USC/FaiRR/blob/HEAD/proof_inference.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"acb5d67c498916e4"}},{"code_sha256_prefix":"5b93abe97f863f44","entry":"get_out_fname","repo":"INK-USC/FaiRR","repo_kind":"official","path":"process_proofwriter.py","file_url":"https://github.com/INK-USC/FaiRR/blob/HEAD/process_proofwriter.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"5b93abe97f863f44"}},{"code_sha256_prefix":"c13d0749a5472646","entry":"get_proof_graph","repo":"INK-USC/FaiRR","repo_kind":"official","path":"pw_helper.py","file_url":"https://github.com/INK-USC/FaiRR/blob/HEAD/pw_helper.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c13d0749a5472646"}},{"code_sha256_prefix":"3e7f33019c4d669c","entry":"get_pw_fname","repo":"INK-USC/FaiRR","repo_kind":"official","path":"process_proofwriter.py","file_url":"https://github.com/INK-USC/FaiRR/blob/HEAD/process_proofwriter.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"3e7f33019c4d669c"}},{"code_sha256_prefix":"0d99b520cf1b8a9e","entry":"get_pw_subdir","repo":"INK-USC/FaiRR","repo_kind":"official","path":"process_proofwriter.py","file_url":"https://github.com/INK-USC/FaiRR/blob/HEAD/process_proofwriter.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"0d99b520cf1b8a9e"}},{"code_sha256_prefix":"3ec8128c84eac6fa","entry":"get_verb","repo":"INK-USC/FaiRR","repo_kind":"official","path":"proof_inference.py","file_url":"https://github.com/INK-USC/FaiRR/blob/HEAD/proof_inference.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"3ec8128c84eac6fa"}},{"code_sha256_prefix":"e3feb54ff6e72cfe","entry":"negate","repo":"INK-USC/FaiRR","repo_kind":"official","path":"proof_inference.py","file_url":"https://github.com/INK-USC/FaiRR/blob/HEAD/proof_inference.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"e3feb54ff6e72cfe"}},{"code_sha256_prefix":"46ffcd272c3bb67a","entry":"parse_proof_inference_unstaged","repo":"INK-USC/FaiRR","repo_kind":"official","path":"pw_helper.py","file_url":"https://github.com/INK-USC/FaiRR/blob/HEAD/pw_helper.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"46ffcd272c3bb67a"}},{"code_sha256_prefix":"28a533581e0c4cfe","entry":"parse_all_questions","repo":"INK-USC/FaiRR","repo_kind":"official","path":"pw_helper.py","file_url":"https://github.com/INK-USC/FaiRR/blob/HEAD/pw_helper.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":"28a533581e0c4cfe"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}