Solvable Tuple Patterns and Their Applications to Program Verification
By: Naoki Kobayashi , Ryosuke Sato , Ayumi Shinohara and more
Potential Business Impact:
Helps computers check code for mistakes automatically.
Despite the recent progress of automated program verification techniques, fully automated verification of programs manipulating recursive data structures remains a challenge. We introduce the notion of solvable tuple patterns (STPs) to express invariants between list-like recursive data structures. A distinguishing feature of STPs is that they can be efficiently inferred from only a small number of positive samples; no negative samples are required. An SMT solver that supports the sequence theory can be used to check that an inferred STP is indeed an inductive invariant. After presenting basic properties of STPs and an STP inference algorithm, we show how to incorporate the STP inference into a CHC (Constrained Horn Clauses) solver supporting list-like data structures, which serves as a uniform backend for automated program verification tools. A CHC solver incorporating the STP inference has won the ADT-LIN category of CHC-COMP 2025 by a big margin.
Similar Papers
Refinement-Types Driven Development: A study
Programming Languages
Makes computer programs safer and easier to write.
Decision Procedure for A Theory of String Sequences
Programming Languages
Helps computers understand and check text programs.
Decision Procedure for A Theory of String Sequences
Programming Languages
Helps computers understand and check text programs.