Adjoint bifunctions and dual programs #
The adjoint of a convex bifunction F : U → X → EReal is the concave bifunction
(F* y)(v) = ⨅ (u, x) {F u x - ⟨x, y⟩ + ⟨u, v⟩},
and the concave program (P*) dual to (P) is "maximise F* 0 over V". Everything here follows
from one computation: F* is the conjugate of the graph function of F, negated and read at the
reflected point (-v, y). So F* is closed concave with no hypothesis on F, F** = cl F, and
the dual objective is the concave conjugate of -inf F. The same view shows that cl F is
computed slice by slice on ri (dom F), and that closing a strongly consistent program changes
neither its value, its solutions, nor its Kuhn–Tucker vectors.
Main definitions #
adjointBifun Bu Bx F,concaveAdjointBifun Bu Bx G— the adjoint of a convex bifunction, and of a concave one (the same formula with a supremum).ConcaveBifun,ClosedBifun,ImageClosedBifun— the graph function is concave, it is closed, the slicesF uare each closed;clBifun Fis the closure of the graph function.
Main results #
adjointBifun_eq_neg_conj_graphFn— the computation above;concaveFn_graphFn_adjointBifun,closedConcaveFn_graphFn_adjointBifun,concaveAdjointBifun_adjointBifun_eq_clBifun,properConcave_graphFn_adjointBifun_iff—F*is closed concave,F** = cl F, andF*is proper exactly whenFis (Theorem 30.1 in [^1]).adjointBifun_zero_eq_concaveConj— the dual objective as a concave conjugate;adjointBifun_zero_le— weak duality.mem_kuhnTucker_iff_adjointBifun_zero_eq— the Kuhn–Tucker vectors are the points where the dual objective attains the optimal value, with no normality needed.clBifun_apply_eq_clFn,infBifun_clBifun_eqand the twodomBifuninclusions — the closure of a bifunction, slice by slice (Theorem 29.4 in [^1]).
Implementation notes #
The sign flip is carried in the argument rather than in a reflected pairing: ⟨u, -v⟩ + ⟨x, y⟩ is
read as the pairing of (u, x) with (-v, y), so F* is conj at a reflected point and conj's
own lemmas apply verbatim. The two real terms are grouped inside one coercion, so no ∞ - ∞ can
arise, and the dual objective uses the concave conjugate, since g* ≠ -(-g)*. The closedness of
F* asks for IsContinuousPairing (prodPairing Bu Bx).flip rather than the un-flipped class:
closedFn_conj needs continuity on the side the conjugate lives on, and the un-flipped form would
demand a topology on U × X that this development never supplies.
References #
[^1]: R. T. Rockafellar, Convex Analysis, Princeton University Press, 1970, §§29-30.
The adjoint of a convex bifunction: (F* y)(v) = ⨅ (u, x) {F u x - ⟨x, y⟩ + ⟨u, v⟩}, a
concave bifunction from Y to V.
Equations
- Tdaf.ConvexAnalysis.adjointBifun Bu Bx F y v = ⨅ (p : U × X), F p.1 p.2 + ↑((Bu p.1) v - (Bx p.2) y)
Instances For
The computation everything here rests on: the adjoint is the conjugate of the graph function, negated and evaluated at a reflected point.
The adjoint is a closed concave bifunction #
A bifunction is concave when its graph function is.
Equations
Instances For
The reflection (y, v) ↦ (-v, y) that turns the adjoint into a conjugate.
Equations
- Tdaf.ConvexAnalysis.adjointSwap V Y = (-LinearMap.snd ℝ Y V).prod (LinearMap.fst ℝ Y V)
Instances For
The graph function of the adjoint is minus a conjugate composed with a linear reflection.
The adjoint of any bifunction is concave. No convexity, properness or closedness of F is
needed.
The same, packaged as a statement about bifunctions.
The same negated: -F* is a convex bifunction. This is the shape in which the concave
normality criteria consume the adjoint.
The adjoint of any bifunction is concave-closed. The conjugate is closed, and closedness survives the linear reflection.
The closure of a bifunction #
The closure of a bifunction: the bifunction whose graph function is the closure of that of
F. Two applications of the adjoint return exactly this.
Equations
Instances For
A bifunction is closed when its graph function is.
Equations
Instances For
The closure of a bifunction, slice by slice #
The effective domain of a bifunction is the projection of that of its graph function. Since ri
and closure commute with a linear image, the slice-by-slice closure is a fact about
graph F.
Relative interiors pass to slices: if (u, x) is a relative interior point of a convex set
of pairs, then x is one of the slice through u.
At a relative interior point of dom F the closure of a convex bifunction is computed slice by
slice, (cl F) u = cl (F u). A relative interior point of dom (graph F) is placed over u with
x in ri (dom (F u)), and both closures are then the same limit along a segment inside the
slice.
At a relative interior point of dom F the program (cl F) u has the same optimal value as
F u. A convex function and its closure have the same infimum; the content is the slice formula,
which makes (cl F) u a closure at all.
Closing a proper convex bifunction can only enlarge its effective domain.
Closing a proper convex bifunction cannot enlarge its effective domain beyond the closure of that domain.
A bifunction is image-closed when each F u is a closed function. This is all the
correspondence with concave-convex functions sees of F.
Equations
- Tdaf.ConvexAnalysis.ImageClosedBifun F = ∀ (u : U), Tdaf.ConvexAnalysis.ClosedFn (F u)
Instances For
A closed bifunction is image-closed: a slice of a closed function is closed. The converse
fails — image-closedness says nothing about the joint behaviour in (u, x).
The adjoint sees only the closure: (cl F)* = F*, which is conj_clFn on the graph
function.
Negated: -F* is a closed bifunction, with no hypothesis on F.
The second adjoint: F** = cl F #
The adjoint of a concave bifunction: the formula of adjointBifun with the infimum replaced
by a supremum. A concave G from Y to V has an adjoint from U to X.
Equations
- Tdaf.ConvexAnalysis.concaveAdjointBifun Bu Bx G u x = ⨆ (q : Y × V), G q.1 q.2 + ↑((Bx x) q.1 - (Bu u) q.2)
Instances For
The reflection is onto: (y, v) ↦ (-v, y) hits (v, y) at (y, -v).
The algebraic core of the biconjugation: the concave adjoint of F* is the biconjugate
of the graph function of F, the two reflections cancelling by reindexing.
The second adjoint is the closure: F** = cl F. The two adjoints compose to the
biconjugate of the graph function, and Fenchel–Moreau turns that into its closure. Compatibility of
the product pairing follows from compatibility of Bu and Bx.
Fixed-point form: F** = F for a closed convex bifunction.
The adjoint of a closed proper convex bifunction is finite somewhere. This is properness of
a conjugate, read through adjointBifun_eq_neg_conj_graphFn: F* is somewhere > -∞ exactly when
(graph F)* is somewhere < +∞.
The properness clause in full: for a closed convex F, the adjoint F* is a proper
concave bifunction exactly when F is proper. This is properness of a conjugate read through the
onto reflection (y, v) ↦ (-v, y); as there, closedness is used only for the direction "F proper
⇒ F* proper".
The dual objective #
The dual objective, unfolded: (F* 0)(v) = ⨅ u (⟨u, v⟩ + inf F u).
The dual objective is the concave conjugate of the concave function -inf F.
Weak duality: every value of the dual objective is at most the optimal value of (P),
with no hypothesis at all.
The half that holds without normality: the Kuhn–Tucker vectors of (P) are the points at
which the dual objective attains the optimal value of (P).
Weak duality in the form normality uses: the supremum of the dual objective never exceeds the
optimal value of (P).
Closing a strongly consistent program changes nothing #
Domain clause: closing a proper convex bifunction leaves the relative interior of its
effective domain alone. dom (cl F) is sandwiched between dom F and cl (dom F), and such a
sandwich has the same relative interior.
(cl P) is strongly consistent whenever (P) is.
The objective of (cl P) is the closure of that of (P): the slice formula at the origin.
(P) and (cl P) have the same optimal value.
Every optimal solution to (P) is one to (cl P). The inclusion is strict in general —
closing can create new minimisers.
The perturbation functions of (P) and (cl P) agree on a neighbourhood of the origin.
The slice formula supplies agreement only on ri (dom F), a relative neighbourhood; the two are
reconciled by the points outside aff (dom F), where both perturbation functions are +∞. Since
ri (dom F) is relatively open and dom (cl F) ⊆ cl (dom F) ⊆ aff (dom F), a small enough ball
around the origin meets no other kind of point.
(P) and (cl P) have the same Kuhn–Tucker vectors. Such a vector is a point where the dual
objective attains the optimal value, the adjoint does not see the closure, and strong consistency
equates the two optimal values.