EconCSLib.Math.FixedPoint.Brouwer_product #
Brouwer's fixed-point theorem for products of standard simplices, proved by retraction onto a single standard simplex.
Setup #
Let I be a finite linearly ordered type and card : I → ℕ+. Define:
ProductSimplices card— the productΠᵢ stdSimplex ℝ (Fin (card i))of standard simplices.BigSimplex card— the single standard simplexstdSimplex ℝ (Fin (total_card card))wheretotal_card card = ∑ i, card i.
The idea is that BigSimplex naturally embeds ProductSimplices as a retract.
Key constructions #
embed_from_product— embeds a product point into the big simplex by concatenating the blocks; thei-th block occupies coordinates[prefix_sum i, prefix_sum i + card i).project_to_product— projects a big-simplex point back to the product; thei-th component is the renormalised restriction to blocki(usingtPushto handle the degenerate case where a block sum is zero).project_embed_id—project_to_product ∘ embed_from_product = id.
Main result #
Brouwer_Product— every continuous self-map ofProductSimplices cardhas a fixed point.
Proof strategy #
Given f : ProductSimplices card → ProductSimplices card, define the lifted map
f_lifted = embed_from_product ∘ f ∘ project_to_product on BigSimplex card. Since
project_embed_id holds, a fixed point of f_lifted on the big simplex projects to a
fixed point of f on the product. Continuity of the lifted map follows from continuity
of the embed/project maps. Apply Brouwer to f_lifted.
References #
- Brouwer, L. E. J., "Über Abbildung von Mannigfaltigkeiten", Math. Ann. 71 (1912).
The big simplex on total_card card coordinates.
Equations
- BigSimplex card = stdSimplex ℝ (Fin ↑(total_card card))
Instances For
The product of simplices indexed by I.
Equations
- ProductSimplices card = ((i : I) → ↑(stdSimplex ℝ (Fin ↑(card i))))
Instances For
Cumulative sum of card over indices strictly less than i.
Equations
- prefix_sum card i = ∑ j : I with j < i, ↑(card j)
Instances For
A flat index k belongs to a unique block i with an in-block index j.
Split a flat index k into its block/index pair (i, j).
Equations
- index_split card k = Classical.choose ⋯
Instances For
Specification of index_split: bounds and value relation for (i, j).
Combine a block/index pair (i, j) back into a flat index.
Equations
- index_combine card p = ⟨prefix_sum card p.fst + ↑p.snd, ⋯⟩
Instances For
index_split is a left inverse to index_combine.
index_combine is a left inverse to index_split.
Weight (size fraction) of block i: (card i) / (total_card card).
Equations
- blockWeight card i = ↑↑(card i) / ↑↑(total_card card)
Instances For
Sum of coordinates of x over the block i.
Instances For
The uniform point in each block simplex.
Instances For
The uniform point in the big simplex.
Equations
- z_uniform card = ⟨fun (x : Fin ↑(total_card card)) => 1 / ↑↑(total_card card), ⋯⟩
Instances For
Total positive shortfall of block sums relative to block weights.
Instances For
Convex push of x toward z_uniform by amount tPush.
Equations
Instances For
Retraction from the big simplex to the product of simplices.
Equations
- project_to_product card x i = ⟨fun (j : Fin ↑(card i)) => ↑(pushTowardsZ card x) (index_combine card ⟨i, j⟩) / blockSum card i (pushTowardsZ card x), ⋯⟩
Instances For
Embedding of the product of simplices into the big simplex.
Equations
- embed_from_product card y = ⟨fun (k : Fin ↑(total_card card)) => have p := index_split card k; ↑(y p.fst) p.snd * ↑↑(card p.fst) / ↑↑(total_card card), ⋯⟩
Instances For
The block sum after pushing towards z_uniform follows a linear formula.
The block sum after pushing towards z_uniform is always positive.
Continuity of pushTowardsZ card.
Continuity of project_to_product.
Continuity of embed_from_product.
Brouwer fixed point theorem for a product of simplices, via a retraction.