{"ID":2828064,"CreatedAt":"2026-06-01T04:54:23.091178241Z","UpdatedAt":"2026-06-01T04:54:23.091178241Z","DeletedAt":null,"paper_url":"https://arxiv.org/abs/2512.15816","arxiv_id":"2512.15816","title":"A Neurosymbolic Approach to Loop Invariant Generation via Weakest Precondition Reasoning","abstract":"Loop invariant generation remains a critical bottleneck in automated program verification. Recent work has begun to explore the use of Large Language Models (LLMs) in this area, yet these approaches tend to lack a reliable and structured methodology, with little reference to existing program verification theory. This paper presents NeuroInv, a neurosymbolic approach to loop invariant generation. NeuroInv comprises two key modules: (1) a neural reasoning module that leverages LLMs and Hoare logic to derive and refine candidate invariants via backward-chaining weakest precondition reasoning, and (2) a verification-guided symbolic module that iteratively repairs invariants using counterexamples from OpenJML. We evaluate NeuroInv on a comprehensive benchmark of 150 Java programs, encompassing single and multiple (sequential) loops, multiple arrays, random branching, and noisy code segments. NeuroInv achieves a $99.5\\%$ success rate, substantially outperforming the other evaluated approaches. Additionally, we introduce a hard benchmark of $10$ larger multi-loop programs (with an average of $7$ loops each); NeuroInv's performance in this setting demonstrates that it can scale to more complex verification scenarios.","short_abstract":"Loop invariant generation remains a critical bottleneck in automated program verification. Recent work has begun to explore the use of Large Language Models (LLMs) in this area, yet these approaches tend to lack a reliable and structured methodology, with little reference to existing program verification theory. This p...","url_abs":"https://arxiv.org/abs/2512.15816","url_pdf":"https://arxiv.org/pdf/2512.15816v1","authors":"[\"Daragh King\",\"Vasileios Koutavas\",\"Laura Kovacs\"]","published":"2025-12-17T14:16:59Z","proceeding":"cs.PL","tasks":"[\"cs.PL\",\"cs.AI\",\"cs.LO\"]","methods":"[\"Large Language Model\",\"Language Model\"]","has_code":false}
