Reduction: a method of proving properties of parallel programs
Communications of the ACM
Automatically validating temporal safety properties of interfaces
SPIN '01 Proceedings of the 8th international SPIN workshop on Model checking of software
System-on-a-chip verification: methodology and techniques
System-on-a-chip verification: methodology and techniques
CONCUR '98 Proceedings of the 9th International Conference on Concurrency Theory
MPC '00 Proceedings of the 5th International Conference on Mathematics of Program Construction
System Level Design and Verification Using a Synchronous Language
Proceedings of the 2003 IEEE/ACM international conference on Computer-aided design
Verification of safety properties for concurrent assembly code
Proceedings of the ninth ACM SIGPLAN international conference on Functional programming
A principled approach to operating system construction in Haskell
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
Dealing with I/O Devices in the Context of Pervasive System Verification
ICCD '05 Proceedings of the 2005 International Conference on Computer Design
Optimistic synchronization-based state-space reduction
Formal Methods in System Design
POSIX file store in Z/Eves: an experiment in the verified software repository
ICECCS '07 Proceedings of the 12th IEEE International Conference on Engineering Complex Computer Systems
Formalising Flash Memory: First Steps
ICECCS '07 Proceedings of the 12th IEEE International Conference on Engineering Complex Computer Systems
Towards trustworthy computing systems: taking microkernels to the next level
ACM SIGOPS Operating Systems Review
Pervasive Compiler Verification -- From Verified Programs to Verified Systems
Electronic Notes in Theoretical Computer Science (ENTCS)
On the architecture of system verification environments
HVC'07 Proceedings of the 3rd international Haifa verification conference on Hardware and software: verification and testing
Formal pervasive verification of a paging mechanism
TACAS'08/ETAPS'08 Proceedings of the Theory and practice of software, 14th international conference on Tools and algorithms for the construction and analysis of systems
The Verisoft Approach to Systems Verification
VSTTE '08 Proceedings of the 2nd international conference on Verified Software: Theories, Tools, Experiments
Formal Verification of Gate-Level Computer Systems
CSR '09 Proceedings of the Fourth International Computer Science Symposium in Russia on Computer Science - Theory and Applications
Pervasive verification of an OS microkernel: inline assembly, memory consumption, concurrent devices
VSTTE'10 Proceedings of the Third international conference on Verified software: theories, tools, experiments
Correctness proofs for device drivers in embedded systems
SSV'10 Proceedings of the 5th international conference on Systems software verification
Formalizing the LLVM intermediate representation for verified program transformations
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
RapiLog: reducing system complexity through verification
Proceedings of the 8th ACM European Conference on Computer Systems
Hi-index | 0.02 |
We report on the formal functional verification of a simple device driver for an ATAPI hard disk in Isabelle/HOL. The proof is based on a functional model of the hard disk, which has been integrated into the instruction set architecture of a verified RISC processor as one of several memory-mapped devices. The result is an interleaved computational model, in which the devices and the processor take turns in execution. Even in this concurrent context, the verification can be kept largely sequential and modular with respect to the other devices. This is made possible by sound reordering of computation traces, given that devices do not interfere with each other and the driver monopolizes the hard disk. To the best of our knowledge, this paper presents the first formal functional verification of a device driver against a realistic device and system model.