 be synthesized,</li><li>name is the name of the function,</li><li>params is a list of identifiers of the parameters of the PMRS, i.e. all the arguments except the last argument that is decomposed in the recursion.</li><li>p_requires is a predicate from the input type of the PMRS (last arg of the function) to bool, corresponding to the predicate that the inputs must satsify.</li><li>p_ensures is a predicate on the output type. Every element in the image of the function must satsify this predicate.</li></ul>