Documentation

Tdaf.Analysis.Convex.Saddle.Conjugate

The two conjugates of a saddle-function form a closure pair #

The lower and upper conjugates K̲*, K̄* of a saddle-function in the class Ω (F) of a closed convex bifunction F are the two brackets of one and the same convex bifunction, F_*^*. So they are a closure pair: equivalent, sharing an effective domain C* × D*, and agreeing wherever one coordinate is a relative interior point of it. In particular the origin in ri C* or ri D* forces the saddle-value of K to exist.

The one new algebraic fact needed is the biadjoint identity (F_*^*)^* = F_*. Since F ↦ F_* intertwines the convex and the concave adjoint, it is involutivity of the adjoint read through that intertwining.

The rest of the file computes the effective domains. D* is the projection of dom F on X, and its support function is a supremum of recession functions of the slices K (u, ·); that turns into criteria for 0 ∈ int D* and for the saddle-value to exist. The C* halves are in Saddle/Existence.lean, read at saddleSwap.

Main results #

Implementation notes #

K̲* and K̄* live on V × X and the bifunction behind them goes from V to Y, so every bracket lemma is used at the flipped pairings, whence the .flip compatibility instances throughout. Properness of the conjugate splits unevenly: dom₂ K̄* ≠ ∅ is one line from properness of the graph function, while dom₁ K̄* ≠ ∅ is the existence of an affine minorant of it — which is what makes closedness of F a genuine hypothesis rather than a convenience.

References #

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

The inverse intertwines the convex and the concave adjoint #

The inverse operation intertwines the two adjoints: for a concave bifunction G from Y to V, the convex adjoint of G_* at the flipped pairings is the inverse of the concave adjoint of G. No hypothesis on G is needed — both sides are the same iterated extremum, and the proof is one exchange of bound variables.

The biadjoint identity (F_*^*)^* = F_* for a closed convex bifunction. This is Rockafellar's remark that the equivalence class conjugate to Ω (F) is Ω (F_*), and it is what makes the two conjugates a closure pair. It is adjointBifun_flip_inverseBifun followed by involutivity of the adjoint on closed convex bifunctions.

The Lagrangian is the concave bracket of the inverse #

theorem Tdaf.ConvexAnalysis.concaveBracket_inverseBifun_eq_lagrangian {U : Type u_1} {V : Type u_2} {X : Type u_3} [AddCommGroup U] [Module ℝ U] [AddCommGroup V] [Module ℝ V] (Bu : U →ₗ[ℝ] V →ₗ[ℝ] ℝ) (F : Bifun U X) (v : V) (x : X) :

L (v, x) = ⟨v, F_* x⟩ — the Lagrangian of (P) is the concave bracket of the inverse bifunction F_*, for the flipped pairing. The identity itself is an unfolding.

theorem Tdaf.ConvexAnalysis.saddleLagrangian_eq_concaveBracket {U : Type u_1} {V : Type u_2} {X : Type u_3} [AddCommGroup U] [Module ℝ U] [AddCommGroup V] [Module ℝ V] (Bu : U →ₗ[ℝ] V →ₗ[ℝ] ℝ) (F : Bifun U X) :
saddleLagrangian Bu F = fun (q : V × X) => concaveBracket Bu.flip (inverseBifun F) q.1 q.2

The saddle-function form of concaveBracket_inverseBifun_eq_lagrangian: the Lagrangian read on V × X is the upper bracket of F_*.

The two conjugates are the two brackets of F_*^* #

The upper conjugate is the upper bracket of F_*^*, companion of lowerConjSaddle_eq_bracket_inverseBifun. The upper conjugate is the Lagrangian of F, that is the concave bracket of F_*, and the biadjoint identity rewrites F_* as the adjoint of F_*^*.

cl₁ K̲* = K̄*. Both conjugates are brackets of the single closed convex bifunction F_*^*, so this is the first bracket-closure equation, at the flipped pairings.

Properness of the conjugate saddle-functions #

A saddle-function conjugate to a closed proper one is again proper.

The two halves are quite different. dom₂ L ≠ ∅ needs only a point where the graph function is finite. dom₁ L ≠ ∅ is the existence of an affine minorant of the graph function (proper_conj), which is where closedness enters.

A closure pair agrees on the relative interiors #

theorem Tdaf.ConvexAnalysis.eq_of_mem_relint_dom₁_of_closure_pair {U : Type u_1} {X : Type u_2} [NormedAddCommGroup U] [NormedSpace ℝ U] [FiniteDimensional ℝ U] [NormedAddCommGroup X] [NormedSpace ℝ X] [FiniteDimensional ℝ X] {Klow Kup : U × X → EReal} (hup : ConcaveConvexFn Kup) (hne : (dom₂ Kup).Nonempty) (h1 : partialCl₁ Klow = Kup) (h2 : partialCl₂ Kup = Klow) {u : U} (hu : u ∈ intrinsicInterior ℝ (dom₁ Klow)) (x : X) :
Klow (u, x) = Kup (u, x)

A closure pair agrees over ri (dom₁ K̲): if cl₁ K̲ = K̄ and cl₂ K̄ = K̲ then the two coincide there. Because the closure relations hold on the nose the hypotheses are lighter than in the version for a closed saddle-function: K̲ (·, x) is cl₂ K̄ (·, x), whose concave effective domain is dom₁ K̄, and a concave function meets its closure on the relative interior of that domain. Only dom₂ K̄ ≠ ∅ is needed.

theorem Tdaf.ConvexAnalysis.eq_of_mem_relint_dom₂_of_closure_pair {U : Type u_1} {X : Type u_2} [NormedAddCommGroup U] [NormedSpace ℝ U] [FiniteDimensional ℝ U] [NormedAddCommGroup X] [NormedSpace ℝ X] [FiniteDimensional ℝ X] {Klow Kup : U × X → EReal} (hlow : ConcaveConvexFn Klow) (hne : (dom₁ Klow).Nonempty) (h1 : partialCl₁ Klow = Kup) (h2 : partialCl₂ Kup = Klow) {x : X} (hx : x ∈ intrinsicInterior ℝ (dom₂ Kup)) (u : U) :
Klow (u, x) = Kup (u, x)

The mirror of eq_of_mem_relint_dom₁_of_closure_pair: a closure pair agrees over ri (dom₂ K̄). Not the same statement read at saddleSwap, because the two use different halves of properness — this one needs dom₁ K̲ ≠ ∅ — so it is proved directly.

The common effective domain, and existence of the saddle-value #

The upper conjugate of a member of Ω (F) is proper when F is a closed proper convex bifunction.

The lower conjugate is proper as well — it is cl₂ of the upper one, and cl₂ preserves properness.

C*, the first half of the common effective domain, does not depend on which of the two conjugates it is read from.

The two conjugates agree wherever the first coordinate is a relative interior point of C*.

And wherever the second coordinate is a relative interior point of D*.

If the origin of the dual of the concave variable lies in ri C*, the saddle-value of K exists. The two iterated extrema of K are the two conjugates at the origin, and the closure pair makes them agree there.

If the origin lies in the relative interior of both halves of C* × D*, the saddle-value is finite — it is a value of the conjugate on its own effective domain, where a saddle-function is finite by definition.

The effective domains of the conjugate saddle-functions #

The support functions of C* = dom₁ K* and D* = dom₂ K*, for K ∈ Ω (F), can be computed in terms of K itself. The D* half is the one with content: D* is the projection on X of dom F, and the support function of that projection is assembled from the support functions of the individual slices dom (F u), each of which is a recession function. The lemmas before it are bookkeeping: support functions do not see relative interiors, and the relative interior of a projection is the union of those of the slices.

The set D*: the second effective domain of the Lagrangian L (v, x) = inf_u {⟨u, v⟩ + F (u, x)} is the projection of dom F on X, with no hypotheses on F whatsoever. L (v, x) ≤ ⟨u, v⟩ + F (u, x) gives ⊇; for ⊆ it is enough to test v = 0.

dom F ⊆ U is the projection on U of the effective domain of the graph function: both say that some value F (u, x) is < ⊤.

theorem Tdaf.ConvexAnalysis.dom₁_bracket {U : Type u_1} {X : Type u_2} {Y : Type u_3} [AddCommGroup X] [Module ℝ X] [AddCommGroup Y] [Module ℝ Y] (Bx : X →ₗ[ℝ] Y →ₗ[ℝ] ℝ) (F : Bifun U X) :
(dom₁ fun (p : U × Y) => bracket Bx F p.1 p.2) = domBifun F

The first effective domain of the lower bracket ⟨Fu, y⟩ is dom F: the bracket is -∞ exactly where the slice F u is identically +∞, uniformly in y (domConcave_bracket).

The support function does not see the relative interior: δ*(· | ri C) = δ*(· | C) for convex C, since it does not see closures and cl (ri C) = cl C.

The relative interior of a projection: for a convex S ⊆ U × X that of the projection on X is the union, over u in the relative interior of the projection on U, of the relative interiors of the slices of S.

theorem Tdaf.ConvexAnalysis.supportFn_biUnion {E : Type u_1} {F : Type u_2} [AddCommGroup E] [Module ℝ E] [AddCommGroup F] [Module ℝ F] {ι : Type u_3} (B : E →ₗ[ℝ] F →ₗ[ℝ] ℝ) (s : Set ι) (t : ι → Set E) (y : F) :
supportFn B (⋃ i ∈ s, t i) y = ⨆ i ∈ s, supportFn B (t i) y

The first effective domain of any K ∈ Ω (F) is dom F, an identification the book makes silently. cl₂ does not move dom₁, and on Ω (F) it is constant at the lower bracket, whose dom₁ is dom F because ⟨Fu, y⟩ = -∞ exactly where F u ≡ +∞.

The support function of dom (F u) is the recession function of K (u, ·), for u in ri (dom₁ K) and F = bifunOfSaddle Bx K. Over ri (dom₁ K) the slice is closed proper convex and F u is its conjugate, and the support function of the domain of a conjugate is the recession function of the original.

The inner half: for u in ri (dom₁ K) the support function of the slice dom (F u) — where F = bifunOfSaddle Bx K — is the difference-quotient supremum sup_{y ∈ D} {K (u, y + w) - K (u, y)}. The support function of dom (K (u, ·)*) is the recession function of K (u, ·), which is in turn the supremum of the difference quotients over the effective domain.

The second effective domain of the upper conjugate is the projection of dom F on X: the upper conjugate is the Lagrangian of F, and dom₂_saddleLagrangian applies.

The support function of D*: that of the second effective domain of the conjugate saddle-function is

δ*(w | D*) = sup_{u ∈ ri C} sup_{y ∈ D} {K (u, y + w) - K (u, y)},

where C = dom₁ K and D = dom₂ K. D* is the projection of dom F on X; a support function does not see the relative interior, so it is the supremum over u ∈ ri C of the support functions of the slices dom (F u).

The same in recession-function form: the support function of D* is the pointwise supremum, over u ∈ ri C, of the recession functions of the slices K (u, ·).

The origin is an interior point of D* if and only if the convex functions K (u, ·), for u ∈ ri C, have no common direction of recession.

0 ∈ int D* iff δ*(w | D*) > 0 for every w ≠ 0, and the computation above evaluates δ*(w | D*) as the supremum of the (K (u, ·))∞ (w). Bx.SeparatingRight is what makes w ≠ 0 and ⟨·, w⟩ ≠ 0 the same condition; where a space is paired with itself it is automatic.

Existence of the saddle-value #

If the convex functions K (u, ·) for u ∈ ri C have no common direction of recession, then the saddle-value of K exists. The hypothesis turns into 0 ∈ int D*, hence 0 ∈ ri D*, and the origin in ri D* gives the saddle-value.

theorem Tdaf.ConvexAnalysis.lt_recessionFn_of_isBounded_dom {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] {f : E → EReal} (hne : (dom f).Nonempty) (hb : Bornology.IsBounded (dom f)) {w : E} (hw : w ≠ 0) :

A function with a nonempty bounded effective domain has no nonzero direction of recession: f0⁺ (w) > 0 for every w ≠ 0. If f0⁺ (w) ≤ 0 then f is nonincreasing along w, so the whole ray stays in dom f, and a ray in a direction w ≠ 0 leaves every ball.

If the second effective domain of K is bounded, the saddle-value of K exists. Over a compact D this is the classical minimax theorem.

For u ∈ ri C the slice K (u, ·) has effective domain exactly D, which is bounded, so it has no nonzero direction of recession and the previous criterion applies.