Data-driven Numerical Invariant Synthesis with Automatic Generation of Attributes
This work addresses a specific bottleneck in automated program verification for developers and researchers, presenting an incremental improvement over existing methods.
The authors tackled the problem of automatically generating relevant attributes for numerical invariant synthesis in program verification, proposing a data-driven algorithm that uses a separator based on convex sets to guide decision tree learning, and demonstrated its efficiency through implementation.
We propose a data-driven algorithm for numerical invariant synthesis and verification. The algorithm is based on the ICE-DT schema for learning decision trees from samples of positive and negative states and implications corresponding to program transitions. The main issue we address is the discovery of relevant attributes to be used in the learning process of numerical invariants. We define a method for solving this problem guided by the data sample. It is based on the construction of a separator that covers positive states and excludes negative ones, consistent with the implications. The separator is constructed using an abstract domain representation of convex sets. The generalization mechanism of the decision tree learning from the constraints of the separator allows the inference of general invariants, accurate enough for proving the targeted property. We implemented our algorithm and showed its efficiency.