Source: https://www.iro.umontreal.ca/~ferland/ift2505/contenu_cours/5_dualite.pdf