English
Related papers

Related papers: AutoDeduct: A Tool for Automated Deductive Verific…

200 papers

We describe techniques for synthesis and verification of recursive functional programs over unbounded domains. Our techniques build on top of an algorithm for satisfiability modulo recursive functions, a framework for deductive synthesis,…

Programming Languages · Computer Science 2013-04-23 Etienne Kneuss , Viktor Kuncak , Ivan Kuraj , Philippe Suter

Deductive verification has been successful in verifying interesting properties of real-world programs. One notable gap is the limited support for floating-point reasoning. This is unfortunate, as floating-point arithmetic is particularly…

Programming Languages · Computer Science 2021-01-22 Rosa Abbasi Boroujeni , Jonas Schiffl , Eva Darulova , Mattias Ulbrich , Wolfgang Ahrendt

Software verification witnesses are a common exchange format for software verification tools. They were developed to provide arguments supporting the verification result, allowing other tools to reproduce the verification results.…

Programming Languages · Computer Science 2025-01-22 Matthias Heizmann , Dominik Klumpp , Marian Lingsch-Rosenfeld , Frank Schüssele

The functional properties of a program are often specified by providing a contract for each of its functions. A contract of a function consists of a pair of formulas, called a precondition and a postcondition, which, respectively, should…

Logic in Computer Science · Computer Science 2022-11-23 Emanuele De Angelis , Fabio Fioravanti , Alberto Pettorossi , Maurizio Proietti

Function contracts are a well-established way of formally specifying the intended behavior of a function. However, they usually only describe what should happen during a single call. Relational properties, on the other hand, link several…

Software Engineering · Computer Science 2018-05-09 Lionel Blatter , Nikolai Kosmatov , Pascale Le Gall , Virgile Prevosto , Guillaume Petiot

Automatic program verification has made tremendous strides, but is not yet for the masses. How do we make it less painful? This article addresses one of the obstacles: the need to specify explicit "frame clauses", expressing what properties…

Software Engineering · Computer Science 2019-08-06 Victor Rivera , Bertrand Meyer

The large number of recent JEDEC DRAM standard releases and their increasing feature set makes it difficult for designers to rapidly upgrade the memory controller IPs to each new standard. Especially the hardware verification is challenging…

Formal Languages and Automata Theory · Computer Science 2022-10-03 Lukas Steiner , Chirag Sudarshan , Matthias Jung , Dominik Stoffel , Norbert Wehn

Frama-C is a software analysis framework that provides a common infrastructure and a common behavioral specification language to plugins that implement various static and dynamic analyses of C programs. Most plugins do not support…

Programming Languages · Computer Science 2017-08-25 Allan Blanchard , Frédéric Loulergue , Nikolai Kosmatov

Recent work has shown that Large Language Models (LLMs) are not only a suitable tool for code generation but also capable of generating annotation-based code specifications. Scaling these methodologies may allow us to deduce provable…

Software Engineering · Computer Science 2025-06-26 Samuel Teuber , Bernhard Beckert

We present a new approach to automated reasoning about higher-order programs by endowing symbolic execution with a notion of higher-order, symbolic values. Our approach is sound and relatively complete with respect to a first-order solver…

Programming Languages · Computer Science 2016-03-22 Phuc C. Nguyen , Sam Tobin-Hochstadt , David Van Horn

As scientific applications extend to the simulation of more and more complex systems, they involve an increasing number of abstraction levels, at each of which errors can emerge and across which they can propagate; tools for correctness…

Software Engineering · Computer Science 2011-01-18 Eloisa Bentivegna , Gabrielle Allen , Oleg Korobkin , Erik Schnetter

Verification of numerical accuracy properties in modern software remains an important and challenging task. This paper describes an original framework combining different solutions for numerical accuracy. First, we extend an existing…

Software Engineering · Computer Science 2019-11-26 Maxime Jacquemin , Fonenantsoa Maurica , Nikolai Kosmatov , Julien Signoles , Franck Védrine

We study the problem of completely automatically verifying uninterpreted programs---programs that work over arbitrary data models that provide an interpretation for the constants, functions and relations the program uses. The verification…

Programming Languages · Computer Science 2020-08-27 Umang Mathur , P. Madhusudan , Mahesh Viswanathan

We study induction on the program structure as a proof method for bisimulation-based compiler correctness. We consider a first-order language with mutually recursive function definitions, system calls, and an environment semantics. The…

Programming Languages · Computer Science 2016-11-30 Sigurd Schneider , Gert Smolka , Sebastian Hack

We present \synver{}, a novel synthesis and verification framework for C programs, that deploys a Large Language Model (LLM) to search for a candidate program that satisfies the given specification. Our key idea is to impose syntactic and…

Programming Languages · Computer Science 2025-10-21 Prasita Mukherjee , Benjamin Delaware

We present a tool, simplify-defun, that transforms the definition of a given function into a simplified definition of a new function, providing a proof checked by ACL2 that the old and new functions are equivalent. When appropriate it also…

Programming Languages · Computer Science 2017-05-04 Alessandro Coglio , Matt Kaufmann , Eric W. Smith

A program verifier is a tool that can be used to verify that a "contract" for a program holds - i.e. given a precondition the program guarantees that a given postcondition holds - by only working at the level of the annotated program. An…

Software Engineering · Computer Science 2014-06-12 Gudmund Grov

We propose an automated technique for inferring software contracts from programs that are written in a non-trivial fragment of C, called KernelC, that supports pointer-based structures and heap manipulation. Starting from the semantic…

Programming Languages · Computer Science 2016-08-22 María Alpuente , Daniel Pardo , Alicia Villanueva

This tutorial provides an introduction to CPAchecker for users. CPAchecker is a flexible and configurable framework for software verification and testing. The framework provides many abstract domains, such as BDDs, explicit values,…

Automated Driving is revolutionizing many of the traditional ways of operation in the automotive industry. The impact on safety engineering of automotive functions is arguably one of the most important changes. There has been a need to…

Robotics · Computer Science 2019-12-03 Naveen Mohan , Martin Törngren