English
Related papers

Related papers: Verifying Device Drivers with Pancake

200 papers

Bounded verification has proved useful to detect bugs and to increase confidence in the correctness of a program. In contrast to unbounded verification, reasoning about calls via (bounded) inlining and about loops via (bounded) unrolling…

Logic in Computer Science · Computer Science 2023-03-14 Thibault Dardinier , Gaurav Parthasarathy , Peter Müller

The software patterns provide building blocks to the design and implementation of a software system, and try to make the software engineering to progress from experience to science. The software patterns were made famous because of the…

Logic in Computer Science · Computer Science 2021-10-26 Yong Wang

CaMeL (Capabilities for Machine Learning) introduces a capability-based sandbox to mitigate prompt injection attacks in large language model (LLM) agents. While effective, CaMeL assumes a trusted user prompt, omits side-channel concerns,…

Cryptography and Security · Computer Science 2025-05-30 Krti Tallam , Emma Miller

We introduce a machine learning approach to model checking temporal logic, with application to formal hardware verification. Model checking answers the question of whether every execution of a given system satisfies a desired temporal logic…

Logic in Computer Science · Computer Science 2024-11-01 Mirco Giacobbe , Daniel Kroening , Abhinandan Pal , Michael Tautschnig

Software verification of evolving systems is challenging mainstream methodologies and tools. Formal verification techniques often conflict with the time constraints imposed by change management practices for evolving systems. Since changes…

Software Engineering · Computer Science 2013-05-02 Domenico Bianculli , Antonio Filieri , Carlo Ghezzi , Dino Mandrioli

The complexity of software in embedded systems has increased significantly over the last years so that software verification now plays an important role in ensuring the overall product quality. In this context, SAT-based bounded model…

Software Engineering · Computer Science 2009-11-20 Lucas Cordeiro , Bernd Fischer , Joao Marques-Silva

The P4 programming language offers high-level, declarative abstractions that bring the flexibility of software to the domain of networking. Unfortunately, the main abstraction used to represent packet data in P4, namely header types, lacks…

Programming Languages · Computer Science 2019-06-25 Matthias Eichholz , Eric Campbell , Nate Foster , Guido Salvaneschi , Mira Mezini

Usually, it is the software manufacturer who employs verification or testing to ensure that the software embedded in a device meets its main objectives. However, these days we are confronted with the situation that economical or…

Logic in Computer Science · Computer Science 2017-02-16 Pedro R. D'Argenio , Gilles Barthe , Sebastian Biewer , Bernd Finkbeiner , Holger Hermanns

SPARK 2014 is a modern programming language and a new state-of-the-art tool set for development and verification of high-integrity software. In this paper, we explore the capabilities and limitations of its latest version in the context of…

Software Engineering · Computer Science 2017-07-05 Martin Becker , Emanuel Regnath , Samarjit Chakraborty

Configurable software verification is a recent concept for expressing different program analysis and model checking approaches in one single formalism. This paper presents CPAchecker, a tool and framework that aims at easy integration of…

Programming Languages · Computer Science 2009-02-03 Dirk Beyer , M. Erkan Keremoglu

Testing has become an indispensable activity of software development, yet writing good and relevant tests remains a quite challenging task. One well-known problem is that it often is impossible or unrealistic to test for every outcome, as…

Programming Languages · Computer Science 2017-08-18 Dimitri Racordon , Didier Buchs

With the progress in deductive program verification research, new tools and techniques have become available to support design-by-contract reasoning about non-trivial programs written in widely-used programming languages. However, deductive…

Programming Languages · Computer Science 2021-07-14 Marieke Huisman , Raúl E. Monti

Dynamic languages are praised for their flexibility and expressiveness, but static analysis often yields many false positives and verification is cumbersome for lack of structure. Hence, unit testing is the prevalent incomplete method for…

Programming Languages · Computer Science 2015-02-06 Robert Jakob , Peter Thiemann

We present a simple framework for specifying and proving facts about the input/output behavior of ELF binary files on the x86-64 architecture. A strong emphasis has been placed on simplicity at all levels: the specification says only what…

Logic in Computer Science · Computer Science 2019-07-03 Mario Carneiro

We propose a conceptual integration of deductive program verification into existing user interfaces for software debugging. This integration is well-represented in the "Debug Adapter Protocol", a widely-used and generic technology to…

Logic in Computer Science · Computer Science 2021-08-09 Gidon Ernst , Johannes Blau , Toby Murray

Software correctness is ensured mathematically through formal verification, which involves the resources of generating formal requirement specifications and having an implementation that must be verified. Tools such as model-checkers and…

Software Engineering · Computer Science 2025-08-29 Arshad Beg , Diarmuid O'Donoghue , Rosemary Monahan

The current landscape of system-on-chips (SoCs) security verification faces challenges due to manual, labor-intensive, and inflexible methodologies. These issues limit the scalability and effectiveness of security protocols, making bug…

Cryptography and Security · Computer Science 2025-05-30 Shams Tarek , Dipayan Saha , Sujan Kumar Saha , Farimah Farahmandi

Verification-aware programming languages such as Dafny and F* provide means to formally specify and prove properties of a program. Although the problem of checking an implementation against a specification can be defined mechanically, there…

Programming Languages · Computer Science 2024-10-17 Shuvendu K. Lahiri

Matlab/Simulink is a development and simulation language that is widely used by the Cyber-Physical System (CPS) industry to model dynamical systems. There are two mainstream approaches to verify CPS Simulink models: model testing that…

Software Engineering · Computer Science 2019-05-10 Shiva Nejati , Khouloud Gaaloul , Claudio Menghi , Lionel C. Briand , Stephen Foster , David Wolfe

Recent advances in the verification of deep neural networks (DNNs) have opened the way for a broader usage of DNN verification technology in many application areas, including safety-critical ones. However, DNN verifiers are themselves…

Logic in Computer Science · Computer Science 2025-06-25 Remi Desmartin , Omri Isac , Grant Passmore , Ekaterina Komendantskaya , Kathrin Stark , Guy Katz