The Correctness-by-Construction Approach to Programming by Derrick G. Kourie & Bruce W. Watson