English
Related papers

Related papers: Verifying C11-Style Weak Memory Libraries via Refi…

200 papers

Abstraction reasoning is a long-standing challenge in artificial intelligence. Recent studies suggest that many of the deep architectures that have triumphed over other domains failed to work well in abstract reasoning. In this paper, we…

Artificial Intelligence · Computer Science 2019-12-03 Kecheng Zheng , Zheng-jun Zha , Wei Wei

We present a framework for symbolically executing and model checking higher-order programs with external (open) methods. We focus on the client-library paradigm and in particular we aim to check libraries with respect to any definable…

Programming Languages · Computer Science 2020-02-24 Yu-Yang Lin , Nikos Tzevelekos

Statecharts are frequently used as a modeling formalism in the design of state-based systems. Formal verification techniques are also often applied to prove certain properties about the behavior of the system. One of the most efficient…

Logic in Computer Science · Computer Science 2017-03-23 Bence Czipó , Ákos Hajdu , Tamás Tóth , István Majzik

Relational program verification is a variant of program verification where one can reason about two programs and as a special case about two executions of a single program on different inputs. Relational program verification can be used for…

Programming Languages · Computer Science 2019-10-23 Alejandro Aguirre , Gilles Barthe , Marco Gaboardi , Deepak Garg , Pierre-Yves Strub

Remote Direct Memory Access (RDMA) is a memory technology that allows remote devices to directly write to and read from each other's memory, bypassing components such as the CPU and operating system. This enables low-latency high-throughput…

In this paper we present an approach to check resource consumption contracts using an off-the-shelf static analyzer. We propose a set of annotations to support resource usage specifications, in particular, dynamic memory consumption…

Software Engineering · Computer Science 2014-01-07 Rodrigo Castaño , Juan Pablo Galeotti , Diego Garbervetsky , Jonathan Tapicer , Edgardo Zoppi

We present a technique for the automated verification of abstract models of multithreaded programs providing fresh name generation, name mobility, and unbounded control. As high level specification language we adopt here an extension of…

Computation and Language · Computer Science 2007-05-23 Giorgio Delzanno

Witnesses record automated program analysis results and make them exchangeable. To validate correctness witnesses through abstract interpretation, we introduce a novel abstract operation unassume. This operator incorporates witness…

Programming Languages · Computer Science 2025-03-06 Simmo Saan , Michael Schwarz , Julian Erhard , Helmut Seidl , Sarah Tilscher , Vesal Vojdani

We develop a new intermediate weak memory model, IMM, as a way of modularizing the proofs of correctness of compilation from concurrent programming languages with weak memory consistency semantics to mainstream multi-core architectures,…

Programming Languages · Computer Science 2018-11-12 Anton Podkopaev , Ori Lahav , Viktor Vafeiadis

We present a thread-modular abstract interpretation(TMAI) technique to verify programs under the release-acquire (RA) memory model for safety property violations. The main contributions of our work are: we capture the execution order of…

Programming Languages · Computer Science 2021-08-19 Divyanjali Sharma , Subodh Sharma

While object detection modules are essential functionalities for any autonomous vehicle, the performance of such modules that are implemented using deep neural networks can be, in many cases, unreliable. In this paper, we develop…

Artificial Intelligence · Computer Science 2021-03-30 Yuhang Chen , Chih-Hong Cheng , Jun Yan , Rongjie Yan

Many types of formal verification establish properties about abstract high-level program representations, leaving a large gap to programs at runtime. Although gaps can sometimes be narrowed by techniques such as refinement, a verified…

Logic in Computer Science · Computer Science 2025-03-19 Karl Palmskog , Andreas Lindner , Scott Constable , Roberto Guanciale , Hamed Nemati

The main challenge in using abstractions effectively, is to construct a suitable abstraction for the system being verified. One approach that tries to address this problem is that of {\it counterexample guided abstraction-refinement…

Software Engineering · Computer Science 2008-07-09 Rohit Chadha , Mahesh Viswanthan

In recent years, the notion of local robustness (or robustness for short) has emerged as a desirable property of deep neural networks. Intuitively, robustness means that small perturbations to an input do not cause the network to perform…

Programming Languages · Computer Science 2019-05-02 Greg Anderson , Shankara Pailoor , Isil Dillig , Swarat Chaudhuri

An approach for encoding abstract dialectical frameworks and their semantics into classical higher-order logic is presented. Important properties and semantic relationships are formally encoded and proven using the proof assistant…

Logic in Computer Science · Computer Science 2026-04-08 Antoine Martina , Alexander Steen

Binary-level pointer analysis can be of use in symbolic execution, testing, verification, and decompilation of software binaries. In various such contexts, it is crucial that the result is trustworthy, i.e., it can be formally established…

Software Engineering · Computer Science 2025-01-30 Freek Verbeek , Ali Shokri , Daniel Engel , Binoy Ravindran

In recent years, a number of lightweight programs have been deployed in critical domains, such as in smart contracts based on blockchain technology. Therefore, the security and reliability of such programs should be guaranteed by the most…

Programming Languages · Computer Science 2018-03-28 Zheng Yang , Hang Lei

Formal verification of concurrent operating systems (OSs) is challenging, in particular the verification of the dynamic memory management due to its complex data structures and allocation algorithm. An incorrect specification and…

Software Engineering · Computer Science 2023-09-20 Yongwang Zhao , David Sanan

Approximate computing (AC) is an emerging paradigm for energy-efficient computation. The basic idea of AC is to sacrifice high precision for low energy by allowing for hardware which only carries out "approximately correct" calculations.…

Software Engineering · Computer Science 2016-05-10 Tobias Isenberg , Marie-Christine Jakobs , Felix Pauck , Heike Wehrheim

Verification of concurrent data structures is one of the most challenging tasks in software verification. The topic has received considerable attention over the course of the last decade. Nevertheless, human-driven techniques remain…

Programming Languages · Computer Science 2018-11-12 Roland Meyer , Sebastian Wolff