Prékopa's theorem: marginals of log-concave functions are log-concave
ProvedConvexOptimization.prekopa_marginal_log_concavePrékopa's theorem: marginals of log-concave functions are log-concave — the goal of this mission.
Let be measurable and log-concave, meaning and
and suppose the section is integrable for every . Then the marginal
is log-concave on .
Integrating out variables therefore preserves log-concavity — a closure property with no analogue for most shape constraints, and one that fails, for instance, for quasi-concavity. Its consequences run through applied probability: the marginals and the convolution of log-concave densities are log-concave (so sums of independent log-concave random variables stay log-concave), the cumulative distribution function of a log-concave density is log-concave, and the probability that a random convex constraint is satisfied is a log-concave function of the parameters — the fact that makes chance-constrained programming tractable.
Formalization Note Log-concavity is the mission's LogConcaveOn Set.univ predicate in its zero-permitting power form; the marginal is a Bochner integral ∫ y, f (x, y), and integrability of every section is an explicit hypothesis rather than a consequence, since no decay is assumed. Source: B&V §3.5.2, pp. 106–107; Prékopa (1973), proved here via the Prékopa–Leindler inequality applied to sections.
import Mathlib import Definitions.Def_LogConcaveOn open scoped RealInnerProductSpace ENNReal open MeasureTheory
theorem ConvexOptimization.prekopa_marginal_log_concave {n m : ℕ}
(f : EuclideanSpace ℝ (Fin n) × EuclideanSpace ℝ (Fin m) → ℝ)
(hf_meas : Measurable f)
(hf_lc : LogConcaveOn Set.univ f)
(hf_int : ∀ x : EuclideanSpace ℝ (Fin n),
Integrable (fun y : EuclideanSpace ℝ (Fin m) => f (x, y))) :
LogConcaveOn Set.univ
(fun x : EuclideanSpace ℝ (Fin n) =>
∫ y : EuclideanSpace ℝ (Fin m), f (x, y)) := by
sorry