English
Related papers

Related papers: Automatic Verification of Iterated Separating Conj…

200 papers

Quantitative separation logic (QSL) is an extension of separation logic (SL) for the verification of probabilistic pointer programs. In QSL, formulae evaluate to real numbers instead of truth values, e.g., the probability of memory-safe…

Logic in Computer Science · Computer Science 2022-01-28 Kevin Batz , Ira Fesefeldt , Marvin Jansen , Joost-Pieter Katoen , Florian Keßler , Christoph Matheja , Thomas Noll

Separation Logic is an effective Program Logic for proving programs that involve pointers. Reasoning with pointers becomes difficult especially when there is aliasing arising due to several pointers to a given cell location. In this paper,…

Logic in Computer Science · Computer Science 2017-04-07 Abhishek Kr Singh , Raja Natrajan

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

Writing correct programs for weak memory models such as the C11 memory model is challenging because of the weak consistency guarantees these models provide. The first program logics for the verification of such programs have recently been…

Programming Languages · Computer Science 2018-02-20 Alexander J. Summers , Peter Müller

This paper presents two decidability results on the validity checking problem for entailments of symbolic heaps in separation logic with Presburger arithmetic and arrays. The first result is for a system with arrays and existential…

Logic in Computer Science · Computer Science 2023-06-22 Daisuke Kimura , Makoto Tatsuta

As software systems increase in size and complexity dramatically, ensuring their correctness, security, and reliability becomes an increasingly formidable challenge. Despite significant advancements in verification techniques and tools,…

Foundational verification considers the functional correctness of programming languages with formalized semantics and uses proof assistants (e.g., Coq, Isabelle) to certify proofs. The need for verifying complex programs compels it to…

Programming Languages · Computer Science 2025-07-08 Qiyuan Xu , David Sanan , Zhe Hou , Xiaokun Luan , Conrad Watt , Yang Liu

Many important hyperproperties, such as refinement and generalized non-interference, fall into the class of $\forall\exists$ hyperproperties and require, for each execution trace of a system, the existence of another trace relating to the…

Programming Languages · Computer Science 2025-01-15 Arthur Correnson , Tobias Niessen , Bernd Finkbeiner , Georg Weissenbacher

Symbolic execution uses various algorithms (matching, (anti)unification), whose executions are parameters for proof object generation. This paper proposes a generic method for generating proof objects for such parameters. We present in…

Logic in Computer Science · Computer Science 2022-09-22 Andrei Arusoaie , Dorel Lucanu

Hybrid systems exhibit both continuous and discrete behavior. Analyzing hybrid systems is known to be hard. Inspired by the idea of concolic testing (of programs), we investigate whether we can combine random sampling and symbolic execution…

Software Engineering · Computer Science 2016-09-01 Pingfan Kong , Yi Li , Xiaohong Chen , Jun Sun , Meng Sun , Jingyi Wang

Symbolic execution is a program analysis technique executing programs with symbolic instead of concrete inputs. This principle allows for exploring many program paths at once. Despite its wide adoption -- in particular for program testing…

Programming Languages · Computer Science 2023-10-13 Arthur Correnson , Dominic Steinhoefel

Modern processors employ different prediction mechanisms to speculate over different kinds of instructions. Attackers can exploit these prediction mechanisms simultaneously in order to trigger leaks about speculatively-accessed data. Thus,…

Cryptography and Security · Computer Science 2022-09-05 Xaver Fabian , Marco Guarnieri , Marco Patrignani

Symbolic execution is an SMT-based software verification and testing technique. Symbolic execution requires tracking performed computations during software simulation to reason about branches in the software under test. The prevailing…

Software Engineering · Computer Science 2025-05-27 Sören Tempel , Tobias Brandt , Christoph Lüth , Christian Dietrich , Rolf Drechsler

Bounded model checking of pointer programs is a debugging technique for programs that manipulate dynamically allocated pointer structures on the heap. It is based on the following four observations. First, error conditions like dereference…

Logic in Computer Science · Computer Science 2016-03-02 Witold Charatonik , Piotr Witkowski

In top-down multi-level design methodologies, design descriptions at higher levels of abstraction are incrementally refined to the final realizations. Simulation based techniques have traditionally been used to verify that such model…

Logic in Computer Science · Computer Science 2013-08-02 Salim Ismail Al-Akhras , Sofiène Tahar , Gabriela Nicolescu , Michel Langevin , Pierre Paulin

We consider the formulation of a symbolic execution (SE) procedure for functional programs that interact with effectful, opaque libraries. Our procedure allows specifications of libraries and abstract data type (ADT) methods that are…

Programming Languages · Computer Science 2024-11-26 Yongwei Yuan , Zhe Zhou , Julia Belyakova , Suresh Jagannathan

Message passing is the standard paradigm of programming in high-performance computing. However, verifying Message Passing Interface (MPI) programs is challenging, due to the complex program features (such as non-determinism and non-blocking…

Programming Languages · Computer Science 2020-01-20 Hengbiao Yu , Zhenbang Chen , Xianjin Fu , Ji Wang , Zhendong Su , Jun Sun , Chun Huang , Wei Dong

We develop a doubly-exponential decision procedure for the satisfiability problem of guarded separation logic -- a novel fragment of separation logic featuring user-supplied inductive predicates, Boolean connectives, and separating…

Logic in Computer Science · Computer Science 2021-04-21 Jens Pagel , Christoph Matheja , Florian Zuleger

Commutativity of data structure methods is of ongoing interest, with roots in the database community. In recent years commutativity has been shown to be a key ingredient to enabling multicore concurrency in contexts such as parallelizing…

Programming Languages · Computer Science 2020-04-21 Eric Koskinen , Kshitij Bansal

Chase-Lev deque is a concurrent data structure designed for efficient load balancing in multiprocessor scheduling. It employs a work-stealing strategy, where each thread possesses its own work-stealing deque to store tasks, and idle threads…

Logic in Computer Science · Computer Science 2023-09-08 Jaemin Choi