Preguss: It Analyzes, It Specifies, It Verifies
summary
Preguss decomposes large verification tasks into small VUnits that contain only a guard assertion and minimal context, uses static analysis (RTE alarms) to prioritize units, and invokes an LLM to synthesize interprocedural specifications (pre/postconditions and loop invariants). Evaluated on a real-world X.509 parser (~1,000+ LOC, ~20 functions), developers wrote 251 specs, Preguss auto-generates 108, humans adjust 39, cutting manual effort by 84.5%, verifies most assertions in under three hours and for under $4.
AI-written summary · about
chapters (11)
- 0:00Preguss framework intro
- 1:08Static analysis vs theorem proving
- 3:17Specifications in verification
- 5:01LLM spec synthesis challenges
- 6:25Interprocedural specs explained
- 9:20Automated verification challenges
- 10:03Preguss divide and conquer
- 11:49X509 parser evaluation
- 12:32Preguss results and efficiency
- 12:53Conclusion and future work
- 13:15Q&A
related talks
28mGradual Verification: Assuring Software Incrementally
17mCode-Specify-Test-Debug-Prove: Flexibly Integrating Separation Logic Specification into(…)
01h 01mDiscussion
23mBeyond Tests: What to Verify in AI-Generated Code
23mSpecifying and Verifying Future Conditions
15mGradual Verification of Recursive Heap Data Structures
23mAutomatically Detecting Error Handling Bugs Using Error Specifications
59mUnder-approximation for Scalable Bug Detection
