Synthesizing Specifications

Oct 1, 2023·
Kanghee Park
Kanghee Park
,
Loris D'Antoni
,
Thomas Reps
· 1 min read
Abstract
This work studies synthesis of specifications for program behavior.
Type
Publication
Object-Oriented Programming, Systems, Languages & Applications 2023

This paper studies how to synthesize useful formal specifications from program code. Instead of requiring a developer to manually write every property, the framework takes a query about a set of function definitions and a domain-specific language for expressing candidate properties.

The synthesized results are best properties in the chosen language: each property is as precise as possible within the language, and the set is exhaustive with respect to the query. This makes the approach useful for extracting program facts that are both formal and tailored to the kind of property a user wants to see.

The work is implemented in Spyro and demonstrates applications including program-specification mining, abstract-domain operations, and algebraic properties of program modules. It appeared at OOPSLA 2023.