In mathematics, a supermodular function is a function on a lattice that, informally, has the property of being characterized by "increasing differences." Seen from the point of set functions, this can also be viewed as a relationship of "increasing returns", where adding more elements to a subset increases its valuation. In economics, supermodular functions are often used as a formal expression of complementarity in preferences among goods. Supermodular functions are studied and have applications in game theory, economics, lattice theory, combinatorial optimization, and machine learning.