Learning to Guarantee Type Correctness in Code Generation through Type-Guided Program Synthesis
Zhechong Huang, Zhao Zhang, Ruyi Ji, Tingxuan Xia, Qihao Zhu, Qinxiang Cao, Zeyu Sun, Yingfei Xiong
TL;DR
TyFlow tackles the persistent problem of type errors in LM-generated code by internalizing type reasoning within the generation process. It builds an isomorphic synthesis system where each typing rule corresponds to a synthesis rule, enabling programs to be constructed through synthesis decision sequences that inherently encode type derivations. Grounded in constrained Horn clauses and first-order unification, TyFlow guarantees that generated programs are well-typed, while its LM-driven query resolution learns to apply type rules and generate ground variable assignments. Empirically, TyFlow substantially reduces compilation errors and improves functional correctness across SuFu and Java benchmarks, outperforming rejection-based and separated type-code generation baselines. The approach not only yields practical gains in code quality but also provides a general framework for enforcing complex, CHC-representable constraints during language-model–driven synthesis.
Abstract
Language models have shown remarkable proficiency in code generation; nevertheless, ensuring type correctness remains a challenge. Although traditional methods, such as constrained decoding, alleviate this problem by externally rejecting untypable code, the model itself does not effectively learn type reasoning internally, which ultimately limits its overall performance. This paper introduces TyFlow, a novel system that internalizes type reasoning within code generation to guide the model to learn the type system. The core of our approach is a novel type-guided program synthesis system that maintains an isomorphism between type derivation trees and synthesis derivation trees, enabling a new code representation based on synthesis decision sequences rather than traditional text-based token sequences. By offloading the complexity of type system learning to the representation itself, models can redirect their computational resources toward higher-level program semantics. Our evaluation shows that TyFlow not only eliminates type errors but also significantly improves functional correctness, highlighting the importance of aligning LMs with type systems internally.
