BFF: foundational and automated verification of bitfield-manipulating programs
Fengmin Zhu, Michael Sammler, Rodolphe Lepigre, Derek Dreyer, Deepak Garg
摘要
Low-level systems code often needs to interact with data, such as page table entries or network packet headers, in which multiple pieces of information are packaged together as bitfield components of a single machine integer and accessed via bitfield manipulations (e.g., shifts and masking). Most existing approaches to verifying such code employ SMT solvers, instantiated with theories for bit vector reasoning: these provide a powerful hammer, but also significantly increase the trusted computing base of the verification toolchain. In this work, we propose an alternative approach to the verification of bitfield-manipulating systems code, which we call BFF. Building on the RefinedC framework, BFF is not only highly automated (as SMT-based approaches are) but also foundational---i.e., it produces a machine-checked proof of program correctness against a formal semantics for C programs, fully mechanized in Coq. Unlike SMT-based approaches, we do not try to solve the general problem of arbitrary bit vector reasoning, but rather observe that real systems code typically accesses bitfields using simple, well-understood programming patterns: the layout of a bit vector is known up front, and its bitfields are accessed in predictable ways through a handful of bitwise operations involving bit masks. Correspondingly, we center our approach around the concept of a structured bit vector---i.e., a bit vector with a known bitfield layout---which we use to drive simple and predictable automation. We validate the BFF approach by verifying a range of bitfield-manipulating C functions drawn from real systems code, including page table manipulation code from the Linux kernel and the pKVM hypervisor.
问问这篇 Paper
智能体会读完全文。
Lune 把这篇 Paper 索引到了每一个公式,引用它的顶会 Paper 也一样。你提问,回答直接引用原文。
引用它的顶会 Paper2
- Destabilizing IrisSimon Spies, Niklas Mück, Haoyi Zeng, Michael Sammler 等PLDI 2025 · 被引用 5 次
- Practical Verification of System-Software Components Written in Standard CCan Cebeci, Yonghao Zou, Diyu Zhou, George Candea 等SOSP 2024 · 被引用 2 次
它引用的顶会 Paper7
- RefinedC: automating the foundational verification of C code with refined ownership typesMichael Sammler, Rodolphe Lepigre, Robbert Krebbers, Kayvan Memarian 等PLDI 2021 · 被引用 83 次
- Validating SMT solvers via semantic fusionDominik Winterer, Chengyu Zhang, Zhendong SuPLDI 2020 · 被引用 80 次
- On the unusual effectiveness of type-aware operator mutations for testing SMT solversDominik Winterer, Chengyu Zhang, Zhendong SuOOPSLA 2020 · 被引用 55 次
- Detecting critical bugs in SMT solvers using blackbox mutational fuzzingMuhammad Numair Mansur, Maria Christakis, Valentin Wüstholz, Fuyuan ZhangFSE 2020 · 被引用 51 次
- Generative type-aware mutation for testing SMT solversJiwon Park, Dominik Winterer, Chengyu Zhang, Zhendong SuOOPSLA 2021 · 被引用 31 次
相关 Paper
- Interactive Bitvector Reasoning using Verified Bit-BlastingHenrik Böving, Siddharth Bhat, Luisa Cicolini, Alex C. Keizer 等OOPSLA 2025 · 被引用 3 次
- Certified Decision Procedures for Width-Independent Bitvector PredicatesSiddharth Bhat, Léo Stefanesco, Chris Hughes, Tobias GrosserOOPSLA 2025 · 被引用 2 次
- Scalable Bit-Blasting with AbstractionsAina Niemetz, Mathias Preiner, Yoni ZoharCAV 2024 · 被引用 11 次
- Automating Bitvector and Finite Field Equivalence Proofs in LeanElizaveta Pertseva, Valentin Robert, Clark W. Barrett, James ParkerCAV 2026
- CoqQFBV: A Scalable Certified SMT Quantifier-Free Bit-Vector SolverXiaomu Shi, Yu-Fu Fu, Jiaxiang Liu, Ming-Hsien Tsai 等CAV 2021 · 被引用 10 次
