Extended-real-valued concave functions #
The concave counterpart of Tdaf/Analysis/Convex/Epigraph.lean, for g : E → EReal. Concavity is
defined geometrically, as convexity of the hypograph, exactly as convexity is defined by convexity
of the epigraph; -g appears only in the transfer lemmas. Rockafellar mixes the two theories
constantly from Part VI on, so the concave notions need first-class names rather than being spelled
ConvexFn (-g) at every use.
Sign transfer is not free on EReal, because negation does not distribute over addition:
-(⊥ + ⊤) = ⊤ while (-⊥) + (-⊤) = ⊥. This is why concaveFn_iff_le needs ∀ x, g x ≠ ⊤,
mirroring the ∀ x, f x ≠ ⊥ of convexFn_iff_le, while concaveFn_iff_forall_gt, which never
forms a sum of infinities, needs no hypothesis at all.
Main definitions #
hypo g— the hypograph ofg, a subset ofE × ℝ. Rockafellar writesepi gfor it, overloading the notation; we do not.domConcave g— the effective domain, the set whereg > -∞. This is notdom.ProperConcave g—gis finite somewhere and never⊤.restrictConcave s g—grestricted tos, extended by⊥.ConcaveFn g—gis concave, meaning thathypo gis convex.
Main results #
hypo_neg,epi_neg— hypograph and epigraph are exchanged by the reflection(x, μ) ↦ (x, -μ).concaveFn_iff_convexFn_neg— "gis concave when-gis convex", recovered as a theorem. WithdomConcave_eq_dom_negandproperConcave_iff_proper_negthis is the sign dictionary through which the concave theory is derived from the convex one.concaveFn_iff_forall_gt,concaveFn_iff_le— concavity as an inequality on values, strict and non-strict.ConcaveFn.convex_gt,ConcaveFn.convex_ge— superlevel sets of a concave function are convex.concaveOn_iff_concaveFn— the bridge to Mathlib'sConcaveOn.
References #
- R. T. Rockafellar, Convex Analysis, Princeton University Press, 1970, §30 for the concave conventions, §4 for the convex statements being mirrored.
Hypographs, domains, properness #
The hypograph of g : E → EReal, {(x, μ) | μ ∈ ℝ, μ ≤ g x} ⊆ E × ℝ. Rockafellar writes this
epi g, reusing the epigraph notation; we keep the two names apart. As with epi, the second
coordinate ranges over the reals.
Instances For
The hypograph of g is the vertical reflection (x, μ) ↦ (x, -μ) of the epigraph of -g. This
— not a definition — is Rockafellar's "g is concave when -g is convex", at the level of sets. It
holds for every g, with no side condition, because it involves no addition on EReal.
The effective domain of a concave function: the set where g > -∞. It is the projection of
the hypograph, domConcave_eq_fst_image_hypo.
Instances For
The concave effective domain of g is the convex effective domain of -g.
The mirror of dom_eq_fst_image_epi: domConcave g is the projection of hypo g on E,
with no hypothesis on g.
g is a proper concave function when it is finite somewhere and never takes the value ⊤;
equivalently, when -g is proper (properConcave_iff_proper_neg).
- domConcave_nonempty : (domConcave g).Nonempty
gis not identically⊥. gnever takes the value⊤.
Instances For
Rockafellar's own definition of properness for a concave function: g is proper exactly when
-g is.
g restricted to s and extended by ⊥ off s: the concave counterpart of restrict, which
extends by ⊤. The ⨆ formulation avoids a decidability hypothesis; restrictConcave_of_mem and
restrictConcave_of_notMem are the defining equations.
Equations
- Tdaf.ConvexAnalysis.restrictConcave s g x = ⨆ (_ : x ∈ s), g x
Instances For
Extension by ⊥ and extension by ⊤ correspond under negation.
Concave functions #
A function g : E → EReal is concave when its hypograph is a convex subset of E × ℝ. This
mirrors ConvexFn, and agrees with the definition by "-g is convex" through
concaveFn_iff_convexFn_neg.
The hypograph of a concave function is convex.
Instances For
The defining property of concavity, in the form in which it is used: a convex combination of two points of the hypograph lies in the hypograph.
Conversely, the combination property characterises concavity.
A function is concave exactly when its negative is convex. Like
hypo_neg, this needs no side condition: negation reverses only the order here, never a sum.
The forward direction of concaveFn_iff_convexFn_neg.
The mirror of ConcaveFn.convexFn_neg: a convex function has a concave negative.
Concavity as a strict inequality on values #
Concavity in strict inequalities. A function g : E → EReal is concave if and only if
g ((1 - λ) x + λ y) > (1 - λ) α + λ β whenever g x > α, g y > β and 0 < λ < 1. The strict
inequalities keep α and β real, so no ∞ - ∞ arises and no hypothesis on g is needed.
Concavity as an inequality on values #
For a function g that never takes the value ⊤ — equivalently, a function into
[-∞, +∞) — concavity is the familiar reversed inequality. The
hypothesis is what makes the right-hand side of the convex form negate to the left-hand side here:
on EReal, -(u + v) = -u + -v fails when one summand is ⊤ and the other ⊥.
Level sets and the effective domain #
The effective domain of a concave function is convex.
The hypograph of a real-valued function extended by ⊥, in the shape Mathlib's
concaveOn_iff_convex_hypograph expects.
Mathlib's ConcaveOn for a real-valued function on a set agrees with ConcaveFn for its
extension by ⊥; compare convexOn_iff_convexFn.