Significant improvement in the maintainability of seL4 proofs
Proofcraft’s Chief Engineer Rafal Kolanski has completed a major “architecture split” overhaul of the seL4 proofs, resulting in the removal of 250k lines of proof and strengthening the link between proofs on different architectures. These changes will significantly reduce future effort required to maintain and extend the kernel’s formal verification.
Over the years, when seL4 proofs were completed for the five supported architectures (Arm 32-bit with and without hypervisor extensions, AArch64, RISC-V 64-bit and x86 64-bit), various parts of proofs from previous architectures were first copied, then updated. In pre-Proofcraft days, Rafal’s team recognised the problem and instituted an architecture split procedure for the first part of the abstract invariant proofs, but the next proof layer (abstract to design specification refinement) ended up with five-way duplication running to 420k+ lines of proof.
The goal of the “architecture split” procedure is to identify a common subset between the definitions and proofs of each architecture, then carve the proofs as aggressively as possible into a generic part, an interface that architecture-specific proofs must conform to, and the proofs that satisfy this interface.
As part of the DARPA-funded PROVERS program, we were able to apply this technique very aggressively indeed, clearing out 250k lines from the 420k+ of the abstract-to-design refinement proofs, a 43% reduction.
Proofcraft is already utilising the reduced proof base and improved splitting techniques in the verification of the MCS variant of seL4. Having recently completed the functional correctness proof on RISC-V, Proofcraft is now porting it to AArch64. Since MCS changes affect mostly architecture-agnostic code and proofs, we are able to proceed at significantly higher speeds.
This architecture-split work is instrumental in the long term maintainability and extensibility of seL4 proofs, significantly reducing the proof maintenance burden on code changes, accelerating the verification of new features, and most importantly reducing the reliance on experts for such maintenance.


