π€ AI Summary
This work addresses the safety verification of procedural programs featuring global variables, arrays, function calls, and arbitrary data types. The proposed method automates verification without requiring an explicit specification language. It compiles programs into Logic Constraint Term Rewriting Systems (LCTRSs) andβnoveltyβthe first adaptation of rewriting induction to this framework. A lightweight equation generalization strategy is introduced to jointly verify memory safety and functional correctness. Built upon extended integer Term Rewriting Systems (TRSs) and LCTRS modeling, the approach enables end-to-end automated verification of integer arithmetic and array operations in realistic programs. Experimental evaluation demonstrates that the method significantly improves automation and practicality for procedural program verification, all without reliance on external specification languages.
π Abstract
This paper aims at developing a verification method for procedural programs via a transformation into the recently introduced Logically Constrained Term Rewriting Systems (LCTRSs). To this end, we introduce an extension of transformation methods based on integer TRSs, which can also handle global variables and arrays, and encode safety checks. Then we adapt existing rewriting induction methods to LCTRSs and propose a simple yet effective method to generalize equations. We show that we can automatically verify memory safety and prove correctness of realistic functions, involving for instance integers and arrays.