Synthesizing Specifications

01/26/2023
by   Kanghee Park, et al.
0

Every program should always be accompanied by a specification that describes important aspects of the code's behavior, but writing good specifications is often harder that writing the code itself. This paper addresses the problem of synthesizing specifications automatically. Our method takes as input (i) a set of function definitions, and (ii) a domain-specific language L in which the extracted properties are to be expressed. It outputs a set of properties–expressed in L–that describe the behavior of functions. Each of the produced property is a best L-property for signature: there is no other L-property for signature that is strictly more precise. Furthermore, the set is exhaustive: no more L-properties can be added to it to make the conjunction more precise. We implemented our method in a tool, spyro. When given the reference implementation for a variety of SyGuS and Synquid synthesis benchmarks, spyro often synthesized properties that that matched the original specification provided in the synthesis benchmark.

READ FULL TEXT
research
12/29/2020

Synthesizing Approximate Implementations for Unrealizable Specifications

The unrealizability of a specification is often due to the assumption th...
research
05/02/2021

Synthesizing Abstract Transformers

This paper addresses the problem of creating abstract transformers autom...
research
08/08/2023

Adapting Foundation Models for Information Synthesis of Wireless Communication Specifications

Existing approaches to understanding, developing and researching modern ...
research
04/15/2022

Towards Porting Operating Systems with Program Synthesis

The end of Moore's Law has ushered in a diversity of hardware not seen i...
research
09/23/2020

Symbolic Execution + Model Counting + Entropy Maximization = Automatic Search Synthesis

We present a method of automatically synthesizing steps to solve search ...
research
05/20/2019

Efficient Synthesis with Probabilistic Constraints

We consider the problem of synthesizing a program given a probabilistic ...
research
10/30/2020

Using Relational Problems to Teach Property-Based Testing

Context: The success of QuickCheck has led to the development of propert...

Please sign up or login with your details

Forgot password? Click here to reset