Yi Zhou Towards Scalable Automated Program Verification for System Software Degree Type: CS Advisor(s): Bryan Parno Graduated: May 2025 Abstract: Automated Program Verification (APV) provides formal guarantees aboutsoftware while promising strong automation in the verification process. APV hasalready seen preliminary successes in system software (e.g., file systems, networkprotocols), extending beyond academic prototypes to industrial applications.However, the scalability of APV becomes an issue as we move towards morecomplex systems, where automation failures start to show up. Such failuresoften require tedious manual fixes, breaking the pledge of automation in APV.Worse yet, since program verification is fundamentally undecidable, automationfailures are inherently inevitable.Nevertheless, that does not mean APV is hopeless beyond small-scale systems.In this thesis, we organize the discussion around the development stages of APV:(1) creating proofs, (2) reusing proofs, (3) debugging proofs, and (4) stabilizingproofs. We argue that, despite the undecidable nature of program verificationin theory, we can overcome the scalability challenges that arise in practice, dueto the recurrent patterns in APV programming and reasoning.Specifically, we make empirical observations on the common motifs in APV,and then design formal methods to leverage them for automation. Using largescaleverified systems as case studies, we show this combination of formal andempirical methods leads to practical improvements in APV for system software. Thesis Committee: Bryan Parno (Chair) Marijn Heule Ruben Martins Jon Howell (University of Washington) Srinivasan Seshan, Head, Computer Science Department Martial Hebert, Dean, School of Computer Science Keywords: Program Verification, System Software, First-Order Logic, Satisfiability Modulo Theories CMU-CS-25-101.pdf (4 MB) ( 171 pages) Copyright Notice