Synthesizing, correcting and improving code, using model checking-based genetic programming
An axiomatic basis for computer programming