🤖 AI Summary
This work addresses the challenge of automating formal verification of operating system (OS) kernel functional specifications—such as sequences, maps, structs, and enums. We propose a novel SMT-based verification method tailored to OS semantics. Our approach comprises two key contributions: (1) a native encoding scheme for OS-relevant data types that directly translates functional specifications into SMT-lib–compliant logical formulas; and (2) a sequence-oriented quantifier instantiation extension, enabling deep integration of SMT solvers into the OS specification verification pipeline for the first time. Evaluated on the uC-OS/II kernel, our method significantly improves automation: the majority of proof goals discharge without manual intervention, and human effort for functional correctness proofs is substantially reduced. End-to-end trustworthiness is ensured via integration with the Coq proof framework, guaranteeing soundness from specification to verification.
📝 Abstract
We present OSVAuto for automatic proofs about functional specifications that commonly arise when verifying operating system kernels. The algorithm behind OSVAuto is designed to support natively those data types that commonly occur in OS verification, including sequences, maps, structures and enumerations. Propositions about these data are encoded into a form that is suitable for SMT solving. For quantifier instantiation, we propose an extension of recent work for automatic proofs about sequences. We evaluate the algorithm on proof obligations adapted from existing verification of the uC-OS/II kernel in Coq, demonstrating that a large number of proof obligations can be solved automatically, significantly reducing the proof effort on the functional side.