English
Related papers

Related papers: Generating Loop Invariants for Program Verificatio…

200 papers

We explore an approach to verification of programs via program transformation applied to an interpreter of a programming language. A specialization technique known as Turchin's supercompilation is used to specialize some interpreters with…

Programming Languages · Computer Science 2017-05-22 Alexei P. Lisitsa , Andrei P. Nemytykh

Automatically verifying safety properties of programs is hard, and it is even harder if the program acts upon arrays or other forms of maps. Many approaches exist for verifying programs operating upon Boolean and integer values (e.g.…

Programming Languages · Computer Science 2015-10-01 David Monniaux , Laure Gonnord

In theorem prover or SMT solver based verification, the program to be verified is often given in an intermediate verification language such as Boogie, Why, or CHC. This setting raises new challenges. We investigate a preprocessing step…

Software Engineering · Computer Science 2019-01-08 Daniel Dietsch , Matthias Heizmann , Jochen Hoenicke , Alexander Nutz , Andreas Podelski

We present a new approach to termination analysis of numerical computations in logic programs. Traditional approaches fail to analyse them due to non well-foundedness of the integers. We present a technique that allows to overcome these…

Programming Languages · Computer Science 2007-05-23 Alexander Serebrenik , Danny De Schreye

Optimizing compilers have become a cornerstone for high-performance program generation in research and industry. Optimizations, including those implemented manually by a user and those target-specific and non-target-specific, are used to…

Programming Languages · Computer Science 2026-05-05 Emily Tucker , Louis-Noël Pouchet , Erika Hunhoff , Stephen Neuendorffer , Erwei Wang

In various provers and deductive verification tools, logical transformations are used extensively in order to reduce a proof task into a number of simpler tasks. Logical transformations are often part of the trusted base of such tools. In…

Logic in Computer Science · Computer Science 2021-07-07 Quentin Garchery

Pragmas for loop transformations, such as unrolling, are implemented in most mainstream compilers. They are used by application programmers because of their ease of use compared to directly modifying the source code of the relevant loops.…

Programming Languages · Computer Science 2019-01-31 Michael Kruse , Hal Finkel

The emergence of prompting as the dominant paradigm for leveraging Large Language Models (LLMs) has led to a proliferation of LLM-native software, where application behavior arises from complex, stochastic data transformations. However, the…

Determining whether a program terminates is a core challenge in program analysis with direct implications for correctness, verification, and security. We investigate whether transformer architectures can recognise termination patterns…

Programming Languages · Computer Science 2026-04-02 Yoav Alon , Cristina David

In mutation testing the question whether a mutant is equivalent to its program is important in order to compute the correct mutation score. Unfortunately, answering this question is not always possible and can hardly be obtained just by…

Software Engineering · Computer Science 2012-07-11 Simona Nica , Franz Wotawa

Compiler optimization techniques are inherently complex, and rigorous testing of compiler optimization implementation is critical. Recent years have witnessed the emergence of testing approaches for uncovering incorrect optimization bugs,…

Software Engineering · Computer Science 2025-04-08 Jingwen Wu , Jiajing Zheng , Zhenyu Yang , Zhongxing Yu

The problem of checking whether two programs are semantically equivalent or not has a diverse range of applications, and is consequently of substantial importance. There are several techniques that address this problem, chiefly by…

Software Engineering · Computer Science 2021-09-07 Manish Goyal , Muqsit Azeem , Kumar Madhukar , R. Venkatesh

Even competent programmers make mistakes. Automatic verification can detect errors, but leaves the frustrating task of finding the erroneous line of code to the user. This paper presents an automatic approach for identifying potential error…

Logic in Computer Science · Computer Science 2014-09-17 Robert Koenighofer , Ronald Toegl , Roderick Bloem

Interpolation-based techniques have been widely and successfully applied in the verification of hardware and software, e.g., in bounded-model check- ing, CEGAR, SMT, etc., whose hardest part is how to synthesize interpolants. Various work…

Logic in Computer Science · Computer Science 2013-03-05 Liyun Dai , Bican Xia , Naijun Zhan

Several techniques and tools have been developed for verification of properties expressed as Horn clauses with constraints over a background theory (CHC). Current CHC verification tools implement intricate algorithms and are often limited…

Programming Languages · Computer Science 2014-05-16 John P. Gallagher , Bishoksan Kafle

This Survey provides an overview of techniques in termination analysis for programs with numerical variables and transitions defined by linear constraints. This subarea of program analysis is challenging due to the existence of undecidable…

Programming Languages · Computer Science 2026-01-27 Amir M. Ben-Amram , Samir Genaim , Joël Ouaknine , James Worrell

Barrier certificates, a form of state invariants, provide an automated approach to the verification of the safety of dynamical systems. Similarly to barrier certificates, recent works explore the notion of closure certificates, a form of…

Systems and Control · Electrical Eng. & Systems 2026-02-16 Mohammed Adib Oumer , Vishnu Murali , Majid Zamani

Invariants are a set of properties over program attributes that are expected to be true during the execution of a program. Since developing those invariants manually can be costly and challenging, there are a myriad of approaches that…

Robotics · Computer Science 2020-12-15 Meriel Stein , Sebastian Elbaum , Lu Feng , Shili Sheng

Models of complex systems are often formalized as sequential software simulators: computationally intensive programs that iteratively build up probable system configurations given parameters and initial conditions. These simulators enable…

Machine Learning · Statistics 2015-06-02 Ardavan Saeedi , Vlad Firoiu , Vikash Mansinghka

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…

Programming Languages · Computer Science 2025-12-19 Daragh King , Vasileios Koutavas , Laura Kovacs