Syntax-driven Incremental Program Verification of Matching Logic Properties

📅 2026-06-07
📈 Citations: 0
Influential: 0
📄 PDF
🤖 AI Summary
This work addresses the high computational cost of verifying program correctness during continuous software evolution by proposing a syntax-driven incremental verification approach. Built upon operator-precedence grammars and synthesized attribute semantics, the method enables localized re-verification of KernelC programs within a matching logic framework, analyzing only those semantic fragments affected by code changes while avoiding full re-verification. The implemented prototype demonstrates that this strategy significantly reduces verification overhead in most scenarios without compromising the precision or efficiency of formal verification.
📝 Abstract
Incrementality is a fundamental design principle to master the complexity of large, long-lived software systems. This principle has been embraced by agile development processes and it lays at the base of continuous software evolution. A major challenge in this context is to incrementally re-verify the correctness of software artifacts after every change, focusing the verification efforts only on the parts affected by the change. We present an approach to the incremental verification of programs written in KernelC, annotated with properties expressed in matching logic. The approach is based on a syntactic-semantic framework that enables analyzing code chunks in isolation so that, after a change to a program fragment, only the part whose semantics is affected by the change is re-processed. This property is obtained by expressing the language syntax through an operator precedence grammar and by formalizing its semantics through a synthesized attribute schema. We have implemented our technique in a prototype tool and experimentally evaluated its effectiveness. The results show that our approach does not penalize the efficiency of formal verification and can outperform program re-verification after changes, depending on the presence and type of annotations, as well as the position of the change and the program structure.
Problem

Research questions and friction points this paper is trying to address.

incremental verification
program verification
matching logic
software evolution
correctness
Innovation

Methods, ideas, or system contributions that make the work stand out.

incremental verification
matching logic
operator precedence grammar
synthesized attributes
syntax-driven analysis
🔎 Similar Papers
No similar papers found.