first version of the prog by contract