Approaches for producing correct computer programs and simplifying existing programs to enable their formal verification