ConVer Takes the Challenge: A New Approach to C Program Verification
ConVer, a compositional verification tool, leverages AI to tackle state-space explosion in C programs. With promising results, it challenges traditional verification methods.
Formal verification of large C programs has long been a complex challenge, primarily due to the issue of state-space explosion. Existing Bounded Model Checking (BMC) tools can get bogged down, needing to unroll all nested constructs to encode the entire state space. Enter ConVer, an innovative compositional verification tool poised to change the game.
what's ConVer?
ConVer represents a fresh approach to verification by employing a top-down strategy. It begins with a top-level assertion in the C program and works its way down. Using a large language model (LLM), ConVer synthesizes function contracts derived from the system property. It then alternates between system-level and function-level checks within a CEGAR-CEGIS loop. When a check fails, ConVer refines these contracts through SMART ICE learning.
Benchmark Performance
ConVer's performance on various benchmark suites is worth noting. On the Frama-C benchmark, which consists of 45 simple C programs, ConVer achieved a verification success rate of 82-96% across three LLM backends. Impressively, 93-95% of converged programs required only a single CEGAR-CEGIS iteration. This kind of efficiency is rare in verification tools.
When tested on the X.509 parser benchmark and the LF2C-Simple suite, ConVer attained 33-50% and 82-88% success rates, respectively. Even on the challenging VerifyThis suite, which includes 11 recursive and loop-intensive programs, the Pre-Abstraction strategy managed a 55-64% success rate. These figures aren't just numbers. They signal a potential shift in how we approach verification.
Preprocessing with ESBMC-LF
ConVer introduces ESBMC-LF, a preprocessing tool that converts LF models to C while maintaining the properties of the original files. This allows ConVer to verify them effectively. The LF Verifier Benchmarks, transpiled using ESBMC-LF to C and denoted as LF-Hard, saw a 67% verification success rate with ConVer.
Why It Matters
So, why should developers and engineers care about ConVer? The answer lies in its potential to speed up verification processes. If ConVer can deliver consistent results across diverse and complex scenarios, it could become a key tool in the verification toolkit. But let's not get ahead of ourselves. Show me the inference costs. Then we'll talk about full-scale adoption.
Is ConVer the silver bullet for formal verification challenges? Not quite. But it's a significant step forward. The intersection of AI and software verification is real. Ninety percent of the projects aren't. ConVer just might be part of that impactful ten percent.
Get AI news in your inbox
Daily digest of what matters in AI.
Key Terms Explained
A standardized test used to measure and compare AI model performance.
Running a trained model to make predictions on new data.
An AI model that understands and generates human language.
An AI model with billions of parameters trained on massive text datasets.