Program Design by Calculation