Faithfulness and clarification gates for generated formal specifications
使用 LLM 起草 ACSL 或 STL 的团队,应在接受前设置一道门,检查输出是否保留了目标程序、断言和用户意图。对于 ACSL,LiveFMBench 显示,如果不筛掉那些改动了程序 AST 或原始断言表达式的输出,朴素的证明器通过率会把直接提示的准确率高估约 20%。同一基准还发现,循环不变式是最常见的失败类型,这让审阅者有了明确的人工复核重点。
对于 CPS 需求,ClarifySTL 给出了一种流程:先检测模糊的时间边界、阈值、条件逻辑和不清楚的引用,再提出针对性问题,重写需求,最后生成 STL。低成本的实现方式是在规格生成器前加一道小门:凡是会改动被检查程序或断言的 ACSL 候选都拒绝,STL 生成则要等缺失的数值和时间细节补齐后再继续。需求团队还可以为产品线约束加一个确定性的结构验证器,在需求 ID 和父子选择已经存在时,按 OOMRAM 代理里的 Python 验证器模式来做。