Source: https://www.cs.cmu.edu/~mrmiller/15-110/Handouts/conditionals-4.pdf