https://1library.net/document/yd8gwmlq-weakest-precondition-and-loops.html