Backend
SCRBench: Beyond Equivalence Checking for Semantic Change Reasoning in Code
arXiv cs.SE0 views
arXiv:2610.41562v1 Announce Type: new Abstract: Understanding how code changes affect program semantics is a core aspect of code reasoning in language models. It is commonly evaluated by asking whether two programs are semantically equivalent, but a yes/no answer does not reveal whether a model knows which code change caused a semantic difference, or which sequence of code changes produced the modified program. We study two tasks that ask these questions directly, diagnosing semantic change and reconstructing sequences of code changes, alongside detecting semantic equivalence. We build SCRBench, 67,658 Python program pairs generated by applying sequences of code changes that preserve or alter program semantics, and evaluate five language models on a stratified subset of 4,500 pairs. Detecting semantic equivalence exposes weaker models, whose accuracy declines as changes accumulate, but the strongest models remain near the ceiling. Diagnosing semantic change reveals weaknesses that equivalence accuracy hides: a model with 94.71% equivalence accuracy diagnoses only 54.44% of semantic changes. Reconstructing sequences of code changes is much harder: the best model reconstructs the exact sequence for only 39.27% of pairs, and no model exceeds 1.11% when five changes are applied. High equivalence accuracy therefore overestimates how well models reason about the semantic effects of code changes.
Source:https://arxiv.org/abs/2610.41562PreviousPost-SQLFix: Property-Guided Repair of LLM-Generated SQL with Runtime VerificationNextPrompt Less, Infer More: Static Analysis-Guided LLM Type Annotation for Python
Related posts
The Verdict Compiler: Pre-Registering a 90-Minute Spike
0dev.to
Reviewing an Agent PR That Adds Request Coalescing: The Colliding Cache Key, the Test That Lied, and the Meter That Double-Charged
0dev.to
Portability Before Spill: A Two-Path Conformance Harness for Local-First Agents
0dev.to
Social media uploads without an API: an uploader that drives the browser
0dev.to
Benchmark Budgets Are Part of the Grader: A Paired Cost and Latency Gate for AI C++ Patches
0dev.to
Split Your Docs by Claim Type, Not by Section Size: A Manifest That Decides What a Model May Draft
0dev.to