Source: https://homepages.dcc.ufmg.br/~camarao/lp/concepts.pdf