Build a log-concavity proof from its two ingredients
AutoSamplingTheory.TechnicalLemmas.Geometry.LogConcavity.logConcaveOn_of_concave_log · theorem · Teaching coverage
Statement
Let E be a real module, s⊆E, and f:E→ℝ. If f(x)>0 for every x∈s and log f is concave on s, then f is positive log-concave on s.
All objects and hypotheses
- E : Type* with [AddCommMonoid E] and [Module ℝ E]. These are the exact algebraic ambient structures; no topology, norm, measure or finite-dimensionality is assumed.
- s : Set E and f : E → ℝ.
- hpos : ∀ x∈s, 0<f x.
- hlog : ConcaveOn ℝ s (fun x => Real.log (f x)); this already includes convexity of s.
- {'term': 'Positive log-concavity', 'text': 'LC_s(f) means strict positivity of f at every point of s and concavity of log f on the convex domain s. No zero-valued points are included in this convention.', 'formula': '\\operatorname{LC}_s(f)\\iff(\\forall x\\in s,\\ f(x)>0)\\land\\operatorname{Concave}_s(\\log f).'}
- {'term': 'Convex combinations and Jensen inequalities', 'text': 'Throughout, x,y lie in the stated domain; λ,θ are nonnegative real weights with λ+θ=1. The Lean code often names these weights a,b, independently of the a,b coefficients in specialized potentials.', 'formula': 'z=\\lambda x+\\theta y,\\quad \\lambda,\\theta\\ge0,\\quad\\lambda+\\theta=1;\\qquad V(z)\\le\\lambda V(x)+\\theta V(y)\\text{ for convex }V.'}
- {'term': 'Geometry, not probability normalization', 'text': 'The module proves shapes and convexity properties of real-valued functions. It has no reference measure in its declarations. In particular, names containing normalized_density do not themselves prove normalization, and the quadratic prefactor is not certified as the integral of an arbitrary norm-based shape.', 'formula': '\\operatorname{LC}(Z^{-1}e^{-V})\\quad\\text{does not assert}\\quad Z=\\int e^{-V}\\,d\\mu\\quad\\text{or}\\quad \\int Z^{-1}e^{-V}\\,d\\mu=1.'}
Mathematical proof
1. Package positivity and log-concavity
The target predicate consists of precisely the two supplied facts. Put hpos in its first component and hlog in its second.
Corresponding Lean step
⟨hpos, hlog⟩
The identifiers refer to the assumptions or previously proved facts described in this step; the full original proof below supplies their exact context.
Lean statement · logConcaveOn_of_concave_log
Braces name inputs Lean can infer, and bracketed classes state the ambient structures listed above. The assumptions before the final colon are inputs; the expression after it is the exact property this declaration establishes. The angle brackets construct a proof of a conjunction from its two proofs. Neither positivity nor concavity is derived here; both are explicit inputs.
Braces mark parameters Lean can infer; square brackets request structures such as a measurable space or probability measure. Named hypotheses are mathematical premises, not facts established by this declaration. Section parameters are described in the mathematical hypotheses above; the module link retains their exact source context.
theorem logConcaveOn_of_concave_log {E : Type*} [AddCommMonoid E] [Module ℝ E]
{s : Set E} {f : E → ℝ}
(hpos : ∀ x ∈ s, 0 < f x)
(hlog : ConcaveOn ℝ s (fun x => Real.log (f x))) :
LogConcaveOn s fLean proof · logConcaveOn_of_concave_log
The angle brackets construct a proof of a conjunction from its two proofs. Neither positivity nor concavity is derived here; both are explicit inputs.
Braces mark parameters Lean can infer; square brackets request structures such as a measurable space or probability measure. Named hypotheses are mathematical premises, not facts established by this declaration. Section parameters are described in the mathematical hypotheses above; the module link retains their exact source context.
theorem logConcaveOn_of_concave_log {E : Type*} [AddCommMonoid E] [Module ℝ E]
{s : Set E} {f : E → ℝ}
(hpos : ∀ x ∈ s, 0 < f x)
(hlog : ConcaveOn ℝ s (fun x => Real.log (f x))) :
LogConcaveOn s f :=
⟨hpos, hlog⟩Scope and omitted-condition boundaries
- Constructor/reuse interface only.
- This documentation adds no Lean theorem, compilation evidence, source-equivalence verdict, or new source-fidelity certification.
Source and reuse
ASTIS parents called
Mathlib API called (external library)
- ConcaveOn
Mathematical sources
- Existing ASTIS declaration and exact proof — Directly read current local source; no Lean edit or fresh build.
- Existing curated module card — Local API/source-boundary memory; not independent primary textbook verification.
- ConcaveOn — Exact inspected Mathlib definition or theorem used by this exposition.
ASTIS prose is not a quotation or a source-equivalence certificate. Definitions and aliases are explained as constructions, not counted as new mathematical proofs.