Documentation

QuantumInfo.ForMathlib.SionMinimax

@[simp]
theorem Set.image2_flip {α : Type u_1} {β : Type u_2} {γ : Type u_3} {f : αβγ} (s : Set α) (t : Set β) :
image2 (flip f) t s = image2 f s t
theorem ciSup_ciInf_le_ciInf_ciSup {ι : Type u_1} {α : Type u_2} [ConditionallyCompleteLattice α] {ι' : Type u_3} [Nonempty ι] (f : ιι'α) (Ha : ∀ (j : ι'), BddAbove (Set.range fun (x : ι) => f x j)) (Hb : ∀ (i : ι), BddBelow (Set.range (f i))) :
⨆ (i : ι), ⨅ (j : ι'), f i j ⨅ (j : ι'), ⨆ (i : ι), f i j

The max-min theorem. A version of iSup_iInf_le_iInf_iSup for conditionally complete lattices.

theorem BddAbove.range_max {ι : Type u_1} {α : Type u_2} [ConditionallyCompleteLattice α] {f g : ια} (hf : BddAbove (Set.range f)) (hg : BddAbove (Set.range g)) :
BddAbove (Set.range (fg))
theorem BddBelow.range_min {ι : Type u_1} {α : Type u_2} [ConditionallyCompleteLattice α] {f g : ια} (hf : BddBelow (Set.range f)) (hg : BddBelow (Set.range g)) :
BddBelow (Set.range (fg))
theorem ciInf_eq_min_cInf_inter_diff {ι : Type u_1} {α : Type u_2} [ConditionallyCompleteLattice α] {f : ια} (S T : Set ι) [Nonempty ↑(S T)] [Nonempty ↑(S \ T)] (hf : BddBelow (f '' S)) :
⨅ (i : S), f i = (⨅ (i : ↑(S T)), f i)⨅ (i : ↑(S \ T)), f i
theorem lt_ciInf_iff {ι : Type u_1} {α : Type u_2} [ConditionallyCompleteLattice α] {f : ια} {a : α} [Nonempty ι] (hf : BddBelow (Set.range f)) :
a < iInf f ∃ (b : α), a < b ∀ (i : ι), b f i
theorem ciSup_sup_eq {ι : Type u_1} {α : Type u_2} [ConditionallyCompleteLattice α] {f g : ια} [Nonempty ι] (hf : BddAbove (Set.range f)) (hg : BddAbove (Set.range g)) :
⨆ (x : ι), f xg x = (⨆ (x : ι), f x)⨆ (x : ι), g x
theorem ciInf_inf_eq {ι : Type u_1} {α : Type u_2} [ConditionallyCompleteLattice α] {f g : ια} [Nonempty ι] (hf : BddBelow (Set.range f)) (hg : BddBelow (Set.range g)) :
⨅ (x : ι), f xg x = (⨅ (x : ι), f x)⨅ (x : ι), g x
theorem sup_ciSup {ι : Type u_1} {α : Type u_2} [ConditionallyCompleteLattice α] {f : ια} {a : α} [Nonempty ι] (hf : BddAbove (Set.range f)) :
a⨆ (x : ι), f x = ⨆ (x : ι), af x
theorem inf_ciInf {ι : Type u_1} {α : Type u_2} [ConditionallyCompleteLattice α] {f : ια} {a : α} [Nonempty ι] (hf : BddBelow (Set.range f)) :
a⨅ (x : ι), f x = ⨅ (x : ι), af x
theorem ciInf_sup_ciInf_le {ι : Type u_1} {α : Type u_2} [ConditionallyCompleteLattice α] {f g : ια} [Nonempty ι] (hf : BddBelow (Set.range f)) (hg : BddBelow (Set.range g)) :
(⨅ (i : ι), f i)⨅ (i : ι), g i ⨅ (i : ι), f ig i
theorem le_ciSup_inf_ciSup {ι : Type u_1} {α : Type u_2} [ConditionallyCompleteLattice α] {f g : ια} [Nonempty ι] (hf : BddAbove (Set.range f)) (hg : BddAbove (Set.range g)) :
⨆ (i : ι), f ig i (⨆ (i : ι), f i)⨆ (i : ι), g i
theorem QuasiconvexOn.subset {𝕜 : Type u_1} {E : Type u_2} {β : Type u_3} [Semiring 𝕜] [PartialOrder 𝕜] [AddCommMonoid E] [LE β] [SMul 𝕜 E] {s : Set E} {f : Eβ} (h : QuasiconvexOn 𝕜 s f) {t : Set E} (hts : t s) (ht : Convex 𝕜 t) :
QuasiconvexOn 𝕜 t f
theorem QuasiconvexOn.mem_segment_le_max {𝕜 : Type u_1} {E : Type u_2} {β : Type u_3} [Semiring 𝕜] [PartialOrder 𝕜] [AddCommMonoid E] [SemilatticeSup β] [SMul 𝕜 E] {s : Set E} {f : Eβ} (h : QuasiconvexOn 𝕜 s f) {x y z : E} (hx : x s) (hy : y s) (hz : z segment 𝕜 x y) :
f z f xf y
theorem QuasiconcaveOn.min_le_mem_segment {𝕜 : Type u_1} {E : Type u_2} {β : Type u_3} [Semiring 𝕜] [PartialOrder 𝕜] [AddCommMonoid E] [SemilatticeInf β] [SMul 𝕜 E] {s : Set E} {f : Eβ} (h : QuasiconcaveOn 𝕜 s f) {x y z : E} (hx : x s) (hy : y s) (hz : z segment 𝕜 x y) :
f xf y f z
theorem LowerSemicontinuousOn.bddBelow {α : Type u_1} [TopologicalSpace α] {S : Set α} {g : α} (hg : LowerSemicontinuousOn g S) (hS : IsCompact S) :
BddBelow (g '' S)
theorem LowerSemicontinuousOn.max {α : Type u_1} [TopologicalSpace α] {S : Set α} {f g : α} (hf : LowerSemicontinuousOn f S) (hg : LowerSemicontinuousOn g S) :
LowerSemicontinuousOn (fun (x : α) => Max.max (f x) (g x)) S
theorem lowerSemicontinuousOn_iff_isClosed_preimage {α : Type u_1} [TopologicalSpace α] {s : Set α} {γ : Type u_3} [LinearOrder γ] {f : αγ} [IsClosed s] :
theorem BddAbove.range_inf_of_image2 {M : Type u_4} {N : Type u_5} {α : Type u_6} {f : MNα} [ConditionallyCompleteLinearOrder α] {S : Set M} {T : Set N} (h_bddA : BddAbove (Set.image2 f S T)) (h_bddB : BddBelow (Set.image2 f S T)) :
BddAbove (Set.range fun (y : T) => ⨅ (x : S), f x y)
theorem BddBelow.range_sup_of_image2 {M : Type u_4} {N : Type u_5} {α : Type u_6} {f : MNα} [ConditionallyCompleteLinearOrder α] {S : Set M} {T : Set N} (h_bddA : BddAbove (Set.image2 f S T)) (h_bddB : BddBelow (Set.image2 f S T)) :
BddBelow (Set.range fun (y : T) => ⨆ (x : S), f x y)
theorem ciInf_le_ciInf_of_subset {α : Type u_4} {β : Type u_5} [ConditionallyCompleteLattice α] {f : βα} {s t : Set β} (hs : s.Nonempty) (hf : BddBelow (f '' t)) (hst : s t) :
⨅ (x : t), f x ⨅ (x : s), f x
theorem LowerSemicontinuousOn.dite_top {α : Type u_4} {β : Type u_5} [TopologicalSpace α] [Preorder β] [OrderTop β] {s : Set α} (p : αProp) [DecidablePred p] {f : (a : α) → p aβ} (hf : LowerSemicontinuousOn (fun (x : Subtype p) => f x ) {x : Subtype p | x s}) (h_relatively_closed : ∃ (U : Set α), IsClosed U s U = s setOf p) :
LowerSemicontinuousOn (fun (x : α) => dite (p x) (f x) fun (x : ¬p x) => ) s
theorem LowerSemicontinuousOn.comp_continuousOn {α : Type u_4} {β : Type u_5} {γ : Type u_6} [TopologicalSpace α] [TopologicalSpace β] [Preorder γ] {f : αβ} {s : Set α} {g : βγ} {t : Set β} (hg : LowerSemicontinuousOn g t) (hf : ContinuousOn f s) (h : Set.MapsTo f s t) :
theorem UpperSemicontinuousOn.comp_continuousOn {α : Type u_4} {β : Type u_5} {γ : Type u_6} [TopologicalSpace α] [TopologicalSpace β] [Preorder γ] {f : αβ} {s : Set α} {g : βγ} {t : Set β} (hg : UpperSemicontinuousOn g t) (hf : ContinuousOn f s) (h : Set.MapsTo f s t) :
theorem LowerSemicontinuousOn.ite_top {α : Type u_4} {β : Type u_5} [TopologicalSpace α] [Preorder β] [OrderTop β] {s : Set α} (p : αProp) [DecidablePred p] {f : αβ} (hf : LowerSemicontinuousOn f (s setOf p)) (h_relatively_closed : ∃ (U : Set α), IsClosed U s U = s setOf p) :
LowerSemicontinuousOn (fun (x : α) => if p x then f x else ) s
theorem UpperSemicontinuousOn.frequently_lt_of_tendsto {α : Type u_4} {β : Type u_5} {γ : Type u_6} [TopologicalSpace β] [Preorder γ] {f : βγ} {T : Set β} (hf : UpperSemicontinuousOn f T) {c : γ} {zs : αβ} {z : β} {l : Filter α} [l.NeBot] (hzs : Filter.Tendsto zs l (nhds z)) (hx₂ : f z < c) (hzI : ∀ (a : α), zs a T) (hzT : z T) :
∀ᶠ (a : α) in l, f (zs a) < c
theorem Finset.ciInf_insert {α : Type u_4} {β : Type u_5} [DecidableEq α] [ConditionallyCompleteLattice β] (t : Finset α) (ht : t.Nonempty) (x : α) (f : αβ) :
⨅ (a : { x_1 : α // x_1 insert x t }), f a = f x⨅ (a : { x : α // x t }), f a
theorem Finset.ciSup_insert {α : Type u_4} {β : Type u_5} [DecidableEq α] [ConditionallyCompleteLattice β] (t : Finset α) (ht : t.Nonempty) (x : α) (f : αβ) :
⨆ (a : { x_1 : α // x_1 insert x t }), f a = f x⨆ (a : { x : α // x t }), f a

Following https://projecteuclid.org/journals/kodai-mathematical-journal/volume-11/issue-1/Elementary-proof-for-Sions-minimax-theorem/10.2996/kmj/1138038812.full, with some corrections. There are two errors in Lemma 2 and the main theorem: an incorrect step that (∀ x, a < f x) → (a < ⨅ x, f x). This is repaired by taking an extra exists_between to get a < b < ⨅ ..., concluding that (∀ x, b < f x) → (b ≤ ⨅ x, f x) and so (a < ⨅ x, f x).

theorem sion_minimax {M : Type u_4} [NormedAddCommGroup M] {N : Type u_5} {f : MN} {S : Set M} {T : Set N} (hfc₂ : yT, LowerSemicontinuousOn (fun (x : M) => f x y) S) (hS₁ : IsCompact S) (hS₃ : S.Nonempty) (hT₃ : T.Nonempty) [Module M] [ContinuousSMul M] [AddCommGroup N] [TopologicalSpace N] [SequentialSpace N] [T2Space N] [ContinuousAdd N] [Module N] [ContinuousSMul N] (hfc₁ : xS, UpperSemicontinuousOn (f x) T) (hfq₂ : yT, QuasiconvexOn S fun (x : M) => f x y) (hfq₁ : xS, QuasiconcaveOn T (f x)) (hT₂ : Convex T) (hS₂ : Convex S) (h_bddA : BddAbove (Set.image2 f S T)) (h_bddB : BddBelow (Set.image2 f S T)) :
⨅ (x : S), ⨆ (y : T), f x y = ⨆ (y : T), ⨅ (x : S), f x y

Sion's Minimax theorem. Because of ciSup and ciInf junk values when f isn't bounded, we need to assume that it's bounded above and below.