Loop Invariant Generation: A Hybrid Framework of Reasoning optimised LLMs and SMT Solvers

Fuente: arXiv
Guardado en:
Detalles Bibliográficos
Autores principales: Bharti, Varun, Jha, Shashwat, Kumar, Dhruv, Jalote, Pankaj
Formato: Preprint
Publicado: 2025
Materias:
Acceso en línea:
Etiquetas: Agregar Etiqueta
Sin Etiquetas, Sea el primero en etiquetar este registro!
_version_ 1866908475248869376
author Bharti, Varun
Jha, Shashwat
Kumar, Dhruv
Jalote, Pankaj
author_facet Bharti, Varun
Jha, Shashwat
Kumar, Dhruv
Jalote, Pankaj
contents Loop invariants are essential for proving the correctness of programs with loops. Developing loop invariants is challenging, and fully automatic synthesis cannot be guaranteed for arbitrary programs. Some approaches have been proposed to synthesize loop invariants using symbolic techniques and more recently using neural approaches. These approaches are able to correctly synthesize loop invariants only for subsets of standard benchmarks. In this work, we investigate whether modern, reasoning-optimized large language models can do better. We integrate OpenAI's O1, O1-mini, and O3-mini into a tightly coupled generate-and-check pipeline with the Z3 SMT solver, using solver counterexamples to iteratively guide invariant refinement. We use Code2Inv benchmark, which provides C programs along with their formal preconditions and postconditions. On this benchmark of 133 tasks, our framework achieves 100% coverage (133 out of 133), outperforming the previous best of 107 out of 133, while requiring only 1-2 model proposals per instance and 14-55 seconds of wall-clock time. These results demonstrate that LLMs possess latent logical reasoning capabilities which can help automate loop invariant synthesis. While our experiments target C-specific programs, this approach should be generalizable to other imperative languages.
format Preprint
id arxiv_https___arxiv_org_abs_2508_00419
institution arXiv
publishDate 2025
record_format arxiv
spellingShingle Loop Invariant Generation: A Hybrid Framework of Reasoning optimised LLMs and SMT Solvers
Bharti, Varun
Jha, Shashwat
Kumar, Dhruv
Jalote, Pankaj
Logic in Computer Science
Machine Learning
Programming Languages
Loop invariants are essential for proving the correctness of programs with loops. Developing loop invariants is challenging, and fully automatic synthesis cannot be guaranteed for arbitrary programs. Some approaches have been proposed to synthesize loop invariants using symbolic techniques and more recently using neural approaches. These approaches are able to correctly synthesize loop invariants only for subsets of standard benchmarks. In this work, we investigate whether modern, reasoning-optimized large language models can do better. We integrate OpenAI's O1, O1-mini, and O3-mini into a tightly coupled generate-and-check pipeline with the Z3 SMT solver, using solver counterexamples to iteratively guide invariant refinement. We use Code2Inv benchmark, which provides C programs along with their formal preconditions and postconditions. On this benchmark of 133 tasks, our framework achieves 100% coverage (133 out of 133), outperforming the previous best of 107 out of 133, while requiring only 1-2 model proposals per instance and 14-55 seconds of wall-clock time. These results demonstrate that LLMs possess latent logical reasoning capabilities which can help automate loop invariant synthesis. While our experiments target C-specific programs, this approach should be generalizable to other imperative languages.
title Loop Invariant Generation: A Hybrid Framework of Reasoning optimised LLMs and SMT Solvers
topic Logic in Computer Science
Machine Learning
Programming Languages
url https://arxiv.org/abs/2508.00419