Constructive Analysis And Synthesis Of Programs by Marco Benini