Source: https://pages.mtu.edu/~shene/COURSES/cs3621/SLIDES/Simplification.pdf