EconCSLib.Math.Minimax.MinimaxLoomis #
LRS-style "simplified Loomis" proof of the finite minimax theorem.
This file ports the layered scaffolding from
math-xmum/gametheory's
GameTheory/Zerosum.lean. It is specialised to ā because the strategy
spaces use compactness + continuity for the existence of optimisers ā the
ordered-field generalisation (any linearly ordered field) is
Minimax.minimax, proved separately by von Neumann symmetrisation.
This file provides the foundational layer for the simplified-Loomis
(von Neumann) minimax theorem: the mixed-strategy aggregates
lam.aux / mu.aux, the scalar values lam0 / mu0, existence of
optimisers via compactness, weak duality lam0 ⤠mu0, and the
column/row dropping infrastructure (extendDropColumn / extendDropRow)
reused by the general development.
The scalar equality lam0 A = mu0 A is not re-proved here by a
standalone induction. It is the B = š specialisation of the general
(positive-B) Loomis theorem, exported as
Loomis.minmax_from_general. (Earlier revisions carried an inlined
copy of that induction, minmax'; it was removed as redundant once the
general proof subsumed it.)
Attribution #
Ported from GameTheory/Zerosum.lean in
math-xmum/gametheory.
Expected payoff in mixed strategies #
Expected payoff of a matrix game A : I ā J ā ā under mixed strategies
x : stdSimplex ā I and y : stdSimplex ā J.
Equations
- MinimaxLoomis.E A x y = wsum x fun (i : I) => wsum y (A i)
Instances For
Player I's guaranteed payoff from mixed strategy x: the minimum over
pure columns of the expected payoff.
Equations
- MinimaxLoomis.lam.aux A x = Finset.univ.inf' ⯠fun (j : J) => wsum x fun (i : I) => A i j
Instances For
There exists a mixed strategy xx whose column-payoffs all dominate
lam0 A. Compactness + continuity gives a maximiser of lam.aux; that
maximiser realises the supremum and beats every pure-column expectation.
Player II's maximum loss against mixed strategy y: the maximum over
pure rows of the expected payoff.
Equations
- MinimaxLoomis.mu.aux A y = Finset.univ.sup' ⯠fun (i : I) => wsum y fun (j : J) => A i j
Instances For
There exists a mixed strategy yy whose row-payoffs are all dominated by
mu0 A.
Singleton reduction for |I| = |J| = 1 #
singleton_of_card_one is the shared helper feeding the base case of the
general Loomis induction in Loomis.
When the row index type has cardinality 1, every simplex point is the
unique pure strategy and Finset.univ is a singleton.
Restricting a matrix game by dropping a column / row #
Extend a mixed strategy on J' = {j // j ā jā} to a mixed strategy on J
by putting zero mass on jā.
Equations
Instances For
Dual: extend a mixed strategy on I' = {i // i ā iā} to one on I.
Equations
- MinimaxLoomis.extendDropRow iā x' = MinimaxLoomis.extendDropColumn iā x'