https://microkerneldude.org/2025/04/27/benchmarking-crimes-meet-formal-verification/ Skip to content Follow: RSS Twitter microkerneldude Random rants and pontifications by Gernot Heiser [cropped-panorama-s] * Home * About * academia * CSIRO * embedded systems * Formal methods * Open Kernel Labs * operating systems and virtualization * politics and society * safety and security * seL4 * Trustworthy Systems Tags microkernel, seL4, verification Benchmarking Crimes Meet Formal Verification 2025/04/27 No, this isn't about formally verifying benchmarking (BM) crimes. It's about the use of misleading statistics in papers that apply formal methods (FM) to verify (prove correct) operating systems (OS) code - something that has been bugging me for a while. Name Language Spec. Lang. Proof:Code seL4 C+Asm Isabelle 20:1 CertiKOS C+Asm Coq 15:1 SeKVM C+Asm Coq 7:1 Ironclad Dafny Dafny 5:1 XXX Rust Verus 10:1 YYY Rust Verus 7.5:1 Table 1: Language and (incomplete) proof-size statistics of a number of verified systems [Anonymous]. The Table 1 above shows a recent example from a peer-reviewed paper (it would be unfair to pillory the authors, given how widespread this flaw is, so I'm keeping it anonymous). It seems to show a significant improvement in verification efficiency since the original seL4 work, given that the lines of proof required to verify a certain amount of code have been reduced by factors of 3-4. Note that the systems in the upper half of the table use interactive (i.e. manual) theorem proving (ITP), while the second half uses automatic theorem proving (ATP) using SMT solvers. Given the automation one would naturally expect verification effort of the ATP systems to be significantly less than the ITP systems, and the table seems to roughly confirm this. So, what does "proof-to-code ratio" mean? Short answer: Very little. To understand why I say that, let's take as an example a function sort() that takes a list of integers and returns the list sorted by increasing value. Presumably, a "proof" of that function should confirm exactly that: it returns the original numbers sorted. But in order to have a meaningful proof, we need to have a more precise specification of the expected result. And such a specification will demand a number of properties of the return value; informally this could look something like: 1. The return value, R, is a list of integers. 2. The length, n, of the output list equals the length of the argument list, A. 3. The output list is sorted: 0> * Recent Posts + Benchmarking Crimes Meet Formal Verification + GoFetch: Will people ever learn? + ML accelerates the cyber arms race -- we need real security more than ever + TS in 2022: We're Back! + A Story of Betrayal: CSIRO's War On TS + Dishonest and Contradictory: Fact-Checking CSIRO's Communications about the Trustworthy Systems Group + Where is seL4 Heading? + seL4 Integrity Enforcement Proved for RISC-V + There's more to it, Dr Marshall! + "Trustworthy Systems Research is Done" - Are You Kidding, CSIRO? * Categories + academia + CSIRO + embedded systems + Formal methods + Open Kernel Labs + operating systems and virtualization + politics and society + safety and security + seL4 + Trustworthy Systems * Archives + April 2025 + April 2024 + November 2022 + March 2022 + February 2022 + November 2021 + September 2021 + August 2021 + July 2021 + May 2021 + November 2020 + June 2020 + April 2020 + March 2020 + December 2019 + November 2019 + August 2019 + March 2019 + August 2018 + February 2018 + June 2016 + April 2016 + April 2015 + February 2015 + December 2014 + November 2014 + October 2014 + September 2014 + August 2014 + July 2014 + May 2013 + April 2013 + March 2013 + October 2012 + September 2012 + June 2012 + February 2012 + January 2012 + September 2011 + November 2010 + October 2010 + August 2009 + July 2009 + April 2009 + March 2009 + February 2009 + July 2008 + April 2008 + March 2008 + February 2008 + January 2008 Blog at WordPress.com. * Comment * Reblog * Subscribe Subscribed + [9d9b25] microkerneldude Join 47 other subscribers [ ] Sign me up + Already have a WordPress.com account? Log in now. * + [9d9b25] microkerneldude + Subscribe Subscribed + Sign up + Log in + Copy shortlink + Report this content + View post in Reader + Manage subscriptions + Collapse this bar Loading Comments... Write a Comment... [ ] Email (Required) [ ] Name (Required) [ ] Website [ ] [Post Comment] %d [b]