English
Related papers

Related papers: Compositional Verification of Heap-Manipulating Pr…

200 papers

Verification of programs operating on heap-allocated data structures, for instance lists or trees, poses significant challenges due to the potentially unbounded size of such data structures. We present time-indexed heap invariants, a novel…

Logic in Computer Science · Computer Science 2026-03-16 Zafer Esen , Philipp Rümmer , Tjark Weber

Theoretical foundations of compositional reasoning about heaps in imperative programming languages are investigated. We introduce a novel concept of compositional symbolic memory and its relevant properties. We utilize these formal…

Programming Languages · Computer Science 2019-06-27 Yurii Kostyukov , Konstantin Batoev , Dmitry Mordvinov , Michael Kostitsyn , Aleksandr Misonizhnik

We investigate the decidability of automatic program verification for programs that manipulate heaps, and in particular, decision procedures for proving memory safety for them. We extend recent work that identified a decidable subclass of…

Programming Languages · Computer Science 2020-01-01 Umang Mathur , Adithya Murali , Paul Krogmeier , P. Madhusudan , Mahesh Viswanathan

We address the problem of verifying k-safety properties: properties that refer to k-interacting executions of a program. A prominent way to verify k-safety properties is by self composition. In this approach, the problem of checking…

Programming Languages · Computer Science 2019-05-28 Ron Shemer , Arie Gurfinkel , Sharon Shoham , Yakir Vizel

Answer set programming (ASP) and planning are two widely used paradigms for solving logic programs with declarative programming. In both cases, the quality of the input programs has a major influence on the quality and performance of the…

Logic in Computer Science · Computer Science 2019-05-09 Patrick Lühne

The article provides an overview of the existing methods of dynamic memory verification; a comparative analysis is carried out; the applicability for solving problems of control, monitoring, and verification of dynamic memory is evaluated.…

Logic in Computer Science · Computer Science 2022-03-25 René Haberland

We present a compositional SMT-based algorithm for safety of procedural C programs that takes the heap into consideration as well. Existing SMT-based approaches are either largely restricted to handling linear arithmetic operations and…

Logic in Computer Science · Computer Science 2015-08-07 Anvesh Komuravelli , Nikolaj Bjorner , Arie Gurfinkel , Kenneth L. McMillan

We consider the problem of automatically verifying programs which manipulate arbitrary data structures. Our specification language is expressive, contains a notion of \emph{separation}, and thus enables a precise specification of…

Programming Languages · Computer Science 2017-11-16 Duc-Hiep Chu , Joxan Jaffar

Dynamic memory issues are hard to locate and may cost much of a development project's efforts and was repeatedly reported similarly afterwards independently by different persons. Verification as one formal method may proof a given program's…

Logic in Computer Science · Computer Science 2019-06-28 René Haberland , Kirill Krinkin

We address the problem of verifying automatically procedural programs manipulating parametric-size arrays of integers, encoded as a constrained Horn clauses solving problem. We propose a new algorithmic method for synthesizing loop…

Programming Languages · Computer Science 2025-05-23 Ahmed Bouajjani , Wael-Amine Boutglay , Peter Habermehl

Loop invariants play a central role in the verification of imperative programs. However, finding these invariants is often a difficult and time-consuming task for the programmer. We have previously shown how program transformation can be…

Logic in Computer Science · Computer Science 2017-08-25 G. W. Hamilton

The compositional approach is important for reasoning about large and complex systems. In this work, we address synchronous systems with hierarchical structures, which are often used to model cyber-physical systems. We revisit the theory of…

Software Engineering · Computer Science 2024-03-19 Daisuke Ishii

In deductive verification and software model checking, dealing with certain specification language constructs can be problematic when the back-end solver is not sufficiently powerful or lacks the required theories. One way to deal with this…

Logic in Computer Science · Computer Science 2024-12-10 Jesper Amilon , Zafer Esen , Dilian Gurov , Christian Lidström , Philipp Rümmer , Marten Voorberg

This paper presents a new method for automatically generating numerical invariants for imperative programs. Given a program, our procedure computes a binary input/output relation on program states which over-approximates the behaviour of…

Programming Languages · Computer Science 2015-02-03 Azadeh Farzan , Zachary Kincaid

Currently, many verification algorithms are available to improve the reliability of software systems. Selecting the appropriate verification algorithm typically demands domain expertise and non-trivial manpower. An automated algorithm…

Software Engineering · Computer Science 2025-05-26 Jie Su , Liansai Deng , Cheng Wen , Rong Wang , Zhi Ma , Nan Zhang , Cong Tian , Zhenhua Duan , Shengchao Qin

In deductive verification and software model checking, dealing with certain specification language constructs can be problematic when the back-end solver is not sufficiently powerful or lacks the required theories. One way to deal with this…

Software Engineering · Computer Science 2023-06-02 Jesper Amilon , Zafer Esen , Dilian Gurov , Christian Lidström , Philipp Rümmer

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

Verifying programs that manipulate tree data structures often requires complex, ad-hoc proofs that are hard to generalize and automate. This paper introduces an automatic technique for analyzing such programs. Our approach combines automata…

Programming Languages · Computer Science 2024-10-15 Marco Faella , Gennaro Parlato

As autonomy becomes prevalent in many applications, ranging from recommendation systems to fully autonomous vehicles, there is an increased need to provide safety guarantees for such systems. The problem is difficult, as these are large,…

Artificial Intelligence · Computer Science 2018-10-22 Corina S. Pasareanu , Divya Gopinath , Huafeng Yu

A program invariant is a property that holds for every execution of the program. Recent work suggest to infer likely-only invariants, via dynamic analysis. A likely invariant is a property that holds for some executions but is not…

Software Engineering · Computer Science 2007-05-23 Tristan Denmat , Arnaud Gotlieb , Mireille Ducasse
‹ Prev 1 2 3 10 Next ›