Evident: LLMs assist but don't reason in program analysis
New system Evident separates LLM help from formal reasoning, cuts false alarms by 76%.
A new paper from Haonan Li, Tianyang Zhou, Manu Sridharan, Hang Zhang, and Zhiyun Qian (UC Riverside and collaborators) argues that LLMs should not directly reason about program behavior for bug analysis. While LLMs are increasingly used to judge whether a potential bug is triggerable, the authors warn that plausible explanations are insufficient for dismissing warnings, especially for 'no-bug' decisions. They propose Evident, a system that restricts the LLM to constructing a warning-specific analysis harness — essentially a scenario for formal checking — while the actual reasoning about reachability and execution context is handled by a backend formal analysis tool.
Evident was evaluated on 200 real warnings from two static detectors for Android kernel drivers. It correctly classified 151 cases (76%), discharging 111 false alarms without letting a single confirmed bug slip through. Notably, Evident also rediscovered a confirmed vulnerability that had been missed by both prior LLM-based filtering and manual triage. The remaining cases were either unresolved or conservatively retained as potential bugs. This hybrid approach demonstrates that separating LLM assistance from formal reasoning can yield high precision while maintaining safety — a crucial advance for deploying AI in critical software analysis.
- Evident uses LLMs only to build analysis harnesses, not to reason about program behavior.
- On 200 Android kernel driver warnings, Evident correctly classified 151 (76%) and discharged 111 false alarms without dismissing any real bug.
- Evident rediscovered a confirmed vulnerability that previous LLM-only methods and manual triage had missed.
Why It Matters
Combining LLM assistance with formal analysis boosts bug triage accuracy without the risk of dismissing real vulnerabilities.