🤖 AI Summary
This work addresses the automated verification of procedural programs with parametric-sized integer arrays—a challenging problem in program analysis. We propose a novel data-driven approach based on constraint Horn clause solving. Our method extends the Horn-ICE framework to integer array domains for the first time, introducing a dimensionality-reduction classification learning mechanism that maps vector-valued array states to vector-valued integer states. It further enables automatic generalization from sample-based classifiers to universally quantified loop invariants and procedure contracts. Integrating decision-tree learning, array abstraction, and inductive reasoning, our technique achieves high-precision, scalable, fully automated verification of programs featuring complex array operations. Experimental evaluation on standard benchmarks demonstrates significant improvements in both verification accuracy and efficiency over state-of-the-art tools.
📝 Abstract
We address the problem of verifying automatically procedural programs manipulating parametric-size arrays of integers, encoded as a constrained Horn clauses solving problem. We propose a new algorithmic method for synthesizing loop invariants and procedure pre/post-conditions represented as universally quantified first-order formulas constraining the array elements and program variables. We adopt a data-driven approach that extends the decision tree Horn-ICE framework to handle arrays. We provide a powerful learning technique based on reducing a complex classification problem of vectors of integer arrays to a simpler classification problem of vectors of integers. The obtained classifier is generalized to get universally quantified invariants and procedure pre/post-conditions. We have implemented our method and shown its efficiency and competitiveness w.r.t. state-of-the-art tools on a significant benchmark.