English
Related papers

Related papers: Automatic Reasoning on Recursive Data-Structures w…

200 papers

We develop the first two heap logics that have implicit heaplets and that admit FO-complete program verification. The notion of FO-completeness is a theoretical guarantee that all theorems that are valid when recursive definitions are…

Logic in Computer Science · Computer Science 2026-01-13 Adithya Murali , Hrishikesh Balakrishnan , Aaron Councilman , P. Madhusudan

In permission logics such as separation logic, the iterated separating conjunction is a quantifier denoting access permission to an unbounded set of heap locations. In contrast to recursive predicates, iterated separating conjunctions do…

Programming Languages · Computer Science 2016-05-09 Peter Müller , Malte Schwerhoff , Alexander J. Summers

We consider Hoare-style verification for the graph programming language GP 2. In previous work, graph properties were specified by so-called E-conditions which extend nested graph conditions. However, this type of assertions is not easy to…

Logic in Computer Science · Computer Science 2020-12-04 Gia S. Wulandari , Detlef Plump

There are many techniques and tools to prove termination of C programs, but up to now these tools were not very powerful for fully automated termination proofs of programs whose termination depends on recursive data structures like lists.…

Logic in Computer Science · Computer Science 2023-06-06 Jera Hensel , Jürgen Giesl

Answer Set Programming (ASP) is a powerful declarative programming paradigm commonly used for solving challenging search and optimization problems. The modeling languages of ASP are supported by sophisticated solving algorithms (solvers)…

Logic in Computer Science · Computer Science 2022-08-08 Zach Hansen

In this work, we study the fully automated inference of expected result values of probabilistic programs in the presence of natural programming constructs such as procedures, local variables and recursion. While crucial, capturing these…

Programming Languages · Computer Science 2023-04-26 Martin Avanzini , Georg Moser , Michael Schaper

We consider Hoare-style verification for the graph programming language GP 2. In previous work, graph properties were specified by so-called E-conditions which extend nested graph conditions. However, this type of assertions is not easy to…

Logic in Computer Science · Computer Science 2020-11-04 Gia Wulandari , Detlef Plump

Proof by coupling is a classical technique for proving properties about pairs of randomized algorithms by carefully relating (or coupling) two probabilistic executions. In this paper, we show how to automatically construct such proofs for…

Programming Languages · Computer Science 2018-04-12 Aws Albarghouthi , Justin Hsu

We present an approach to program reasoning which inserts between a program and its verification conditions an additional layer, the denotation of the program expressed in a declarative form. The program is first translated into its…

Logic in Computer Science · Computer Science 2012-02-23 Wolfgang Schreiner

Functional programming offers the perfect ground for building correct-by-construction software. Languages of such paradigm normally feature state-of-the-art type systems, good abstraction mechanisms, and well-defined execution models. We…

Logic in Computer Science · Computer Science 2022-07-21 Daniel Castanho , Mário Pereira

In the paper the problem of verification of functional programs (FPs) over strings is considered, where specifications of properties of FPs are defined by other FPs, and a FP S1 meets a specification defined by another FP S2 iff a…

Logic in Computer Science · Computer Science 2016-04-15 Andrew M. Mironov

Intelligent coding systems are transforming software development by enabling users to specify code behavior in natural language. However, the opaque decision-making of AI-driven coders raises trust and usability concerns, particularly for…

Software Engineering · Computer Science 2025-08-11 Xiangzhe Xu , Shiwei Feng , Zian Su , Chengpeng Wang , Xiangyu Zhang

Authenticated data structures allow untrusted third parties to carry out operations which produce proofs that can be used to verify an operation's output. Such data structures are challenging to develop and implement correctly. This paper…

Logic in Computer Science · Computer Science 2025-01-22 Simon Oddershede Gregersen , Chaitanya Agarwal , Joseph Tassarotti

First Order Logic (FOL) is a powerful reasoning tool for program verification. Recent work on Ivy shows that FOL is well suited for verification of parameterized distributed systems. However, specifying many natural objects, such as a ring…

Logic in Computer Science · Computer Science 2019-03-11 Rylo Ashmore , Arie Gurfinkel , Richard Trefler

The term {\em meta-programming} refers to the ability of writing programs that have other programs as data and exploit their semantics. The aim of this paper is presenting a methodology allowing us to perform a correct termination analysis…

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

Explicit signaling between threads is a perennial cause of bugs in concurrent programs. While there are several run-time techniques to automatically notify threads upon the availability of some shared resource, such techniques are not…

Programming Languages · Computer Science 2018-04-10 Kostas Ferles , Jacob Van Geffen , Isil Dillig , Yannis Smaragdakis

Nowadays, as machine-learned software quickly permeates our society, we are becoming increasingly vulnerable to programming errors in the data pre-processing or training software, as well as errors in the data itself. In this paper, we…

Programming Languages · Computer Science 2020-07-22 Caterina Urban

Refinement transforms an abstract system model into a concrete, executable program, such that properties established for the abstract model carry over to the concrete implementation. Refinement has been used successfully in the development…

Logic in Computer Science · Computer Science 2021-10-27 Aurel Bílý , Christoph Matheja , Peter Müller

Self-composition provides a powerful theoretical approach to prove relational properties, i.e. properties relating several program executions, that has been applied to compare two runs of one or similar programs (in secure dataflow…

Software Engineering · Computer Science 2017-02-07 Lionel Blatter , Nikolai Kosmatov , Pascale Le Gall , Virgile Prevosto

There are many techniques and tools for termination of C programs, but up to now they were not very powerful for termination proofs of programs whose termination depends on recursive data structures like lists. We present the first approach…

Logic in Computer Science · Computer Science 2023-07-21 Jera Hensel , Jürgen Giesl