Source: https://www.cs.upc.edu/~erodri/webpage/cps/theory/lp/basics/slides.pdf