Source: https://perso.eleves.ens-rennes.fr/people/julie.parreaux/fichiers_agreg/info_dev/LogiqueHoare.pdf