English
Related papers

Related papers: Verifying Device Drivers with Pancake

200 papers

The last decade has sparked several valiant efforts in deductive verification of distributed agreement protocols such as consensus and leader election. Oddly, there have been far fewer verification efforts that go beyond the core protocols…

Programming Languages · Computer Science 2021-09-14 Nouraldin Jaber , Christopher Wagner , Swen Jacobs , Milind Kulkarni , Roopsha Samanta

Interactive theorem proving software is typically designed around a trusted proof-checking kernel, the sole system component capable of authenticating theorems. Untrusted automation procedures reside outside of the kernel, and drive it to…

Cryptography and Security · Computer Science 2022-05-09 Dominic P. Mulligan , Nick Spinale

Similar vulnerability repeats in real-world software products because of code reuse, especially in wildly reused third-party code and libraries. Detecting repeating vulnerabilities like 1-day and N-day vulnerabilities is an important cyber…

Cryptography and Security · Computer Science 2024-01-19 Zian Liu , Lei Pan , Chao Chen , Ejaz Ahmed , Shigang Liu , Jun Zhang , Dongxi Liu

Valgrind, and specifically the included tool Memcheck, offers an easy and reliable way for checking the correctness of memory operations in programs. This works in an unintrusive way where Valgrind translates the program into intermediate…

Software Engineering · Computer Science 2013-10-04 Thomas M. Baumann , Jose Gracia

Neural network verification tools currently support only a narrow class of specifications, typically expressed as low-level constraints over raw inputs and outputs. This limitation significantly hinders their adoption and practical…

Machine Learning · Computer Science 2026-03-04 Yizhak Y. Elboher , Reuven Peleg , Zhouxing Shi , Guy Katz , Jan Křetínský

In this paper we present a new "external checker" for the Lean theorem prover, written in Lean itself. This is the first complete typechecker for Lean 4 other than the reference implementation in C++ used by Lean itself, and our new checker…

Programming Languages · Computer Science 2025-09-16 Mario Carneiro

Formal specifications play a central role in ensuring software reliability and correctness. However, automatically synthesizing high-quality formal specifications remains a challenging task, often requiring domain expertise. Recent work has…

Software Engineering · Computer Science 2026-04-02 Md Rakib Hossain Misu , Iris Ma , Cristina V. Lopes

A unified modeling framework for non-functional properties of a program is essential for research in software analysis and verification, since it reduces burdens on individual researchers to implement new approaches and compare existing…

Software Engineering · Computer Science 2018-07-11 Chungha Sung , Brandon Paulsen , Chao Wang

The current verification flow of complex systems uses different engines synergistically: virtual prototyping, formal verification, simulation, emulation and FPGA prototyping. However, none is able to verify a complete architecture.…

Logic in Computer Science · Computer Science 2018-02-12 Tomas Grimm , Djones Lettnin , Michael Hübner

Today's microprocessors have grown significantly in complexity and functionality. Most of today's processors provide at least three levels of memory hierarchy, are heavily pipelined, and support some sort of cache coherency protocol. These…

Hardware Architecture · Computer Science 2020-09-02 Mitul S Nagar , Haresh A Suthar , Chintan Panchal

In this paper, we present VerifyML, the first secure inference framework to check the fairness degree of a given Machine learning (ML) model. VerifyML is generic and is immune to any obstruction by the malicious model holder during the…

Cryptography and Security · Computer Science 2022-10-18 Guowen Xu , Xingshuo Han , Gelei Deng , Tianwei Zhang , Shengmin Xu , Jianting Ning , Anjia Yang , Hongwei Li

We present Leapfrog, a Coq-based framework for verifying equivalence of network protocol parsers. Our approach is based on an automata model of P4 parsers, and an algorithm for symbolically computing a compact representation of a…

Programming Languages · Computer Science 2023-02-03 Ryan Doenges , Tobias Kappé , John Sarracino , Nate Foster , Greg Morrisett

We report our experience formally modelling and verifying CXL.cache, the inter-device cache coherence protocol of the Compute Express Link standard. We have used the Isabelle proof assistant to create a formal model for CXL.cache based on…

Hardware Architecture · Computer Science 2025-03-20 Chengsong Tan , Alastair F. Donaldson , John Wickerson

Gradual verification, which supports explicitly partial specifications and verifies them with a combination of static and dynamic checks, makes verification more incremental and provides earlier feedback to developers. While an abstract,…

Programming Languages · Computer Science 2023-11-14 Conrad Zimmerman , Jenna DiVincenzo , Jonathan Aldrich

Eliminating vulnerabilities from low-level code is vital for securing software. Static analysis is a promising approach for discovering vulnerabilities since it can provide developers early feedback on the code they write. But, it presents…

Cryptography and Security · Computer Science 2016-04-07 Bhargava Shastry , Fabian Yamaguchi , Konrad Rieck , Jean-Pierre Seifert

Implementations of network protocols are often prone to vulnerabilities caused by developers' mistakes when accessing memory regions and dealing with arithmetic operations. Finding practical approaches for checking the security of network…

Cryptography and Security · Computer Science 2020-01-28 Kaled Alshmrany , Lucas Cordeiro

The security of computer systems typically relies on a hardware root of trust. As vulnerabilities in hardware can have severe implications on a system, there is a need for techniques to support security verification activities.…

Cryptography and Security · Computer Science 2024-07-11 Rahul Kande , Hammond Pearce , Benjamin Tan , Brendan Dolan-Gavitt , Shailja Thakur , Ramesh Karri , Jeyavijayan Rajendran

We present \synver{}, a novel synthesis and verification framework for C programs, that deploys a Large Language Model (LLM) to search for a candidate program that satisfies the given specification. Our key idea is to impose syntactic and…

Programming Languages · Computer Science 2025-10-21 Prasita Mukherjee , Benjamin Delaware

Large Language Models (LLMs) are increasingly used to automatically generate optimized CUDA kernels, substantially improving developer productivity. However, despite rapid generation, these kernels often contain subtle correctness bugs and…

Software Engineering · Computer Science 2026-03-19 Bodhisatwa Chatterjee , Drew Zagieboylo , Sana Damani , Siva Hari , Christos Kozyrakis

Functional programming offers the perfect ground for building correct-by-construction software. Languages of such paradigm normally feature state-of-the-art type systems, good abstraction mechanisms, and well-defined execution models. We…

Logic in Computer Science · Computer Science 2022-07-21 Daniel Castanho , Mário Pereira