功能上是否等效?代码等效的基于图形的差分代理模型执行
Functionally Equivalent or Not? Graph-Grounded Differential Surrogate Execution for Code Equivalence
摘要
确定两个程序在功能上是否等效是代码现代化、补丁验证、重构和代码生成评估的核心。然而,通常的信号是不完整的:测试仅涵盖有限的输入,文本相似性将实现与行为混淆,并且不受约束的LLM判断难以审核。当程序依赖于过时的、许可的、不可用的或不安全的环境时,直接执行通常是不可能的。我们引入了 FEAgent,一种选择性等价评估器智能体,它将类型化的程序图证据与差分代理模型执行相结合。 FEAgent 首先对齐公共接口和行为相关的图锚点,然后对调用流、控制流、数据流、类型、导入和效果关系发出有界查询。接下来,分支感知生成器智能体提出判别输入,并且两个盲LLM代理模型独立预测源和目标可观察量。每项主张和预测的分歧都记录在证据分类账中。然后,确定性协调器会返回 EQUIVALENT、INEQUIVALENT 或 UNCLEAR,而不是在路径未发现或证据冲突时强制做出裁决。我们在功能级等效性和存储库级错误补丁上评估 FEAgent,其中现有的预言机是基准标签或通过的测试套件。与该预言的每一个分歧都通过直接执行来裁决,揭示基准标签中的错误以及仅单元测试评分所遗漏的行为差异。在 EquiBench 上,执行结果证实了 FEAgent 与 1,200 个评估对中的 216 对 (18.0%) 中已发布标签的分歧;在 SWE-bench 验证中,331 个通过测试的智能体补丁中有 94 个 (28.4%) 与参考补丁不同。因此,FEAgent 充当测试和正式验证之间的审核层,保持其证据的可审查性和不确定性的明确性,而无需声明等效性证明。