Generating Verifiable CoT from Execution-Traces
Shailja Thakur, Vaibhav Saxena, Rohan Kulkarni, Shivdeep Singh, Parameswaran Selvam, Hima Patel, Hiroshi Kanayama
TL;DR
This work tackles the problem that language models struggle to reason about program behavior due to ungrounded, plausible-sounding CoT data. It introduces a complete three-stage data synthesis pipeline that grounds reasoning in actual execution traces, enabling step-by-step rationales that are verifiable by construction. A bi-directional CoT dataset (25k high-quality samples, 54k master set) is created using concept-first curriculum synthesis, execution-based verification with Dual Agreement, and trace-grounded CoT generation, and is evaluated across code-reasoning benchmarks and instruction-tuned models. Results show substantial improvements in output and input prediction, stronger reasoning consistency and information richness, and clear evidence that verification quality and bi-directional reasoning outperform plain CoT; the authors also release an open-source pipeline to enable reproducible, verified reasoning for code.
Abstract
Teaching language models to reason about code execution remains a fundamental challenge. While Chain-of-Thought (CoT) prompting has shown promise, current synthetic training data suffers from a critical weakness: the reasoning steps are often plausible-sounding explanations generated by teacher models, not verifiable accounts of what the code actually does. This creates a troubling failure mode where models learn to mimic superficially convincing but logically flawed reasoning patterns. We address this by grounding CoT generation directly in program execution traces. Our pipeline instruments code to capture its dynamic behavior, then narrates these verified execution traces into natural language rationales that are correct by construction. This execution-grounded approach ensures every reasoning step reflects what the program genuinely computes, eliminating logical hallucinations at the source. We evaluate our method on code reasoning tasks (forward reasoning on CruxEval and LiveCodeBench-Exec, backward reasoning on CruxEval-Input), as well as code generation and explanation tasks from HumanEval. Models trained on our bi-directional trace-grounded data achieve substantial improvements, with gains of up to 30 points on output prediction and 28 points on input prediction over base models, alongside improved explanation and code generation, demonstrating that verifiable reasoning fundamentally enhances model capabilities. https://github.ibm.com/IBM-Research-AI/Verified-Code-CoT
