The dual operations table #
Every operation on convex functions has a dual operation, and conjugacy exchanges the two.
| primal | dual | form |
|---|---|---|
a • f | smulRight (conj B f) a | unconditional |
smulRight f a | a • conj B f | unconditional |
mapLin A f | compLin (conj B f) A' | unconditional |
compLin g A | mapLin A' (conj B' g) | up to closure |
infConv f g | conj B f + conj B g | unconditional |
f + g | infConv (conj B f) (conj B g) | up to closure |
convFn f | ⨆ i, conj B (f i) | unconditional |
⨆ i, f i | convFn fun i => conj B (f i) | up to closure |
Each row appears in up to three forms. The unconditional half is an identity valid for
arbitrary functions; the rows marked "up to closure" hold for closed convex functions with a clFn
on the dual side; and the exact forms, in which the closure is dropped and the infimum attained,
are the consequences of IsExactSum and IsExactImage in Duality/Exact.lean. Nothing in this
file needs a constraint qualification.
Main results #
conj_ofEpi— the conjugate read off an epigraph-defining set.conj_smul,conj_smulRight— scalar multiplication is dual to right scalar multiplication.conj_mapLin— the image row, unconditional half;conj_compLin_eq_clFn_mapLinis the closure form.conj_infConv— the convolution row, unconditional half;conj_add_eq_clFn_infConvthe closure form.conj_sum_toInfConvFnis them-ary version,(f₁ □ ⋯ □ fₘ)* = ∑ fᵢ*, which says thatconj Bis a monoid homomorphism out ofInfConvFn E.conj_convFn,conj_convHullFn,conj_convFn₂— the convex-hull row, unconditional half;conj_iSup_eq_clFn_convFnthe closure form.
Implementation notes #
Most of the unconditional identities are proved by showing that both sides are ≤ (c : EReal)
under the same condition on c — that is, by comparing the two collections of affine minorants
rather than by manipulating suprema. The exception is conj_infConv, whose right-hand side is a
sum, which has no such characterisation.
Each closure form is the unconditional identity for the dual operation, conjugated once more and read through Fenchel–Moreau; that is why each needs compatible topologies on both spaces and closed convex inputs.
References #
- R. T. Rockafellar, Convex Analysis, Princeton University Press, 1970, §16.
Conjugates through the epigraph #
The conjugate reads off an epigraph-defining set. (ofEpi S)*(y) is the supremum of
⟨x, y⟩ - μ over the points (x, μ) of S. The infimum defining ofEpi S need not be attained,
so this is not a rearrangement of the supremum defining conj.
conj_ofEpi for the epigraph itself: the conjugate is a supremum over the epigraph.
Scalar multiplication #
Linear images #
The image row, unconditional half: (Af)* = f*A'. The conjugate of an image is the
inverse image of the conjugate under the transpose, with no hypothesis on f and no closure.
Contrast IsExactImage.conj_compLin, the other row, which needs a constraint qualification.
Infimal convolution #
The convolution row, unconditional half: (f □ g)* = f* + g*, with no hypothesis on f
and g. The reverse row, (f + g)* = f* □ g*, is IsExactSum.conj_add and needs a constraint
qualification.
The conjugate of δ(· | 0) is the zero function — the identity of □ goes to the identity
of +, which is what makes conjugacy a monoid homomorphism here.
The convolution row in its m-ary form: (f₁ □ ⋯ □ fₘ)* = f₁* + ⋯ + fₘ*,
unconditionally. The □-product being the AddCommMonoid sum of InfConvFn E, this says that
conj B is a monoid homomorphism from (E → EReal, □, δ(· | 0)) to (F → EReal, +, 0). No
properness is needed, and none may be assumed: □ does not preserve it.
Convex hulls of families #
The convex-hull row, unconditional half: (conv {fᵢ})* = sup {fᵢ*}, with no hypothesis on
the family. The empty family is not an exception: both sides are then ⊥.
The closure forms #
The second row of each pair carries a closure on the dual side: (fA)* = cl(A'f*),
(f + g)* = cl(f* □ g*), (sup fᵢ)* = cl conv{fᵢ*}.
The convolution row, closure form: (f + g)* = cl(f* □ g*) for closed convex f and g.
IsExactSum.conj_add is the same statement with the closure dropped.
The convex-hull row, closure form: (sup fᵢ)* = cl conv {fᵢ*} for a family of closed
convex functions.
The image row, closure form: (gA)* = cl(A'g*) for closed convex g.
IsExactImage.conj_compLin is the same statement with the closure dropped.