Source: https://web.stanford.edu/class/msande311/arrow-debreu.pdf