Kit: A Study in Operating System Verification
IEEE Transactions on Software Engineering
Specification and verification of the UCLA Unix security kernel
Communications of the ACM
Guarded commands, nondeterminacy and formal derivation of programs
Communications of the ACM
Running the manual: an approach to high-assurance microkernel development
Proceedings of the 2006 ACM SIGPLAN workshop on Haskell
Types, bytes, and separation logic
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Towards a practical, verified kernel
HOTOS'07 Proceedings of the 11th USENIX workshop on Hot topics in operating systems
KeY-C: A Tool for Verification of C Programs
CADE-21 Proceedings of the 21st international conference on Automated Deduction: Automated Deduction
Secure Microkernels, State Monads and Scalable Refinement
TPHOLs '08 Proceedings of the 21st International Conference on Theorem Proving in Higher Order Logics
Data Refinement: Model-Oriented Proof Methods and their Comparison
Data Refinement: Model-Oriented Proof Methods and their Comparison
Journal of Automated Reasoning
Formal Verification of C Systems Code
Journal of Automated Reasoning
Formal verification of security properties of smart card embedded source code
FM'05 Proceedings of the 2005 international conference on Formal Methods
The road to trustworthy systems
Proceedings of the fifth ACM workshop on Scalable trusted computing
From a verified kernel towards verified systems
APLAS'10 Proceedings of the 8th Asian conference on Programming languages and systems
From a proven correct microkernel to trustworthy large systems
FoVeOOS'10 Proceedings of the 2010 international conference on Formal verification of object-oriented software
Science of Computer Programming
On construction of a library of formally verified low-level arithmetic functions
Proceedings of the 27th Annual ACM Symposium on Applied Computing
Large-scale formal verification in practice: a process perspective
Proceedings of the 34th International Conference on Software Engineering
Challenges and experiences in managing large-scale proofs
CICM'12 Proceedings of the 11th international conference on Intelligent Computer Mathematics
Towards formal verification of TLS network packet processing written in C
PLPV '13 Proceedings of the 7th workshop on Programming languages meets program verification
On construction of a library of formally verified low-level arithmetic functions
Innovations in Systems and Software Engineering
Comprehensive formal verification of an OS microkernel
ACM Transactions on Computer Systems (TOCS)
Hi-index | 0.00 |
This paper presents the formal Isabelle/HOL framework we use to prove refinement between an executable, monadic specification and the C implementation of the seL4 microkernel. We describe the refinement framework itself, the automated tactics it supports, and the connection to our previous C verification framework. We also report on our experience in applying the framework to seL4. The characteristics of this microkernel verification are the size of the target (8,700 lines of C code), the treatment of low-level programming constructs, the focus on high performance, and the large subset of the C programming language addressed, which includes pointer arithmetic and type-unsafe code.