Evaluating LLM-Generated ACSL Annotations for Formal Verification
本文通过控制实验评估了五种系统(包括规则脚本、Frama-C 插件及三种大语言模型)在无需人工或学习辅助的情况下,为 506 个真实 C 程序自动生成并验证 ACSL 规范的能力与局限性。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
这篇论文就像是一场**“软件安全大考”,只不过考生不是人类程序员,而是各种人工智能(AI)和自动化工具**。
为了让你轻松理解,我们可以把写软件代码比作**“盖房子”,而把形式化规范(ACSL 标注)比作“建筑图纸和安全说明书”**。
1. 背景:为什么我们需要“安全说明书”?
在盖房子(写软件)时,如果只有一堆砖头(代码),没有详细的图纸和说明书,房子可能会塌,或者住进去的人(用户)会遇到危险。
- 形式化规范就是那种用数学语言写成的、绝对严谨的“安全说明书”。它能保证房子绝对不会塌,门绝对不会打不开。
- 问题在于:写这种说明书非常难,需要像数学家一样严谨,普通程序员很难坚持写,而且容易写错。
2. 这场“大考”考了什么?
这篇论文的研究团队(来自爱尔兰梅努斯大学)想看看:现在的 AI 和自动化工具,能不能自己写出这种完美的“安全说明书”,并且通过严格的数学考试(验证)?
他们找来了506 个真实的 C 语言程序(就像 506 栋已经盖好的房子),然后让 5 位“考生”来给这些房子写安全说明书:
- 规则派(Python 脚本):像是一个死板的机器人,严格按照既定规则写。
- 工具派(Frama-C RTE 插件):像是一个经验丰富的老工头,专门检查运行时错误。
- AI 三巨头:
- DeepSeek(中国的大模型)
- GPT-5(美国的超级大模型,注:论文中使用了虚构或未来的版本号,代表最新一代)
- OLMo3(开源的大模型)
3. 考试过程:谁在“阅卷”?
写好的说明书不能光看写得漂不漂亮,还得通过**“数学考官”**(SMT 求解器,如 Alt-Ergo, Z3, CVC4 等)的严格检查。
- 考官的任务:拿着说明书去验证房子是否真的安全。
- 评分标准:
- 通过率:能不能证明房子是安全的?
- 超时率:是不是因为说明书太模糊,导致考官算了一整天也算不出来(超时)?
- 稳定性:是不是这次算得快,下次就卡死?
4. 考试结果:谁赢了?
🏆 冠军:工具派(Frama-C RTE)
- 表现:几乎100% 通过,而且速度极快,考官从不超时。
- 比喻:就像老工头写的说明书,虽然可能不够“花哨”,但极其精准、保守、可靠。考官一看就懂,马上就能通过。
- 结论:如果你追求绝对的安全和稳定,现在的自动化工具依然是王者。
🥈 亚军:规则派(Python 脚本)
- 表现:通过率很高(70% 左右),非常稳定。
- 比喻:像是一个按部就班的实习生,虽然不如老工头经验丰富,但从不犯错,也不乱写。
🥉 季军:AI 三巨头(DeepSeek, GPT-5, OLMo3)
这里出现了有趣的分化:
DeepSeek(表现最好的 AI):
- 比喻:像是一个才华横溢但有点急躁的天才建筑师。
- 表现:它写的说明书很丰富,通过率很高(接近 95%),甚至能写出老工头没想到的细节。但是,因为它写得太“有创意”,有时候会让考官(求解器)感到困惑,导致计算时间变长,偶尔会超时。
- 评价:很有潜力,但需要稍微“冷静”一点。
GPT-5 和 OLMo3:
- 比喻:像是一个思维跳跃、喜欢用生僻词的艺术家。
- 表现:它们写的说明书太复杂、太模糊了。考官一看就晕,要么算不出来(超时),要么直接放弃。虽然它们能写出漂亮的文字,但在数学严谨性上不如前两者。
- 评价:目前还不太适合直接用于这种需要绝对严谨的领域,容易“翻车”。
5. 核心发现:一个“不可能三角”
这篇论文揭示了一个有趣的权衡(Trade-off):
- 越简单、越死板的说明书(工具派) -> 验证越快、越稳,但可能不够灵活。
- 越复杂、越有创意的说明书(AI 派) -> 表达能力越强,但验证起来越慢、越容易出错。
打个比方:
- 工具派写的是:“这扇门必须能推开,不能卡住。”(简单,考官秒懂,秒过)。
- AI 派写的是:“这扇门在量子力学层面应当保持一种既开又关的优雅状态,除非遇到特定的风……"(太复杂,考官算到头发白也没算出来)。
6. 总结:这对我们意味着什么?
- AI 还没完全取代专家:虽然 AI 很聪明,能写出很多代码,但在**“绝对安全”(如航空、医疗软件)的领域,目前还是自动化工具**更靠谱。
- AI 是强大的助手:像 DeepSeek 这样的模型已经非常接近工具的水平了。未来的方向可能是**“AI 起草 + 工具把关”,或者“工具生成骨架 + AI 填充细节”**。
- 不要盲目迷信 AI:如果你让 AI 直接去写安全代码的说明书,它可能会写出一些“看起来很美,但数学上无法证明”的东西,导致软件在关键时刻失效。
一句话总结:
这篇论文告诉我们,让 AI 写“安全说明书”很有希望,但目前它们还像个“才华横溢但有点毛躁的学生”,而自动化工具则是“稳如老狗”的优等生。 在追求软件安全的道路上,我们需要把 AI 的创造力交给“老工头”来审核,才能既快又稳。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。