English
Related papers

Related papers: Verifying C11-Style Weak Memory Libraries

200 papers

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

Verification of software systems is a very hard problem due to the large size of program state-space. The traditional techniques (like model checking) do not scale; since they include the whole state-space by inlining the library function…

Logic in Computer Science · Computer Science 2010-05-03 Pritam Roy

The core of a formal semantics of an imperative programming language is a memory model that describes the behavior of operations on the memory. Defining a memory model that matches the description of C in the C11 standard is challenging…

Logic in Computer Science · Computer Science 2015-09-14 Robbert Krebbers

Finite-state models are ubiquitous in the study of concurrent systems, especially controllers and servers that operate in a repetitive cycle. In this paper, we show how to extract finite state models from a run of a multi-threaded Java…

Software Engineering · Computer Science 2024-07-26 KP Jevitha , Bharat Jayaraman , M Sethumadhavan

Geo-replicated systems provide a number of desirable properties such as globally low latency, high availability, scalability, and built-in fault tolerance. Unfortunately, programming correct applications on top of such systems has proven to…

Programming Languages · Computer Science 2025-02-27 Kartik Nagar , Prasita Mukherjee , Suresh Jagannathan

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

This paper presents a formal approach to specify and verify object-oriented programs written in the `programming to interfaces' paradigm. Besides the methods to be invoked by its clients, an interface also declares a set of abstract…

Logic in Computer Science · Computer Science 2013-12-02 Jianhua Zhao , Xuandong LI

Multithreaded programs generally leverage efficient and thread-safe concurrent objects like sets, key-value maps, and queues. While some concurrent-object operations are designed to behave atomically, each witnessing the atomic effects of…

Logic in Computer Science · Computer Science 2019-11-06 Siddharth Krishna , Michael Emmi , Constantin Enea , Dejan Jovanovic

Model checking temporal properties of software is algorithmically hard. To be practically feasible, it usually requires the creation of simpler, abstract models of the software, over which the properties are checked. However, creating…

Formal Languages and Automata Theory · Computer Science 2025-03-17 Jesper Amilon , Dilian Gurov

Weak memory presents a new challenge for program verification and has resulted in the development of a variety of specialised logics. For C11-style memory models, our previous work has shown that it is possible to extend Hoare logic and…

Programming Languages · Computer Science 2020-04-10 Sadegh Dalvandi , Brijesh Dongol , Simon Doherty

The verification of concurrent programs under weak-memory models is a burgeoning effort, owing to the increasing adoption of weak memory in concurrent software and hardware. Release/Acquire has become the standard model for high-performance…

Programming Languages · Computer Science 2026-04-16 Giovanna Kobus Conrado , Andreas Pavlogiannis

We investigate the problem of runtime analysis of C11 programs under Multi-Copy-Atomic semantics (MCA). Under MCA, one can analyze program outcomes solely through interleaving and reordering of thread events. As a result, obtaining…

Programming Languages · Computer Science 2021-05-28 Sanjana Singh , Divyanjali Sharma , Subodh Sharma

Despite multiprocessors implementing weak memory models, verification methods often assume Sequential Consistency (SC), thus may miss bugs due to weak memory. We propose a sound transformation of the program to verify, enabling SC tools to…

Logic in Computer Science · Computer Science 2012-08-01 Jade Alglave , Daniel Kroening , Vincent Nimal , Michael Tautschnig

We present a novel and well automatable approach to formal verification of C programs with underspecified semantics, i.e., a language semantics that leaves open the order of certain evaluations. First, we reduce this problem to…

Programming Languages · Computer Science 2022-08-10 Eduard Kamburjan , Nathan Wasser

Safety verification of robot applications is extremely challenging due to the complexity of the environment that a robot typically operates in. Formal verification with model-checking provides guarantees but it may often take too long or…

Robotics · Computer Science 2025-05-30 Christoph Luckeneder , Ralph Hoch , Hermann Kaindl

We show that verification of object-oriented programs by means of the assertional method can be achieved in a simple way by exploiting a syntax-directed transformation from object-oriented programs to recursive programs. This transformation…

Logic in Computer Science · Computer Science 2011-11-09 Krzysztof R. Apt , Frank S. de Boer , Ernst-Ruediger Olderog , Stijn de Gouw

The library of practical abstractions (LIBPA) provides efficient implementations of conceptually simple abstractions, in the C programming language. We believe that the best library code is conceptually simple so that it will be easily…

cmp-lg · Computer Science 2009-09-25 Eric Sven Ristad , Peter N. Yianilos

Lighthouse projects such as CompCert, seL4, IronFleet, and DeepSpec have demonstrated that full verification of entire systems is feasible by establishing a refinement relation between an abstract system specification and an executable…

Logic in Computer Science · Computer Science 2020-10-13 Christoph Sprenger , Tobias Klenze , Marco Eilers , Felix A. Wolf , Peter Müller , Martin Clochard , David Basin

Software verification is a complex problem, and verification tools need significant tuning to achieve high performance. Due to this, many verifiers choose to specialize on reachability properties, or invest the time to implement known…

Programming Languages · Computer Science 2025-01-28 Dirk Beyer , Marek Jankola , Marian Lingsch-Rosenfeld , Tian Xia , Xiyue Zheng

We consider the problem of verification modulo tested library contracts as a step towards automating the verification of client programs that use complex libraries. We formulate this problem as the synthesis of modular contracts for the…

Programming Languages · Computer Science 2026-05-11 Abhishek Uppar , Omar Muhammad , Sumanth Prabhu , Deepak D'Souza , Madhusudan P , Adithya Murali