English
Related papers

Related papers: Inferring Loop Invariants by Mutation, Dynamic Ana…

200 papers

In this paper we use pre existing language support for type modifiers and object capabilities to enable a system for sound runtime verification of invariants. Our system guarantees that class invariants hold for all objects involved in…

Programming Languages · Computer Science 2019-02-28 Isaac Oscar Gariano , Marco Servetto , Alex Potanin

In the verification of loop programs, disjunctive invariants are essential to capture complex loop dynamics such as phase and mode changes. In this work, we develop a novel approach for the automated generation of affine disjunctive…

Logic in Computer Science · Computer Science 2024-11-20 Jingyu Ke , Hongfei Fu , Hongming Liu , Zhouyue Sun , Liqian Chen , Guoqiang Li

Automated program repair (APR) faces the challenge of test overfitting, where generated patches pass validation tests but fail to generalize. Existing methods for patch assessment involve generating new tests or manual inspection, which can…

Software Engineering · Computer Science 2023-03-20 Thanh Le-Cong , Duc-Minh Luong , Xuan Bach D. Le , David Lo , Nhat-Hoa Tran , Bui Quang-Huy , Quyet-Thang Huynh

We describe a system to prove properties of programs. The key feature of this approach is a method to automatically synthesize inductive invariants of the loops contained in the program. The method is generic, i.e., it applies to a large…

Logic in Computer Science · Computer Science 2019-06-27 Mnacho Echenim , Nicolas Peltier , Yanis Sellami

We present the first approach to prove non-termination of integer programs that is based on loop acceleration. If our technique cannot show non-termination of a loop, it tries to accelerate it instead in order to find paths to other…

Logic in Computer Science · Computer Science 2019-08-09 Florian Frohn , Jürgen Giesl

Debugging is difficult. Recent studies show that automatic bug localization techniques have limited usefulness. One of the reasons is that programmers typically have to understand why the program fails before fixing it. In this work, we aim…

Software Engineering · Computer Science 2019-11-22 Jun Sun , Long H. Pham , Lyly Tran Thi , Jingyi Wang , Xin Peng

Despite the crucial need for formal safety and security verification of programs, discovering loop invariants remains a significant challenge. Static analysis is a primary technique for inferring loop invariants but often relies on…

Programming Languages · Computer Science 2024-12-17 Ashish Kumar , Jilaun Zhang , Saeid Tizpaz-Niari , Gang Tan

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…

Logic in Computer Science · Computer Science 2025-08-04 Varun Bharti , Shashwat Jha , Dhruv Kumar , Pankaj Jalote

Quantitative loop invariants are an essential element in the verification of probabilistic programs. Recently, multivariate Lagrange interpolation has been applied to synthesizing polynomial invariants. In this paper, we propose an…

Logic in Computer Science · Computer Science 2017-07-11 Yijun Feng , Lijun Zhang , David N. Jansen , Naijun Zhan , Bican Xia

Program verification relies on loop invariants, yet automatically discovering strong invariants remains a long-standing challenge. We investigate whether large language models (LLMs) can accelerate program verification by generating useful…

Programming Languages · Computer Science 2026-04-03 Anjiang Wei , Tianran Sun , Tarun Suresh , Haoze Wu , Ke Wang , Alex Aiken

We present a full-program induction technique for proving (a sub-class of) quantified as well as quantifier-free properties of programs manipulating arrays of parametric size N. Instead of inducting over individual loops, our technique…

Software Engineering · Computer Science 2020-02-25 Supratik Chakraborty , Ashutosh Gupta , Divyesh Unadkat

We describe the LoopInvGen tool for generating loop invariants that can provably guarantee correctness of a program with respect to a given specification. LoopInvGen is an efficient implementation of the inference technique originally…

Programming Languages · Computer Science 2019-11-01 Saswat Padhi , Rahul Sharma , Todd Millstein

A loop invariant is a property of a loop that remains true before and after each execution of the loop. The identification of loop invariants is a critical step to support automated program safety assessment. Recent advancements in Large…

Software Engineering · Computer Science 2025-11-11 Mostafijur Rahman Akhond , Saikat Chakraborty , Gias Uddin

Dynamically typed object-oriented languages enable programmers to write elegant, reusable and extensible programs. However, with the current methodology for program verification, the absence of static type information creates significant…

Programming Languages · Computer Science 2015-01-13 Björn Engelmann , Ernst-Rüdiger Olderog , Nils Erik Flick

This paper presents incremental verification-validation, a novel approach for checking rich data structure invariants expressed as separation logic assertions. Incremental verification-validation combines static verification of separation…

Programming Languages · Computer Science 2015-11-17 Yi-Fan Tsai , Devin Coughlin , Bor-Yuh Evan Chang , Xavier Rival

This paper addresses the problem of checking invariant properties for a large class of symbolic transition systems, defined by a combination of SMT theories and quantifiers. State variables can be functions from an uninterpreted sort…

Logic in Computer Science · Computer Science 2024-03-01 Gianluca Redondi , Alessandro Cimatti , Alberto Griggio , Kenneth McMillan

Automatically generating invariants, key to computer-aided analysis of probabilistic and deterministic programs and compiler optimisation, is a challenging open problem. Whilst the problem is in general undecidable, the goal is settled for…

Programming Languages · Computer Science 2022-06-15 Daneshvar Amrollahi , Ezio Bartocci , George Kenison , Laura Kovács , Marcel Moosbrugger , Miroslav Stankovič

Program analysis requires the generation of program properties expressing conditions to hold at intermediate program locations. When it comes to programs with loops, these properties are typically expressed as loop invariants. In this paper…

Programming Languages · Computer Science 2018-01-15 Andreas Humenberger , Maximilian Jaroschek , Laura Kovács

Essential tasks for the verification of probabilistic programs include bounding expected outcomes and proving termination in finite expected runtime. We contribute a simple yet effective inductive synthesis approach for proving such…

Logic in Computer Science · Computer Science 2023-02-09 Kevin Batz , Mingshuai Chen , Sebastian Junges , Benjamin Lucien Kaminski , Joost-Pieter Katoen , Christoph Matheja

We propose a novel framework that provides constructive feedback to an LLM in the "guess-and-check" paradigm by formally verifying its own thinking process and detecting local reasoning errors. We apply this framework to the loop invariant…

Programming Languages · Computer Science 2026-05-19 Tianchi Li , Zhenyu Yan , Junhao Liu , Peng Di , Xin Zhang