We present a case study on proof-driven software understanding of mature, security-critical infrastructure. While formal methods are traditionally applied during the design phase, we present our experience applying formal reasoning onto a mature industrial C++ codebase. We focus on a formal analysis of the core algorithm that implements the Stellar blockchain's SDEX order book. By combining large language models (LLMs), Prototype Verification System (PVS), and SeaHorn, we are able to prove core properties of the production codebase. Our approach also identified an inconsistency in documentation related to the reachability of an exception location. Most importantly, however, we produce artifacts that make it easy for code changes to be checked against established invariants. This work demonstrates how the strategic combination of theorem proving and model checking provides a path for delivering robust assurance to legacy systems.
Joseph Tafese, Karthik Nukala, Hassen Saïdi et al.· International Conference on...· 0 citations
SIRNA significantly reduces the number of false positives and false negatives while offering explainability for its findings, and is generalizable to domains where business logic exists in both natural language documentation and programmatic implementation.
Joseph Tafese, Milad Hooshyar, Sam Bayless et al.· 0 citations