EMNLPOct, 2023

为程序验证评级 LLM 生成的循环不变量

TL;DR利用大型语言模型合成归纳循环不变量是自动化程序验证的基础。本研究观察到,大型语言模型(如 gpt-3.5 或 gpt-4)能够在 0-shot 设置下为一类程序合成循环不变量,但需要多个样本来生成正确的不变量,这可能导致大量调用程序验证器以建立不变量。为解决这个问题,我们提出了一种对生成结果进行重新排名的方法,设计了一个能够根据问题定义区分正确的归纳不变量和错误尝试的排名器,该排名器被优化为对比排名器。实验结果表明,这种重新排名机制显著提高了正确不变量在生成的候选项中的排名,从而显著减少了对验证器的调用次数。