In this task, you are given the abstract of a research paper. Your task is to generate a summary of this abstract. Your summary should not be very short, but it's better if it's not more than 30 words.

We introduce the notion of property signatures, a representation for programs and
program specifications meant for consumption by machine learning algorithms.
Given a function with input type _in and output type _out, a property is a function
of type: (_in, _out) Bool that (informally) describes some simple property
of the function under consideration. For instance, if _in and _out are both lists
of the same type, one property might ask 'is the input list the same length as the
output list?'. If we have a list of such properties, we can evaluate them all for our
function to get a list of outputs that we will call the property signature. Crucially,
we can 'guess' the property signature for a function given only a set of input/output
pairs meant to specify that function. We discuss several potential applications of
property signatures and show experimentally that they can be used to improve
over a baseline synthesizer so that it emits twice as many programs in less than
one-tenth of the time.
We represent a computer program using a set of simpler programs and use this representation to improve program synthesis techniques.