Documentation

Tdaf.Analysis.Convex.Saddle.Continuity

Continuity of finite saddle-functions #

A finite concave-convex function on C × D is Lipschitz on every product of compact subsets of ri C and ri D, hence continuous there; a pointwise bounded family of such functions is uniformly bounded and equi-Lipschitz on such a rectangle; and the usual convergence and Arzelà–Ascoli consequences follow. Each is a statement about convex functions of one variable, applied once in each variable and combined.

Main definitions #

Main results #

Implementation notes #

Everything is stated for arbitrary convex C and D, with ri C and ri D written out; the customary form takes them relatively open, where ri C = C. The Lipschitz constant is α₁ + α₂ rather than 2(α₁ + α₂), because Mathlib's product metric is the supremum metric and no factor is paid passing between the coordinate distances and the distance on the product.

The convergence theorems take an arbitrary dense A ⊆ ri C ×ˢ ri D rather than a product C' ×ˢ D'. The equi-Lipschitz input does need a product, but the diagonal extraction behind the Arzelà–Ascoli statement produces a countable dense set that is not a product.

Unlike the one-variable theory, these results cannot be transported from the interior case along a chart: the chart of C ×ˢ D is not the product of the charts of C and D, and it is the product structure that the concave-convex hypothesis lives on. They are proved directly in ri.

References #

[^1]: R. T. Rockafellar, Convex Analysis, Princeton University Press, 1970, §35.

Concave-convex functions on a rectangle #

structure Tdaf.ConvexAnalysis.ConcaveConvexOn {U : Type u_1} {X : Type u_2} [AddCommGroup U] [Module ℝ U] [AddCommGroup X] [Module ℝ X] (C : Set U) (D : Set X) (K : U × X → ℝ) :

K is concave-convex on C × D: concave in its first argument on C for each point of D, convex in its second on D for each point of C. The finite, set-relative form of ConcaveConvexFn, and the hypothesis the continuity theory runs on.

  • concave_fst (x : X) : x ∈ D → ConcaveOn ℝ C fun (u : U) => K (u, x)

    K (·, x) is concave on C for every x ∈ D.

  • convex_snd (u : U) : u ∈ C → ConvexOn ℝ D fun (x : X) => K (u, x)

    K (u, ·) is convex on D for every u ∈ C.

Instances For
    theorem Tdaf.ConvexAnalysis.ConcaveConvexOn.convexOn_neg_fst {U : Type u_1} {X : Type u_2} [AddCommGroup U] [Module ℝ U] [AddCommGroup X] [Module ℝ X] {C : Set U} {D : Set X} {K : U × X → ℝ} (hK : ConcaveConvexOn C D K) {x : X} (hx : x ∈ D) :
    ConvexOn ℝ C fun (u : U) => -K (u, x)

    The concave slice, as a family of convex functions: the form the convex lemmas consume.

    Negation #

    The one-variable results are stated for convex functions; the concave variable reaches them through -K, and these lemmas carry the conclusions back.

    theorem Tdaf.ConvexAnalysis.bddAbove_range_neg_iff {ι : Type u_1} {g : ι → ℝ} :
    BddAbove (Set.range fun (i : ι) => -g i) ↔ BddBelow (Set.range g)

    A family of reals is bounded above iff its negation is bounded below.

    theorem Tdaf.ConvexAnalysis.bddBelow_range_neg_iff {ι : Type u_1} {g : ι → ℝ} :
    BddBelow (Set.range fun (i : ι) => -g i) ↔ BddAbove (Set.range g)

    A family of reals is bounded below iff its negation is bounded above.

    theorem Tdaf.ConvexAnalysis.LipschitzOnWith.negReal {E : Type u_2} [PseudoMetricSpace E] {f : E → ℝ} {S : Set E} {k : NNReal} (h : LipschitzOnWith k f S) :
    LipschitzOnWith k (fun (x : E) => -f x) S

    Negating a real-valued function does not change its Lipschitz constants.

    theorem Tdaf.ConvexAnalysis.lipschitzOnWith_neg_iff {E : Type u_2} [PseudoMetricSpace E] {f : E → ℝ} {S : Set E} {k : NNReal} :
    LipschitzOnWith k (fun (x : E) => -f x) S ↔ LipschitzOnWith k f S

    -f is Lipschitz on S exactly when f is.

    Uniform bounds and equi-Lipschitz constants for a family #

    The engine of the file: one-variable pointwise boundedness applied four times — twice to bound the family, once in each variable, and twice to make it equi-Lipschitz.

    theorem Tdaf.ConvexAnalysis.convexOn_slice_snd {U : Type u_1} {X : Type u_2} [NormedAddCommGroup U] [NormedSpace ℝ U] [NormedAddCommGroup X] [NormedSpace ℝ X] {ι : Type u_3} {C : Set U} {D : Set X} {K : ι → U × X → ℝ} (hK : ∀ (i : ι), ConcaveConvexOn C D (K i)) {u : U} (hu : u ∈ C) (i : ι) :
    ConvexOn ℝ D fun (x : X) => K i (u, x)

    The convex slices of a concave-convex family, at a point of C, as a family of convex functions on D.

    theorem Tdaf.ConvexAnalysis.exists_forall_abs_le_snd {U : Type u_1} {X : Type u_2} [NormedAddCommGroup U] [NormedSpace ℝ U] [NormedAddCommGroup X] [NormedSpace ℝ X] {ι : Type u_3} {C : Set U} {D D' : Set X} {K : ι → U × X → ℝ} [FiniteDimensional ℝ X] {u : U} (hD : Convex ℝ D) (hK : ∀ (i : ι), ConcaveConvexOn C D (K i)) (hD' : D' ⊆ intrinsicInterior ℝ D) (hDdense : intrinsicInterior ℝ D ⊆ closure D') (hbdd : ∀ x ∈ D', Bornology.IsBounded (Set.range fun (i : ι) => K i (u, x))) {T : Set X} (hT : IsCompact T) (hTD : T ⊆ intrinsicInterior ℝ D) (hu : u ∈ C) :
    ∃ (M : ℝ), 0 ≤ M ∧ ∀ (i : ι), ∀ x ∈ T, |K i (u, x)| ≤ M

    The first bounding step: for a fixed u ∈ C' the convex slices K i (u, ·) are uniformly bounded on every compact T ⊆ ri D: the one-variable statement, in the second variable.

    theorem Tdaf.ConvexAnalysis.exists_forall_abs_le_fst {U : Type u_1} {X : Type u_2} [NormedAddCommGroup U] [NormedSpace ℝ U] [NormedAddCommGroup X] [NormedSpace ℝ X] {ι : Type u_3} {C C' : Set U} {D : Set X} {K : ι → U × X → ℝ} [FiniteDimensional ℝ U] {x : X} (hC : Convex ℝ C) (hK : ∀ (i : ι), ConcaveConvexOn C D (K i)) (hC' : C' ⊆ intrinsicInterior ℝ C) (hCdense : intrinsicInterior ℝ C ⊆ closure C') (hbdd : ∀ u ∈ C', Bornology.IsBounded (Set.range fun (i : ι) => K i (u, x))) {S : Set U} (hS : IsCompact S) (hSC : S ⊆ intrinsicInterior ℝ C) (hx : x ∈ D) :
    ∃ (M : ℝ), 0 ≤ M ∧ ∀ (i : ι), ∀ u ∈ S, |K i (u, x)| ≤ M

    The second bounding step: for a fixed x ∈ D' the concave slices K i (·, x) are uniformly bounded on every compact S ⊆ ri C: the one-variable statement in the first variable, reached through -K.

    The two equi-Lipschitz halves #

    theorem Tdaf.ConvexAnalysis.exists_forall_abs_le_and_lipschitzOnWith_fst {U : Type u_1} {X : Type u_2} [NormedAddCommGroup U] [NormedSpace ℝ U] [NormedAddCommGroup X] [NormedSpace ℝ X] {ι : Type u_3} {C C' : Set U} {D D' : Set X} {K : ι → U × X → ℝ} [FiniteDimensional ℝ U] [FiniteDimensional ℝ X] (hC : Convex ℝ C) (hD : Convex ℝ D) (hK : ∀ (i : ι), ConcaveConvexOn C D (K i)) (hC' : C' ⊆ intrinsicInterior ℝ C) (hCdense : intrinsicInterior ℝ C ⊆ closure C') (hD' : D' ⊆ intrinsicInterior ℝ D) (hDdense : intrinsicInterior ℝ D ⊆ closure D') (hbdd : ∀ u ∈ C', ∀ x ∈ D', Bornology.IsBounded (Set.range fun (i : ι) => K i (u, x))) {S : Set U} (hS : IsCompact S) (hSC : S ⊆ intrinsicInterior ℝ C) {T : Set X} (hT : IsCompact T) (hTD : T ⊆ intrinsicInterior ℝ D) :
    (∃ (M : ℝ), 0 ≤ M ∧ ∀ (i : ι), ∀ u ∈ S, ∀ x ∈ T, |K i (u, x)| ≤ M) ∧ ∃ (k : NNReal), ∀ (i : ι), ∀ x ∈ T, LipschitzOnWith k (fun (u : U) => K i (u, x)) S

    In the first variable: the family is uniformly bounded on S ×ˢ T and equi-Lipschitz in u, uniformly in x ∈ T.

    theorem Tdaf.ConvexAnalysis.exists_forall_lipschitzOnWith_snd {U : Type u_1} {X : Type u_2} [NormedAddCommGroup U] [NormedSpace ℝ U] [NormedAddCommGroup X] [NormedSpace ℝ X] {ι : Type u_3} {C C' : Set U} {D D' : Set X} {K : ι → U × X → ℝ} [FiniteDimensional ℝ U] [FiniteDimensional ℝ X] (hC : Convex ℝ C) (hD : Convex ℝ D) (hK : ∀ (i : ι), ConcaveConvexOn C D (K i)) (hC' : C' ⊆ intrinsicInterior ℝ C) (hCdense : intrinsicInterior ℝ C ⊆ closure C') (hD' : D' ⊆ intrinsicInterior ℝ D) (hDdense : intrinsicInterior ℝ D ⊆ closure D') (hbdd : ∀ u ∈ C', ∀ x ∈ D', Bornology.IsBounded (Set.range fun (i : ι) => K i (u, x))) {S : Set U} (hS : IsCompact S) (hSC : S ⊆ intrinsicInterior ℝ C) {T : Set X} (hT : IsCompact T) (hTD : T ⊆ intrinsicInterior ℝ D) :
    ∃ (k : NNReal), ∀ (i : ι), ∀ u ∈ S, LipschitzOnWith k (fun (x : X) => K i (u, x)) T

    In the second variable: the family is equi-Lipschitz in x, uniformly in u ∈ S.

    theorem Tdaf.ConvexAnalysis.exists_forall_abs_le_and_lipschitzOnWith_prod {U : Type u_1} {X : Type u_2} [NormedAddCommGroup U] [NormedSpace ℝ U] [NormedAddCommGroup X] [NormedSpace ℝ X] {ι : Type u_3} {C C' : Set U} {D D' : Set X} {K : ι → U × X → ℝ} [FiniteDimensional ℝ U] [FiniteDimensional ℝ X] (hC : Convex ℝ C) (hD : Convex ℝ D) (hK : ∀ (i : ι), ConcaveConvexOn C D (K i)) (hC' : C' ⊆ intrinsicInterior ℝ C) (hCdense : intrinsicInterior ℝ C ⊆ closure C') (hD' : D' ⊆ intrinsicInterior ℝ D) (hDdense : intrinsicInterior ℝ D ⊆ closure D') (hbdd : ∀ u ∈ C', ∀ x ∈ D', Bornology.IsBounded (Set.range fun (i : ι) => K i (u, x))) {S : Set U} (hS : IsCompact S) (hSC : S ⊆ intrinsicInterior ℝ C) {T : Set X} (hT : IsCompact T) (hTD : T ⊆ intrinsicInterior ℝ D) :
    (∃ (M : ℝ), 0 ≤ M ∧ ∀ (i : ι), ∀ p ∈ S ×ˢ T, |K i p| ≤ M) ∧ ∃ (k : NNReal), ∀ (i : ι), LipschitzOnWith k (K i) (S ×ˢ T)

    A family of finite concave-convex functions on C × D, pointwise bounded on C' × D', is uniformly bounded and equi-Lipschitzian on S ×ˢ T for every compact S ⊆ ri C and T ⊆ ri D.

    The customary hypothesis is conv (cl (C' × D')) ⊇ C × D for relatively open C, D; the form used here is C' ⊆ ri C ⊆ cl C' and likewise for D, and C' = ri C, D' = ri D gives the headline statement.

    The single-function case #

    theorem Tdaf.ConvexAnalysis.ConcaveConvexOn.exists_lipschitzOnWith_of_isCompact {U : Type u_1} {X : Type u_2} [NormedAddCommGroup U] [NormedSpace ℝ U] [NormedAddCommGroup X] [NormedSpace ℝ X] {C : Set U} {D : Set X} [FiniteDimensional ℝ U] [FiniteDimensional ℝ X] {L : U × X → ℝ} (hC : Convex ℝ C) (hD : Convex ℝ D) (hL : ConcaveConvexOn C D L) {S : Set U} (hS : IsCompact S) (hSC : S ⊆ intrinsicInterior ℝ C) {T : Set X} (hT : IsCompact T) (hTD : T ⊆ intrinsicInterior ℝ D) :
    ∃ (k : NNReal), LipschitzOnWith k L (S ×ˢ T)

    A finite concave-convex function on C × D is Lipschitzian on every product of compact subsets of ri C and ri D: the family statement at a one-element family.

    theorem Tdaf.ConvexAnalysis.ConcaveConvexOn.exists_forall_abs_le_of_isCompact {U : Type u_1} {X : Type u_2} [NormedAddCommGroup U] [NormedSpace ℝ U] [NormedAddCommGroup X] [NormedSpace ℝ X] {C : Set U} {D : Set X} [FiniteDimensional ℝ U] [FiniteDimensional ℝ X] {L : U × X → ℝ} (hC : Convex ℝ C) (hD : Convex ℝ D) (hL : ConcaveConvexOn C D L) {S : Set U} (hS : IsCompact S) (hSC : S ⊆ intrinsicInterior ℝ C) {T : Set X} (hT : IsCompact T) (hTD : T ⊆ intrinsicInterior ℝ D) :
    ∃ (M : ℝ), 0 ≤ M ∧ ∀ p ∈ S ×ˢ T, |L p| ≤ M

    A finite concave-convex function is bounded on every product of compact subsets of the relative interiors.

    Compact relative neighbourhoods #

    ri C is locally compact — being a translate of an open subset of a finite-dimensional subspace — which is what turns "Lipschitz on every compact rectangle" into "continuous".

    Every point of ri C has a compact relative neighbourhood inside ri C.

    The continuity clause #

    A finite concave-convex function on C × D is continuous relative to ri C × ri D. Continuity is local, ri C and ri D are locally compact, and on a compact rectangle the function is Lipschitz.

    The relative collar #

    The convergence and joint-continuity theorems need, for a compact S ⊆ ri C, a slightly larger compact subset of ri C containing every point of ri C near S. IsCompact.exists_cthickening_subset_open will not serve: cthickening ε S ⊆ ri C is false, because points off the affine hull of C are near S.

    theorem Tdaf.ConvexAnalysis.exists_isCompact_collar_relint {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] [FiniteDimensional ℝ E] {C : Set E} (hC : Convex ℝ C) {S : Set E} (hS : IsCompact S) (hSC : S ⊆ intrinsicInterior ℝ C) :
    ∃ (ε : ℝ) (S' : Set E), 0 < ε ∧ IsCompact S' ∧ S ⊆ S' ∧ S' ⊆ intrinsicInterior ℝ C ∧ ∀ y ∈ intrinsicInterior ℝ C, ∀ x ∈ S, dist y x ≤ ε → y ∈ S'

    A compact subset of ri C has a relative collar: an ε > 0 and a compact S' ⊆ ri C containing S and every point of ri C within ε of S. The relative analogue of IsCompact.exists_cthickening_subset_open, and what makes the interior proofs of the one-variable convergence theorems run in ri.

    Equi-Lipschitz plus a dense Cauchy set #

    The metric core of the convergence theorems, with the convexity stripped out: on a compact S carrying a collar S' on which the sequence is equi-Lipschitz, pointwise Cauchy behaviour on a dense subset of S is already uniform Cauchy behaviour on S.

    theorem Tdaf.ConvexAnalysis.uniformCauchySeqOn_of_equiLipschitz {Ω : Type u_1} [PseudoMetricSpace Ω] {f : ℕ → Ω → ℝ} {A S S' : Set Ω} {ε : ℝ} {k : NNReal} (hS : IsCompact S) (hSS' : S ⊆ S') (hε : 0 < ε) (hcollar : ∀ y ∈ A, ∀ x ∈ S, dist y x ≤ ε → y ∈ S') (hdense : S ⊆ closure A) (hlip : ∀ (i : ℕ), LipschitzOnWith k (f i) S') (hcau : ∀ z ∈ A, CauchySeq fun (i : ℕ) => f i z) :

    Equi-Lipschitz on a collar plus pointwise Cauchy on a dense subset gives uniform Cauchy. hcollar is the only thing the ambient structure has to supply: every point of A within ε of S must lie in S', the set on which the family is equi-Lipschitz. In the interior setting S' = cthickening ε S; in the relative setting it is exists_isCompact_collar_relint.

    Convergence #

    Both are the one-variable statements with the compact set replaced by a compact rectangle: the family theorem supplies the equi-Lipschitz constant, exists_isCompact_collar_relint the room to move in, and uniformCauchySeqOn_of_equiLipschitz does the rest.

    theorem Tdaf.ConvexAnalysis.uniformCauchySeqOn_prod_of_dense {U : Type u_1} {X : Type u_2} [NormedAddCommGroup U] [NormedSpace ℝ U] [FiniteDimensional ℝ U] [NormedAddCommGroup X] [NormedSpace ℝ X] [FiniteDimensional ℝ X] {C C' : Set U} {D D' : Set X} {K : ℕ → U × X → ℝ} (hC : Convex ℝ C) (hD : Convex ℝ D) (hK : ∀ (i : ℕ), ConcaveConvexOn C D (K i)) (hC' : C' ⊆ intrinsicInterior ℝ C) (hCdense : intrinsicInterior ℝ C ⊆ closure C') (hD' : D' ⊆ intrinsicInterior ℝ D) (hDdense : intrinsicInterior ℝ D ⊆ closure D') (hbdd : ∀ u ∈ C', ∀ x ∈ D', Bornology.IsBounded (Set.range fun (i : ℕ) => K i (u, x))) {A : Set (U × X)} (hA : A ⊆ intrinsicInterior ℝ C ×ˢ intrinsicInterior ℝ D) (hAdense : intrinsicInterior ℝ C ×ˢ intrinsicInterior ℝ D ⊆ closure A) (hcau : ∀ p ∈ A, CauchySeq fun (i : ℕ) => K i p) {S : Set U} (hS : IsCompact S) (hSC : S ⊆ intrinsicInterior ℝ C) {T : Set X} (hT : IsCompact T) (hTD : T ⊆ intrinsicInterior ℝ D) :

    The uniform Cauchy property behind both convergence theorems: a sequence of finite concave-convex functions, pointwise bounded on C' × D' and pointwise Cauchy on a set A dense in ri C × ri D, is uniformly Cauchy on every compact rectangle inside ri C × ri D.

    theorem Tdaf.ConvexAnalysis.exists_tendstoUniformlyOn_prod_of_dense {U : Type u_1} {X : Type u_2} [NormedAddCommGroup U] [NormedSpace ℝ U] [FiniteDimensional ℝ U] [NormedAddCommGroup X] [NormedSpace ℝ X] [FiniteDimensional ℝ X] {C C' : Set U} {D D' : Set X} {K : ℕ → U × X → ℝ} (hC : Convex ℝ C) (hD : Convex ℝ D) (hK : ∀ (i : ℕ), ConcaveConvexOn C D (K i)) (hC' : C' ⊆ intrinsicInterior ℝ C) (hCdense : intrinsicInterior ℝ C ⊆ closure C') (hD' : D' ⊆ intrinsicInterior ℝ D) (hDdense : intrinsicInterior ℝ D ⊆ closure D') (hbdd : ∀ u ∈ C', ∀ x ∈ D', Bornology.IsBounded (Set.range fun (i : ℕ) => K i (u, x))) {A : Set (U × X)} (hA : A ⊆ intrinsicInterior ℝ C ×ˢ intrinsicInterior ℝ D) (hAdense : intrinsicInterior ℝ C ×ˢ intrinsicInterior ℝ D ⊆ closure A) (hcv : ∀ p ∈ A, ∃ (L : ℝ), Filter.Tendsto (fun (i : ℕ) => K i p) Filter.atTop (nhds L)) :
    ∃ (L : U × X → ℝ), ConcaveConvexOn (intrinsicInterior ℝ C) (intrinsicInterior ℝ D) L ∧ (∀ p ∈ intrinsicInterior ℝ C ×ˢ intrinsicInterior ℝ D, Filter.Tendsto (fun (i : ℕ) => K i p) Filter.atTop (nhds (L p))) ∧ ∀ ⦃S : Set U⦄, IsCompact S → S ⊆ intrinsicInterior ℝ C → ∀ ⦃T : Set X⦄, IsCompact T → T ⊆ intrinsicInterior ℝ D → TendstoUniformlyOn K L Filter.atTop (S ×ˢ T)

    A sequence of finite concave-convex functions on C × D, whose values are bounded at every point of a product C' × D' dense in ri C × ri D and convergent at every point of a dense A ⊆ ri C × ri D, converges at every point of ri C × ri D to a finite concave-convex limit, uniformly on every compact rectangle. Taking A = C' ×ˢ D' gives the customary statement.

    theorem Tdaf.ConvexAnalysis.exists_tendstoUniformlyOn_prod_of_dense' {U : Type u_1} {X : Type u_2} [NormedAddCommGroup U] [NormedSpace ℝ U] [FiniteDimensional ℝ U] [NormedAddCommGroup X] [NormedSpace ℝ X] [FiniteDimensional ℝ X] {C C' : Set U} {D D' : Set X} {K : ℕ → U × X → ℝ} (hC : Convex ℝ C) (hD : Convex ℝ D) (hK : ∀ (i : ℕ), ConcaveConvexOn C D (K i)) (hC' : C' ⊆ intrinsicInterior ℝ C) (hCdense : intrinsicInterior ℝ C ⊆ closure C') (hD' : D' ⊆ intrinsicInterior ℝ D) (hDdense : intrinsicInterior ℝ D ⊆ closure D') (hcv : ∀ u ∈ C', ∀ x ∈ D', ∃ (L : ℝ), Filter.Tendsto (fun (i : ℕ) => K i (u, x)) Filter.atTop (nhds L)) :
    ∃ (L : U × X → ℝ), ConcaveConvexOn (intrinsicInterior ℝ C) (intrinsicInterior ℝ D) L ∧ (∀ p ∈ intrinsicInterior ℝ C ×ˢ intrinsicInterior ℝ D, Filter.Tendsto (fun (i : ℕ) => K i p) Filter.atTop (nhds (L p))) ∧ ∀ ⦃S : Set U⦄, IsCompact S → S ⊆ intrinsicInterior ℝ C → ∀ ⦃T : Set X⦄, IsCompact T → T ⊆ intrinsicInterior ℝ D → TendstoUniformlyOn K L Filter.atTop (S ×ˢ T)

    The same in its customary form: pointwise convergence on a product of dense subsets.

    theorem Tdaf.ConvexAnalysis.tendstoUniformlyOn_prod_of_tendsto {U : Type u_1} {X : Type u_2} [NormedAddCommGroup U] [NormedSpace ℝ U] [FiniteDimensional ℝ U] [NormedAddCommGroup X] [NormedSpace ℝ X] [FiniteDimensional ℝ X] {C : Set U} {D : Set X} {K : ℕ → U × X → ℝ} (hC : Convex ℝ C) (hD : Convex ℝ D) (hK : ∀ (i : ℕ), ConcaveConvexOn C D (K i)) {L : U × X → ℝ} (hL : ∀ p ∈ intrinsicInterior ℝ C ×ˢ intrinsicInterior ℝ D, Filter.Tendsto (fun (i : ℕ) => K i p) Filter.atTop (nhds (L p))) {S : Set U} (hS : IsCompact S) (hSC : S ⊆ intrinsicInterior ℝ C) {T : Set X} (hT : IsCompact T) (hTD : T ⊆ intrinsicInterior ℝ D) :

    With the limit supplied: pointwise convergence on all of ri C × ri D upgrades to uniform convergence on compact rectangles.

    theorem Tdaf.ConvexAnalysis.exists_subseq_tendstoUniformlyOn_prod {U : Type u_1} {X : Type u_2} [NormedAddCommGroup U] [NormedSpace ℝ U] [FiniteDimensional ℝ U] [NormedAddCommGroup X] [NormedSpace ℝ X] [FiniteDimensional ℝ X] {C C' : Set U} {D D' : Set X} {K : ℕ → U × X → ℝ} (hC : Convex ℝ C) (hD : Convex ℝ D) (hK : ∀ (i : ℕ), ConcaveConvexOn C D (K i)) (hC' : C' ⊆ intrinsicInterior ℝ C) (hCdense : intrinsicInterior ℝ C ⊆ closure C') (hD' : D' ⊆ intrinsicInterior ℝ D) (hDdense : intrinsicInterior ℝ D ⊆ closure D') (hbdd : ∀ u ∈ C', ∀ x ∈ D', Bornology.IsBounded (Set.range fun (i : ℕ) => K i (u, x))) :
    ∃ (φ : ℕ → ℕ) (L : U × X → ℝ), StrictMono φ ∧ ConcaveConvexOn (intrinsicInterior ℝ C) (intrinsicInterior ℝ D) L ∧ (∀ p ∈ intrinsicInterior ℝ C ×ˢ intrinsicInterior ℝ D, Filter.Tendsto (fun (i : ℕ) => K (φ i) p) Filter.atTop (nhds (L p))) ∧ ∀ ⦃S : Set U⦄, IsCompact S → S ⊆ intrinsicInterior ℝ C → ∀ ⦃T : Set X⦄, IsCompact T → T ⊆ intrinsicInterior ℝ D → TendstoUniformlyOn (fun (i : ℕ) => K (φ i)) L Filter.atTop (S ×ˢ T)

    Arzelà–Ascoli for saddle-functions: a sequence of finite concave-convex functions on C × D whose values are bounded at every point of a product C' × D' dense in ri C × ri D has a subsequence converging, uniformly on every compact rectangle inside ri C × ri D, to a finite concave-convex function.

    As in one variable the subsequence comes from a countable dense subset of the product C' ×ˢ D', which is why exists_tendstoUniformlyOn_prod_of_dense is stated for a general dense A.

    Joint continuity in a parameter #

    theorem Tdaf.ConvexAnalysis.continuousOn_prod_of_concaveConvexOn {U : Type u_1} {X : Type u_2} [NormedAddCommGroup U] [NormedSpace ℝ U] [FiniteDimensional ℝ U] [NormedAddCommGroup X] [NormedSpace ℝ X] [FiniteDimensional ℝ X] {C C' : Set U} {D D' : Set X} {T : Type u_3} [TopologicalSpace T] [LocallyCompactSpace T] (hC : Convex ℝ C) (hD : Convex ℝ D) {F : (U × X) × T → ℝ} (hF : ∀ (t : T), ConcaveConvexOn C D fun (p : U × X) => F (p, t)) (hC' : C' ⊆ intrinsicInterior ℝ C) (hCdense : intrinsicInterior ℝ C ⊆ closure C') (hD' : D' ⊆ intrinsicInterior ℝ D) (hDdense : intrinsicInterior ℝ D ⊆ closure D') (hcont : ∀ u ∈ C', ∀ x ∈ D', Continuous fun (t : T) => F ((u, x), t)) :

    A real-valued function of (u, x, t) with T locally compact, concave-convex in (u, x) for each t and continuous in t for each (u, x), is jointly continuous relative to ri C × ri D × T.

    Continuity in t is only needed at the points of dense subsets C' and D'; continuousOn_prod_of_concaveConvexOn' is the headline statement. On a compact neighbourhood T₀ of t₀ the family {F(·, t) | t ∈ T₀} is pointwise bounded on C' × D', so the family theorem equi-Lipschitz near (u₀, x₀), and a four-term estimate through a nearby point closes it.

    theorem Tdaf.ConvexAnalysis.continuousOn_prod_of_concaveConvexOn' {U : Type u_1} {X : Type u_2} [NormedAddCommGroup U] [NormedSpace ℝ U] [FiniteDimensional ℝ U] [NormedAddCommGroup X] [NormedSpace ℝ X] [FiniteDimensional ℝ X] {C : Set U} {D : Set X} {T : Type u_3} [TopologicalSpace T] [LocallyCompactSpace T] (hC : Convex ℝ C) (hD : Convex ℝ D) {F : (U × X) × T → ℝ} (hF : ∀ (t : T), ConcaveConvexOn C D fun (p : U × X) => F (p, t)) (hcont : ∀ u ∈ intrinsicInterior ℝ C, ∀ x ∈ intrinsicInterior ℝ D, Continuous fun (t : T) => F ((u, x), t)) :

    The same with continuity in the parameter assumed at every point of ri C × ri D.