Market-clearing prices exist in the linear 0/1 market
ProvedAGT.market_clearing_existenceMarket-clearing prices exist in the linear market with 0/1 utilities. The market (§1.8.1 of Algorithmic Game Theory): a finite set of divisible goods, good available in units; a finite set of buyers, buyer bringing budget and interested in a nonempty set of goods; every good interests at least one buyer; a buyer values any goods from her interest set equally and everything else not at all. Then there are prices and spending amounts (money spent by buyer on good ) such that
- only when and — each buyer spends only on cheapest goods in her interest set, an optimal bundle for 0/1 utilities;
- for every buyer — budgets are exactly exhausted;
- for every good — every good sells out exactly.
This is the existence content of Theorem 1.17 of the book.
A note on the rendering. The book's Theorem 1.17 asserts that the ascending tight-set algorithm of §1.8.1 (via Lemmas 1.15–1.16 and max-flow) computes such prices in polynomial time; the running-time half is a statement about an algorithm and has no formal counterpart here, so this milestone is the existence content. Allocations are recorded as money spent rather than quantity, so the clearing condition is a product, not a quotient — no division by prices occurs anywhere in the statement.
import Mathlib.Data.Real.Basic import Mathlib.Data.Fintype.BigOperators
namespace AGT
/-- **Theorem 1.17 of *Algorithmic Game Theory* (existence form)**. The
market of §1.8.1: finitely many divisible goods `A`, good `a` available in
`supply a` units; finitely many buyers `B`, buyer `j` bringing `money j` and
interested in the goods `interest j`. Utilities are linear 0/1: a buyer
only values (any amount of) the goods she is interested in.
Conclusion: market-clearing prices and an allocation exist. `spend j a` is
the money buyer `j` spends on good `a`; each buyer spends her entire budget,
spends it only on interested goods of minimum price among her interest set
(an optimal bundle for 0/1 utilities), and every good sells out exactly —
total spending on `a` equals `price a * supply a`.
The book proves this by the iterated tight-set/max-flow algorithm
(Lemmas 1.15–1.16) and additionally shows polynomial running time; the
algorithmic half has no formal counterpart here. Hypotheses: every buyer is
interested in at least one good and every good interests at least one buyer,
exactly the standing assumptions of §1.8.1; positive supplies and budgets
rule out degenerate zero prices. -/
theorem market_clearing_existence {A B : Type*} [Fintype A] [Fintype B]
(supply : A → ℕ) (hsupply : ∀ a, 0 < supply a)
(money : B → ℝ) (hmoney : ∀ j, 0 < money j)
(interest : B → Finset A) (hbuyer : ∀ j, (interest j).Nonempty)
(hgood : ∀ a : A, ∃ j : B, a ∈ interest j) :
∃ (price : A → ℝ) (spend : B → A → ℝ),
(∀ a, 0 < price a) ∧
(∀ j a, 0 ≤ spend j a) ∧
(∀ j a, spend j a ≠ 0 →
a ∈ interest j ∧ ∀ b ∈ interest j, price a ≤ price b) ∧
(∀ j, ∑ a, spend j a = money j) ∧
(∀ a, ∑ j, spend j a = price a * (supply a : ℝ)) := by
sorry
end AGTRead-back
What the Lean code literally says, in plain math · claude-fable-5
Read-back: AGT.market_clearing_existence
Let and be arbitrary finite types (of "goods" and "buyers", say, though the statement itself only calls them and ). Neither is assumed nonempty by a typeclass; nonemptiness is constrained only indirectly by the hypotheses below.
The theorem takes as given:
- a function with for every (supplies are natural numbers, so in particular );
- a function with for every ;
- a function assigning to each a finite subset , with two hypotheses:
- for every , the set is nonempty;
- for every , there exists some with .
It asserts the existence (not uniqueness) of a pair of functions and satisfying the conjunction of the following five conditions:
- Positive prices. For every :
- Nonnegative spending, on all pairs. For every and every — not only pairs with :
- Nonzero spending only on cheapest interesting goods. For every and every : if , then both
Here the inner quantifier ranges over the goods in buyer 's own interest set only; the condition says has weakly minimal price within , with a non-strict inequality . This is a one-directional implication: nothing forces a buyer to spend anything on a cheapest interesting good, and nothing is claimed for pairs with . By contraposition it does force whenever .
- Budgets exactly exhausted. For every , summing over all goods (the whole type, not just ):
an exact equality — each buyer spends their entire money.
- Exact market clearing. For every , summing over all buyers :
an exact equality, where is the natural number cast into .
Degenerate cases the hypotheses allow. The hypotheses jointly force to be empty if and only if is empty: if is empty then each would be an empty subset, contradicting its required nonemptiness unless is also empty; if is empty then no good can lie in any buyer's interest set, so must be empty. When both and are empty, every hypothesis and every one of the five conditions holds vacuously (the sums in conditions 4 and 5 are over empty index sets), and the theorem's conclusion is trivially witnessed by the empty functions. When both are nonempty, condition 4 with forces each buyer to have some with , but no condition bounds how many buyers may spend on the same good or requires any good's supply to be "sold" to a particular buyer — allocation of goods is not mentioned at all; only real-valued spending and prices appear.
The declaration's proof is sorry (left unproved); this read-back describes the statement only.
Confirmed by the mission captain (proposal self-audit).