Source: https://www.iro.umontreal.ca/~nie/IFT3335/logique.pdf