Increasing The Practicality Of Verification Using Incomplete Solutions
dc.contributor.author | Goldweber, Eli | |
dc.date.accessioned | 2025-05-12T17:43:19Z | |
dc.date.available | 2025-05-12T17:43:19Z | |
dc.date.issued | 2025 | |
dc.date.submitted | 2025 | |
dc.identifier.uri | https://hdl.handle.net/2027.42/197340 | |
dc.description.abstract | Building correct software systems is challenging. To ensure correctness, developers have increasingly turned to formal verification to help achieve this goal. Verification provides strong assurances of correctness by construction. Developers write proof annotations to show that their implementation adheres to desired properties captured in a formal specification. Checking if the implementation meets the specification is automated by encoding the proof, specification, and implementation as a satisfiability query and is checked by a Satisfiability Modulo Theories (SMT) solver. However, two fundamental challenges limit the guarantees and the ease of verifying programs with automated theorem provers: the inability to prove the correctness of a specification and the incompleteness of underlying SMT solvers. These shortcomings inevitably require manual effort and expertise to overcome, deterring the broader adoption of automated verification. This dissertation demonstrates how lightweight techniques can assist developers in overcoming the fundamental limitations of verifying programs with automated theorem provers. First, it explores how classic testing practices can be adapted to test formal specifications. Accordingly, this dissertation presents IronSpec, a specification testing framework that integrates automatic and manual testing techniques to enhance the reliability of formal specifications. Next, this dissertation examines the debugging challenges of failing proofs. Even with a correct specification, a proof may fail for different reasons; unfortunately, underlying SMT solvers do not differentiate between them. To help resolve these debugging dilemmas, this dissertation introduces the Finitized Proof Projection technique and a proof assistant, ProofLens. ProofLens embodies this technique, helping to identify hints about why a proof failed by creating and verifying a finite approximation of the original program. Finally, as an application of formal verification and in the greater pursuit of building robust systems, this dissertation proves that the original criteria for learning values in the Paxos protocol is stronger than necessary. While verification helps ensure program correctness, it cannot guard against hardware failures. Paxos is a standard building block in state machine replication, a practice commonly used to build robust systems in the presence of hardware failures. This dissertation proves how the discrete numbering of ballots in Paxos enables a safe relaxation of the criteria for learning values. | |
dc.language.iso | en_US | |
dc.subject | Formal Verification | |
dc.subject | Automated Theorem Proving | |
dc.subject | Distributed Systems | |
dc.subject | Specification Testing | |
dc.title | Increasing The Practicality Of Verification Using Incomplete Solutions | |
dc.type | Thesis | |
dc.description.thesisdegreename | PhD | |
dc.description.thesisdegreediscipline | Computer Science & Engineering | |
dc.description.thesisdegreegrantor | University of Michigan, Horace H. Rackham School of Graduate Studies | |
dc.contributor.committeemember | Kapritsos, Manos | |
dc.contributor.committeemember | Jeannin, Jean-Baptiste | |
dc.contributor.committeemember | Wang, Xinyu | |
dc.contributor.committeemember | Weimer, Westley R | |
dc.subject.hlbsecondlevel | Computer Science | |
dc.subject.hlbtoplevel | Engineering | |
dc.contributor.affiliationumcampus | Ann Arbor | |
dc.description.bitstreamurl | http://deepblue.lib.umich.edu/bitstream/2027.42/197340/1/edgoldwe_1.pdf | |
dc.identifier.doi | https://dx.doi.org/10.7302/25766 | |
dc.identifier.orcid | 0009-0006-1121-0689 | |
dc.identifier.name-orcid | Goldweber, Eli; 0009-0006-1121-0689 | en_US |
dc.working.doi | 10.7302/25766 | en |
dc.owningcollname | Dissertations and Theses (Ph.D. and Master's) |
Files in this item
Remediation of Harmful Language
The University of Michigan Library aims to describe its collections in a way that respects the people and communities who create, use, and are represented in them. We encourage you to Contact Us anonymously if you encounter harmful or problematic language in catalog records or finding aids. More information about our policies and practices is available at Remediation of Harmful Language.
Accessibility
If you are unable to use this file in its current format, please select the Contact Us link and we can modify it to make it more accessible to you.