Score: 1

Solvable Tuple Patterns and Their Applications to Program Verification

Published: August 28, 2025 | arXiv ID: 2508.20365v1

By: Naoki Kobayashi , Ryosuke Sato , Ayumi Shinohara and more

Potential Business Impact:

Helps computers check code for mistakes automatically.

Business Areas:
Natural Language Processing Artificial Intelligence, Data and Analytics, Software

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.

Repos / Data Links

Page Count
38 pages

Category
Computer Science:
Programming Languages