The algebra of bifunctions #
The adjoint of a convex bifunction generalizes the adjoint of a linear transformation. This file generalizes the rest of the linear algebra — addition, scalar multiplication, application to a vector, composition, the inner product — and describes how each behaves under taking adjoints.
| operation | here | linear-algebra analogue |
|---|---|---|
F₁ □ F₂ | infConvBifun | A₁ + A₂ |
H₁ ⊡ H₂ | infConvFstBifun | the same, in the first variable |
Fλ | smulRightBifun | λ A |
Ff | imageBifun | A x |
GF | compBifun | B ∘ A |
F⁎, F⁎* | inverseBifun, lowerAdjointBifun | A⁻¹, (A⁻¹)* |
⟨f, g⟩ | fenchelSup / fenchelInf / HasFenchelPairing | ⟨x, y⟩ |
Main results #
- Sums and scalar multiples —
adjointBifun_infConvBifun:(F₁ □ F₂)* = F₁* □ F₂*, the right side a supremal convolution (supConvBifun) of concave bifunctions, withbracket_infConvBifunthe bracket identity behind it; andadjointBifun_smulRightBifun,(Fλ)* = F*λforλ > 0. - The conjugate of an image —
conj_imageBifun,exists_conj_imageBifun_eq:(Ff)* = F⁎* f*, infimum attained (Theorem 38.4 in [^1]);conj_imageBifun_of_bracket_eq_topis the degenerate branchy ∉ dom F*, andclosedBifun_lowerAdjointBifunsaysF⁎*is closed for anyF. - The adjoint of a product —
inverseBifun_compBifun,adjointBifun_compBifun,lowerAdjointBifun_compBifun:(GF)⁎ = F⁎ G⁎,(GF)* = F* G*with the supremum attained, and(GF)⁎* = (G⁎*)(F⁎*)(Theorem 38.5 in [^1]);lowerAdjointBifun_infConvFstBifunis(H₁ ⊡ H₂)⁎* = H₁⁎* □ H₂⁎*. - The closed case — for closed proper convex arguments each operation is closed, its defining
extremum is attained, and the adjoint of the result is the closure of the corresponding
product or convolution (
closedBifun_compBifunand the_eq_clBifunresults). - The inner product —
fenchelSup_le_fenchelInfis weak duality, with no hypothesis;fenchelPairing_conjsays conjugation reverses⟨f, g⟩;conj_imageBifun_eq_fenchelPairing(⟨Ff, y⟩ = ⟨f, F* y⟩) andbracket_compBifun_eq_fenchelPairingmove an adjoint across it; andfenchelSup_imageBifun_lowerAdjointBifungives⟨Ff, g*⟩ = ⟨f, F* g*⟩(Theorem 38.7 in [^1]).
Implementation notes #
Rockafellar's hypotheses throughout are "ri (dom …) and ri (dom …) have a point in common",
whose conclusion is that (f + g)* is an exact infimal convolution of f* and g*. That
conclusion is taken here as the hypothesis, in the form IsExactSum — one instance per dual vector
where the book has a single relative-interior condition. It also demands that both summands be
proper, so it is stronger than the book's hypothesis, and needs no topology, no finite dimension.
lowerAdjointBifun Bu Bx F v y is defined as -(adjointBifun Bu Bx F y v); working through F⁎*
rather than a second, concave adjoint keeps the closed-case corollaries between convex
bifunctions and avoids needing a concave clBifun.
Rockafellar leaves ⟨f, g⟩ undefined when the two extrema differ, so they are kept apart here as
fenchelSup, fenchelInf and the predicate HasFenchelPairing that they agree. He also restricts
them to dom f ∩ dom g* to avoid ∞ - ∞; for proper f and proper concave g the excluded terms
are ⊥ on the sup side and ⊤ on the inf side, so the plain ⨆/⨅ used here agree with his.
References #
[^1]: R. T. Rockafellar, Convex Analysis, Princeton University Press, 1970, §38.
Infimal convolution of bifunctions #
Rockafellar's F₁ □ F₂: infimal convolution in the second variable, pointwise in the first.
This is the bifunction analogue of the sum of two linear transformations: if Fᵢ is the convex
indicator bifunction of Aᵢ, then F₁ □ F₂ is the convex indicator bifunction of A₁ + A₂.
Equations
- Tdaf.ConvexAnalysis.infConvBifun F₁ F₂ u = Tdaf.ConvexAnalysis.infConv (F₁ u) (F₂ u)
Instances For
The effective domain of F₁ □ F₂ is dom F₁ ∩ dom F₂.
No hypothesis at all is needed: dom (f □ g) = dom f + dom g is unconditional, and a sum of sets
is nonempty exactly when both summands are.
The linear map ((u, x), y) ↦ (u, x - y), the left half of the change of variables that turns
a partial infimal convolution into a partial minimisation.
Equations
- Tdaf.ConvexAnalysis.infConvSubLeft U X = (LinearMap.fst ℝ U X ∘ₗ LinearMap.fst ℝ (U × X) X).prod (LinearMap.snd ℝ U X ∘ₗ LinearMap.fst ℝ (U × X) X - LinearMap.snd ℝ (U × X) X)
Instances For
The linear map ((u, x), y) ↦ (u, y), the right half of the same change of variables.
Equations
- Tdaf.ConvexAnalysis.infConvSubRight U X = (LinearMap.fst ℝ U X ∘ₗ LinearMap.fst ℝ (U × X) X).prod (LinearMap.snd ℝ (U × X) X)
Instances For
The graph function of F₁ □ F₂ is a partial minimisation of a convex function on
(U × X) × X: the infimum formula for □, read jointly in (u, x).
An infimal convolute of convex bifunctions is convex.
F₁ □ F₂ is a partial infimal convolution of the graph functions, so this is
convexFn_iInf_right applied to the sum of the two graph functions after the linear change of
variables ((u, x), y) ↦ ((u, x - y), (u, y)).
The bracket of an infimal convolute is the sum of the brackets,
⟨(F₁ □ F₂) u, x*⟩ = ⟨F₁ u, x*⟩ + ⟨F₂ u, x*⟩.
This is conj_infConv, the unconditional identity (f □ g)* = f* + g*, read slice by slice; no
hypothesis is needed, and Rockafellar's convention ∞ - ∞ = -∞ is EReal's own ⊤ + ⊥ = ⊥.
The adjoint of an infimal convolute #
The concave analogue of infConvBifun: (G₁ □ G₂) y = G₁ y □ G₂ y, with the supremal
convolution in the second variable. Rockafellar writes □ for both, the orientation of the
bifunction deciding which is meant.
Equations
- Tdaf.ConvexAnalysis.supConvBifun G₁ G₂ y = Tdaf.ConvexAnalysis.supConv (G₁ y) (G₂ y)
Instances For
The adjoint of an infimal convolute is the supremal convolute of the adjoints,
(F₁ □ F₂)* = F₁* □ F₂*, one dual vector at a time.
The proof is the concave conjugate of a sum, applied to the two concave functions u ↦ ⟨Fᵢ u, y⟩:
the adjoint at y is their concave conjugate, and the bracket of F₁ □ F₂ is their sum. The
two properness fields of IsExactSum say that neither u ↦ ⟨Fᵢ u, y⟩ takes the value +∞, which
is Rockafellar's branch condition y ∈ dom F₁* ∩ dom F₂*; the exactness field is what his
relative-interior condition supplies.
The adjoint of an infimal convolute, as an identity of bifunctions rather than pointwise.
The image of a convex function under a bifunction #
Prod.swap as a linear map.
Equations
- Tdaf.ConvexAnalysis.swapLin E G = (LinearMap.snd ℝ E G).prod (LinearMap.fst ℝ E G)
Instances For
Rockafellar's Ff, the image of a convex function under a convex bifunction:
(Ff)(x) = ⨅ u, f u + (Fu)(x).
When F is the convex indicator bifunction of a linear map A, this is the image mapLin A f.
Equations
- Tdaf.ConvexAnalysis.imageBifun F f x = ⨅ (u : U), f u + F u x
Instances For
The image of a concave function under a concave bifunction: the mirror of imageBifun, with
the infimum replaced by a supremum. Rockafellar's Gg for concave G and g.
Equations
- Tdaf.ConvexAnalysis.concaveImageBifun G g x = ⨆ (u : U), g u + G u x
Instances For
The image of a convex function under a convex bifunction is convex on X.
(u, x) ↦ f u + (Fu)(x) is convex on U × X, and Ff is its image under the projection
(u, x) ↦ x.
Rockafellar's F⁎*: the adjoint of the inverse of F, a convex bifunction from V to Y.
It is the reflected negative of the adjoint, (F⁎* v)(y) = -(F* y)(v); that identity is
lowerAdjointBifun_eq_concaveAdjointBifun, and it is the reason F⁎* needs no separate
construction.
Equations
- Tdaf.ConvexAnalysis.lowerAdjointBifun Bu Bx F v y = -Tdaf.ConvexAnalysis.adjointBifun Bu Bx F y v
Instances For
F⁎* really is the adjoint of the inverse bifunction F⁎: the concave adjoint of F⁎,
taken for the flipped pairings, is the reflected negative of F*.
Both sides are the same extremum over U × X, read once through Prod.swap; the only arithmetic
is -(z + c) = -z + (-c) for a real constant c, which needs no side condition.
F⁎* is a convex bifunction, with no hypothesis on F: it is the negative of the concave
F*, read through the swap of the two factors.
The lower adjoint is closed #
F⁎* is a closed convex bifunction, with no hypothesis on F at all.
The adjoint F* is concave-closed for any F; F⁎* is its reflected negative, and closedness
carries across the reflection. This is what makes a bifunction exhibited as some H⁎* closed.
The conjugate of an image #
The conjugate of the image Ff is the supremum over u of the bracket ⟨Fu, y⟩ offset by
f u. This is the whole computational content of the formula for (Ff)*; what remains is
Fenchel's duality theorem applied to the concave function u ↦ ⟨Fu, y⟩.
The same supremum as conj_imageBifun_eq_iSup, turned around: when no bracket value is ⊤,
(Ff)*(y) is minus the infimum of f - ⟨F·, y⟩, which is the primal side of Fenchel's duality
theorem.
The conjugate of an image is the image under the lower adjoint, (Ff)* = F⁎* f*, in the
pointwise form (Ff)*(y) = ⨅ v, f*(v) - (F* y)(v).
The hypothesis is that Fenchel's duality theorem applies to f and to the concave function
u ↦ ⟨Fu, y⟩ — Rockafellar's "ri (dom f) and ri (dom F) have a point in common", as an
IsExactSum. It also carries Proper (-⟨F·, y⟩), i.e. his side condition y ∈ dom F*; the
degenerate branch is conj_imageBifun_of_bracket_eq_top.
The infimum defining (F⁎* f*)(y) is attained, under the hypothesis of
conj_imageBifun.
The degenerate branch of (Ff)* = F⁎* f*, y ∉ dom F*: if the bracket ⟨Fu, y⟩ is +∞
at some u where f is finite, both sides are +∞.
With the finiteness of f u₀ as an explicit hypothesis this is unconditional, where Rockafellar
reaches the case from a relative-interior hypothesis instead.
The image of a closed proper convex function #
The adjoint of a bifunction that is finite somewhere is nowhere ⊤: the infimum defining it
is bounded above by the single term at (u₀, x₀).
F⁎* never takes the value -∞ when F is finite somewhere. This is the hypothesis hbF of
conj_imageBifun, for the bifunction F⁎*.
(Ff)* = F⁎* f* packaged as an identity of functions rather than as a formula for the
values. The two sides differ only by a - b = a + (-b).
F⁎*⁎* = cl F, the biadjoint identity in the F⁎* packaging.
Rockafellar states the biadjoint as F** = cl F for the concave adjoint of F*; taking F⁎*
twice is the same computation with the two negations moved outside, so nothing concave is built.
(F⁎* f*)* = Ff for a closed proper convex F and a closed proper convex f — the
identity the rest of the closed case follows from.
This is conj_imageBifun applied to F⁎* and f*, whose own adjoint and conjugate are F and
f again. Rockafellar's ri (dom f*) ∩ ri (dom F⁎*) ≠ ∅ is the IsExactSum hypothesis.
The image Ff of a closed proper convex function is closed. It is a conjugate.
The infimum defining (Ff)(x) is attained, for a closed proper convex F and f. This is
exists_conj_imageBifun_eq read at F⁎* and f*.
(Ff)* = cl (F⁎* f*) for a closed proper convex F and f.
Ff is the conjugate of F⁎* f*, so (Ff)* is its biconjugate, which is its closure.
The inner product of a convex and a concave function #
The sup side of Rockafellar's inner product ⟨f, g⟩ of a convex f on E and a concave
g on the paired space F: sup_x {g*(x) - f(x)}.
Equations
- Tdaf.ConvexAnalysis.fenchelSup B f g = ⨆ (x : E), Tdaf.ConvexAnalysis.concaveConj B.flip g x - f x
Instances For
The inf side of ⟨f, g⟩: inf_y {f*(y) - g(y)}.
Equations
- Tdaf.ConvexAnalysis.fenchelInf B f g = ⨅ (y : F), Tdaf.ConvexAnalysis.conj B f y - g y
Instances For
Rockafellar's inner product ⟨f, g⟩ exists exactly when the two extrema agree; when they
do not, ⟨f, g⟩ is undefined.
Equations
Instances For
The value of Rockafellar's ⟨f, g⟩, represented by the inf side.
Only under HasFenchelPairing is this Rockafellar's inner product;
HasFenchelPairing.fenchelSup_eq is the statement that the sup side then agrees.
Equations
Instances For
Weak duality for the inner product: the sup side never exceeds the inf side.
No hypothesis at all; both ∞ - ∞ collisions are absorbed on the correct side, exactly as in
concaveConj_sub_conj_le_sub.
Conjugation reverses the inner product #
One of the two outer steps of the four-term chain below: the inf side of ⟨f*, g*⟩ is at most
-⟨f, g⟩ read on the sup side. It rests only on f** ≤ f.
The other outer step: -⟨f, g⟩ read on the inf side is at most the sup side of ⟨f*, g*⟩.
It rests only on g ≤ g**.
If ⟨f, g⟩ exists then so does ⟨f*, g*⟩.
The proof is the chain -⟨f, g⟩ ≤ ⟨f*, g*⟩_sup ≤ ⟨f*, g*⟩_inf ≤ -⟨f, g⟩, the middle link being
weak duality; when the two ends coincide all four terms do.
Conjugation reverses the inner product: ⟨f*, g*⟩ = -⟨f, g⟩.
An adjoint moves across the inner product #
⟨f*, g⟩ read on the sup side is minus ⟨f, g*⟩ read on the inf side.
This is pure sign bookkeeping, and it is the step that lets an adjoint move across the inner product.
The bracket ⟨Fu, y⟩ is below the concave biconjugate that ⟨f, F* y⟩ sees. This is
le_biconcaveConj after adjointBifun_eq_concaveConj_bracket, and it is what makes the existence
of ⟨f, F* y⟩ free.
The inner product ⟨f, F* y⟩ exists, its two extrema agreeing.
Weak duality gives one inequality for free; the other is conj_imageBifun together with
bracket_le_concaveConj_adjointBifun.
An adjoint moves across the inner product: ⟨Ff, y⟩ = ⟨f, F* y⟩.
The left-hand side is the bracket ⟨Ff, x*⟩, i.e. (Ff)*(x*); the right-hand side is the inner
product of the convex f with the concave function F* x*.
The image F* g* of a concave conjugate under the adjoint is nowhere ⊤, provided F is
finite at some (u₀, x₀) at which g is finite.
The bound is uniform in y because the two occurrences of ⟨x₀, y⟩ cancel: every term of the
supremum is bounded by F u₀ x₀ + ⟨u₀, v⟩ - g x₀.
The "by definition" identity behind ⟨Ff, g*⟩ = ⟨f, F* g*⟩: ⟨F⁎* f*, g⟩ on the sup side
is minus ⟨f, F* g*⟩ on the inf side.
Both unwind to the same double extremum over V × Y, term by term
⟨F* y, g*⟩ - f*(v) = (g*(y) + (F* y)(v)) - f*(v).
If f and F are both finite at some common u₀, the image Ff is not identically ⊤.
⟨F⁎* f*, g⟩ = -⟨Ff, g*⟩, the third equality of the chain below.
This is fenchelSup_conj_eq_neg_fenchelInf composed with conj_imageBifun.
Adjoints move across the inner product, ⟨Ff, g*⟩ = ⟨f, F* g*⟩.
Rockafellar's route is ⟨Ff, g*⟩ = ⟨f, F* g*⟩ = -⟨f*, F⁎ g⟩ = -⟨F⁎* f*, g⟩, the last step being
fenchelSup_imageBifun_lowerAdjointBifun and the other bridge conj_imageBifun. The book's
relative-interior hypothesis is carried by hex together with a common point (u₀, x₀) at which
f, F and g are all finite. The equation is stated between the two inf sides; each is
Rockafellar's inner product as soon as the corresponding pairing exists.
Right scalar multiplication #
Rockafellar's Fλ: right scalar multiplication of a bifunction,
((Fλ) u)(x) = λ (Fu)(λ⁻¹ x), applied slice by slice.
Equations
- Tdaf.ConvexAnalysis.smulRightBifun F l u = Tdaf.ConvexAnalysis.smulRight (F u) l
Instances For
The linear map (u, x) ↦ (l • u, x).
Equations
- Tdaf.ConvexAnalysis.scaleFst X l = (l • LinearMap.fst ℝ U X).prod (LinearMap.snd ℝ U X)
Instances For
The graph function of Fλ is a right scalar multiple of the graph function of F, read after
the shear (u, x) ↦ (λu, x). This is the linear change of variables (u, x, μ) ↦ (u, λx, λμ) of
Rockafellar's proof.
Fλ is a convex bifunction when F is, for every λ > 0.
The bracket scales with the bifunction:
⟨(Fλ) u, x*⟩ = λ ⟨Fu, x*⟩. It is the conjugation rule conj_smulRight, slice by slice.
The adjoint of a right scalar multiple: (Fλ)* = F*λ for λ > 0.
Right scalar multiplication commutes with taking adjoints, with no hypothesis beyond 0 < l: the
infimum defining ((Fλ)* y)(v) becomes the one defining ((F* y)λ)(v) under x ↦ l • x.
Composition of bifunctions #
Rockafellar's product GF of bifunctions: ((GF) u)(y) = ⨅ x, (Fu)(x) + (Gx)(y).
When F and G are the convex indicator bifunctions of linear maps A and B, GF is the
indicator bifunction of B ∘ A.
Equations
- Tdaf.ConvexAnalysis.compBifun G F u y = ⨅ (x : X), F u x + G x y
Instances For
The composition of concave bifunctions: the same formula with a supremum.
Equations
- Tdaf.ConvexAnalysis.concaveCompBifun G F y u = ⨆ (x : X), G y x + F x u
Instances For
The inverse of a product is the product of the inverses in the opposite order, with the
concave orientation: (GF)⁎ = F⁎ G⁎.
The linear map ((u, y), x) ↦ (u, x).
Equations
- Tdaf.ConvexAnalysis.compLeft U X Y = (LinearMap.fst ℝ U Y ∘ₗ LinearMap.fst ℝ (U × Y) X).prod (LinearMap.snd ℝ (U × Y) X)
Instances For
The linear map ((u, y), x) ↦ (x, y).
Equations
- Tdaf.ConvexAnalysis.compRight U X Y = (LinearMap.snd ℝ (U × Y) X).prod (LinearMap.snd ℝ U Y ∘ₗ LinearMap.fst ℝ (U × Y) X)
Instances For
A product of convex bifunctions is convex.
(u, x, y) ↦ (Fu)(x) + (Gx)(y) is convex on U × X × Y, and the graph function of GF is its
image under the projection (u, x, y) ↦ (u, y).
The adjoint of a product #
Rockafellar's f(x) = ⟨u*, F⁎x⟩ is the image Fℓ of the linear function ℓ u = ⟨u, u*⟩
under F. Both sides are ⨅ u, ⟨u, u*⟩ + (Fu)(x); the only step is -(-(Fu)(x)) = (Fu)(x).
The conjugate of ⟨u*, F⁎·⟩ is -(F* ·)(u*). This is the entry that turns Fenchel's dual
value into the adjoint of F; it is conj_imageBifun_eq_iSup read at a linear f.
The primal problem behind the adjoint of a product. ((GF)* z)(v) is the infimum over x
of the difference between the convex ⟨v, F⁎x⟩ and the concave ⟨Gx, z⟩.
This is the whole EReal content of Rockafellar's proof: the triple infimum defining
((GF)* z)(v) is reindexed as ⨅ x ⨅ u ⨅ y, and the inner double infimum splits because neither
half is -∞ — exactly the properness Fenchel's duality theorem will demand.
The adjoint of a product is the product of the adjoints, (GF)* = F* G*, the right-hand
side being the concave product, ((F* G*) z)(v) = ⨆ w, ((G* z)(w) + (F* w)(v)).
The proof is Rockafellar's: Fenchel's duality theorem applied to f(x) = ⟨v, F⁎x⟩ and
g(x) = ⟨Gx, z⟩, with adjointBifun_compBifun_eq_iInf for the primal side. His
ri (dom F⁎) ∩ ri (dom G) ≠ ∅ is again an IsExactSum — one instance per (z, v), since f and
g depend on them, where his single condition does not. Like conj_imageBifun it carries the
properness selecting the main branch; his degenerate branches z ∉ dom G* and v ∉ dom F⁎* are
where f or g fails to be proper.
The adjoint of a product in the F⁎* packaging: (GF)⁎* = (G⁎*)(F⁎*).
Inversion reverses the order twice, so the composite on the right is taken in the same order as
GF, and both sides are convex bifunctions — no concave product is needed. The two ≠ ⊤
hypotheses are what let the negation split across the sum.
The supremum defining ((F* G*) z)(v) is attained, under the hypothesis of
adjointBifun_compBifun.
Products of closed proper convex bifunctions #
F⁎* is somewhere < ⊤, for a closed proper convex F: that is properness of F*
(exists_adjointBifun_ne_bot) read through the reflection.
(G⁎* F⁎*)⁎* = GF for closed proper convex F and G — the identity the rest of the
closed case follows from.
This is lowerAdjointBifun_compBifun applied to the pair (F⁎*, G⁎*), whose own lower adjoints
are F and G again. Rockafellar's condition that ri (dom F*) and ri (dom G⁎*) have a point
in common is the IsExactSum hypothesis, one instance per (u, y).
A product of closed proper convex bifunctions is closed. It is a lower adjoint.
The infimum defining ((GF)u)(y) is attained, for closed proper convex F and G. This
is exists_adjointBifun_compBifun_eq read at F⁎* and G⁎*.
(GF)* = cl (F* G*) for closed proper convex F and G, in the F⁎* packaging
(GF)⁎* = cl (G⁎* F⁎*).
GF is the lower adjoint of G⁎* F⁎*, so (GF)⁎* is that bifunction's double lower adjoint,
which is its closure. Rockafellar's cl (F* G*) is this with the two negations moved outside.
Infimal convolution in the first variable #
Infimal convolution of bifunctions in the first variable, pointwise in the second:
(H₁ ⊡ H₂) v y = ⨅ {v₁ + v₂ = v}, H₁ v₁ y + H₂ v₂ y.
infConvBifun convolves in the second variable; this is its mirror, and it is the operation the
lower adjoints have to be combined by (lowerAdjointBifun_infConvFstBifun).
Equations
- Tdaf.ConvexAnalysis.infConvFstBifun H₁ H₂ v y = Tdaf.ConvexAnalysis.infConv (fun (w : V) => H₁ w y) (fun (w : V) => H₂ w y) v
Instances For
The linear map ((v, y), w) ↦ (v - w, y), the left half of the change of variables that turns
a first-variable infimal convolution into a partial minimisation.
Equations
- Tdaf.ConvexAnalysis.infConvFstLeft V Y = (LinearMap.fst ℝ V Y ∘ₗ LinearMap.fst ℝ (V × Y) V - LinearMap.snd ℝ (V × Y) V).prod (LinearMap.snd ℝ V Y ∘ₗ LinearMap.fst ℝ (V × Y) V)
Instances For
The linear map ((v, y), w) ↦ (w, y), the right half of the same change of variables.
Equations
- Tdaf.ConvexAnalysis.infConvFstRight V Y = (LinearMap.snd ℝ (V × Y) V).prod (LinearMap.snd ℝ V Y ∘ₗ LinearMap.fst ℝ (V × Y) V)
Instances For
The graph function of H₁ ⊡ H₂ is a partial minimisation of a convex function on
(V × Y) × V: the infimum formula for ⊡, read jointly in (v, y).
H₁ ⊡ H₂ is a convex bifunction, by the same partial-minimisation argument that makes
H₁ □ H₂ one.
The lower adjoint of a first-variable convolute #
The bracket that the lower adjoint conjugates: ⟨u, H⁎ y⟩ = ⨅ v, ((H v)(y) + ⟨u, v⟩).
The lower adjoint at a fixed u is an ordinary conjugate — of the bracket
y ↦ ⟨u, H⁎ y⟩. This is the identity the whole closed case for □ runs through.
The bracket of a first-variable convolute is the sum of the brackets: the unconditional
identity (f □ g)* = f* + g*, read in the first variable of a bifunction.
The lower adjoint turns a first-variable convolution into a second-variable one:
(H₁ ⊡ H₂)⁎* = H₁⁎* □ H₂⁎*.
This is the one new theorem the closed case for □ needs. Written φᵢ y = ⨅ v, (Hᵢ v y + ⟨u, v⟩),
the lower adjoint of Hᵢ at u is φᵢ*; φ = φ₁ + φ₂ for a first-variable convolute with no
hypothesis at all, and an exact conjugate of a sum turns (φ₁ + φ₂)* into the infimal convolution.
The hypothesis is Rockafellar's relative-interior condition in IsExactSum form, one per u.
Infimal convolutes of closed proper convex bifunctions #
(F₁⁎* ⊡ F₂⁎*)⁎* = F₁ □ F₂ for closed proper convex F₁ and F₂ — the identity the rest
of the closed case follows from.
This is lowerAdjointBifun_infConvFstBifun applied to the pair (F₁⁎*, F₂⁎*), whose own lower
adjoints are F₁ and F₂ again. Rockafellar's condition that ri (dom F₁*) and ri (dom F₂*)
have a point in common is the IsExactSum hypothesis, one instance per u.
An infimal convolute of closed proper convex bifunctions is closed. It is a lower adjoint, and a lower adjoint is closed with no hypothesis at all.
(F₁ □ F₂)* = cl (F₁* □ F₂*) for closed proper convex F₁ and F₂, in the F⁎*
packaging (F₁ □ F₂)⁎* = cl (F₁⁎* ⊡ F₂⁎*).
F₁ □ F₂ is the lower adjoint of F₁⁎* ⊡ F₂⁎*, so (F₁ □ F₂)⁎* is that bifunction's double
lower adjoint, its closure. The right-hand convolution is in the first variable, which is what
Rockafellar's F₁* □ F₂* becomes once the two negations are moved outside.
The inner products of a product of bifunctions #
A slice of a product is the image of a slice: (GF)u = G(Fu). Both sides are
⨅ x, (Fu)(x) + (Gx)(y), so this is rfl; it is what makes every statement about ⟨GFu, ·⟩ a
statement about an image, and hence a case of conj_imageBifun and its inner-product form.
The inner product ⟨Fu, G* z⟩ exists, its two extrema agreeing.
Rockafellar derives the hypothesis, ri (dom (Fu)) meets ri (dom G), from his condition on
ri (dom F⁎) ∩ ri (dom G) by a calculus of relative interiors that he leaves to the reader; here
it is the IsExactSum the proof actually consumes, one instance per (u, z).
⟨GFu, z⟩ = ⟨Fu, G* z⟩, an adjoint moving across the inner product at a slice.
This is conj_imageBifun_eq_fenchelPairing at the slice Fu, since (GF)u = G(Fu). The other
equality ⟨GFu, z⟩ = ⟨u, F* G* z⟩ needs a relative interior; it is
bracket_compBifun_eq_concaveBracket_concaveCompBifun in Bifunction/Cofinite.lean.