Samplinglib
Lean gate not recorded for this source state main · 0e31a3cda412
ASTIS mathematical exposition

Every superlevel set of a positive log-concave function is convex

AutoSamplingTheory.TechnicalLemmas.Geometry.LogConcavity.LogConcaveOn.convex_superlevel · theorem · Teaching coverage

Statement

Let E be a real module, f:E→ℝ positive log-concave on s⊆E, and c∈ℝ. Then S_c={x∈s:c≤f(x)} is convex. No positivity assumption on c is needed.

\[S_c=\{x\in s:f(x)\ge c\},\qquad \operatorname{LC}_s(f)\Longrightarrow S_c\text{ convex for every }c\in\mathbb R.\]

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, f : E → ℝ, hf : LogConcaveOn s f.
  • c : ℝ arbitrary. In the proof x,y∈S_c and a,b≥0 with a+b=1; set z=ax+by.
  • {'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. Handle nonpositive thresholds directly

If c≤0, every point of s belongs to S_c because f is strictly positive there. For x,y∈S_c, convexity of s puts z in s and hence f(z)>0≥c. This proves the case c≤0 without taking log c.

\[c\le0\Longrightarrow S_c=s,\qquad f(z)>0\ge c.\]
Corresponding Lean step
by_cases hc : c ≤ 0
· intro x hx y hy a b ha hb hab
  have hmid_s := hf.convex_domain hx.1 hy.1 ha hb hab
  exact ⟨hmid_s, le_of_lt (lt_of_le_of_lt hc (hf.pos (x := a • x + b • y) hmid_s))⟩

hmid records domain membership of the convex combination, permitting the same positivity assumptions at that point.

2. For c>0, compare endpoint logarithms

In the remaining case c is positive. Both endpoints satisfy c≤f(x),f(y), so monotonicity of log gives log c≤log f(x),log f(y). The midpoint z lies in s by domain convexity and f(z)>0.

\[\log c\le\log f(x),\quad\log c\le\log f(y),\quad z\in s,\quad f(z)>0.\]
Corresponding Lean step
have hcpos : 0 < c := lt_of_not_ge hc
have hmid_s := hf.convex_domain hx.1 hy.1 ha hb hab
have hlogx := Real.log_le_log hcpos hx.2
have hlogy := Real.log_le_log hcpos hy.2

hmid records domain membership of the convex combination, permitting the same positivity assumptions at that point.

3. Form the weighted lower bound

Multiply the two endpoint inequalities by the nonnegative weights and add. Since a+b=1, the weighted sum of the two copies of log c is log c itself.

\[\log c=(a+b)\log c\le a\log f(x)+b\log f(y).\]
Corresponding Lean step
have hweighted := add_le_add (mul_le_mul_of_nonneg_left hlogx ha) (mul_le_mul_of_nonneg_left hlogy hb)
-- hconst uses a+b=1; hfloor rewrites this weighted bound.

The identifiers refer to the assumptions or previously proved facts described in this step; the full original proof below supplies their exact context.

4. Apply log concavity

The defining concavity inequality bounds the weighted endpoint logarithms by log f(z). Combining the bounds yields log c≤log f(z).

\[\log c\le a\log f(x)+b\log f(y)\le\log f(z).\]
Corresponding Lean step
have hconc : a * Real.log (f x) + b * Real.log (f y) ≤ Real.log (f (a • x + b • y)) := by
  simpa [smul_eq_mul] using hf.concaveOn_log.2 hx.1 hy.1 ha hb hab

The identifiers refer to the assumptions or previously proved facts described in this step; the full original proof below supplies their exact context.

5. Return from logarithms to the function values

Both c and f(z) are positive, so log is order-reflecting on these values. Thus c≤f(z); together with z∈s, this shows z∈S_c and proves convexity.

\[\log c\le\log f(z)\iff c\le f(z),\qquad z\in S_c.\]
Corresponding Lean step

exact (Real.log_le_log_iff hcpos (hf.pos (x := a • x + b • y) hmid_s)).mp (hfloor.trans hconc)

The two positivity proofs allow logarithms to reflect order; .mp selects the required implication.

Lean statement · convex_superlevel

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 proof splits on c≤0 to avoid using logarithms outside their positive domain. Membership hx contains two facts: hx.1 is x∈s, and hx.2 is c≤f x. The final .mp takes the forward implication of the log-order equivalence.

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.convex_superlevel {E : Type*} [AddCommMonoid E] [Module ℝ E]
    {s : Set E} {f : E → ℝ}
    (hf : LogConcaveOn s f) (c : ℝ) :
    Convex ℝ {x ∈ s | c ≤ f x}

Exact module and namespace context

Lean proof · convex_superlevel

The proof splits on c≤0 to avoid using logarithms outside their positive domain. Membership hx contains two facts: hx.1 is x∈s, and hx.2 is c≤f x. The final .mp takes the forward implication of the log-order equivalence.

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.convex_superlevel {E : Type*} [AddCommMonoid E] [Module ℝ E]
    {s : Set E} {f : E → ℝ}
    (hf : LogConcaveOn s f) (c : ℝ) :
    Convex ℝ {x ∈ s | c ≤ f x} := by
  by_cases hc : c ≤ 0
  · intro x hx y hy a b ha hb hab
    have hmid_s := hf.convex_domain hx.1 hy.1 ha hb hab
    exact ⟨hmid_s, le_of_lt (lt_of_le_of_lt hc (hf.pos (x := a • x + b • y) hmid_s))⟩
  · have hcpos : 0 < c := lt_of_not_ge hc
    intro x hx y hy a b ha hb hab
    have hmid_s := hf.convex_domain hx.1 hy.1 ha hb hab
    refine ⟨hmid_s, ?_⟩
    have hlogx : Real.log c ≤ Real.log (f x) :=
      Real.log_le_log hcpos hx.2
    have hlogy : Real.log c ≤ Real.log (f y) :=
      Real.log_le_log hcpos hy.2
    have hweighted :
        a * Real.log c + b * Real.log c ≤
          a * Real.log (f x) + b * Real.log (f y) :=
      add_le_add (mul_le_mul_of_nonneg_left hlogx ha) (mul_le_mul_of_nonneg_left hlogy hb)
    have hconst : a * Real.log c + b * Real.log c = Real.log c := by
      calc
        a * Real.log c + b * Real.log c = (a + b) * Real.log c := by ring
        _ = Real.log c := by rw [hab]; ring
    have hfloor : Real.log c ≤ a * Real.log (f x) + b * Real.log (f y) := by
      simpa [hconst] using hweighted
    have hconc :
        a * Real.log (f x) + b * Real.log (f y) ≤
          Real.log (f (a • x + b • y)) := by
      simpa [smul_eq_mul] using hf.concaveOn_log.2 hx.1 hy.1 ha hb hab
    exact (Real.log_le_log_iff hcpos (hf.pos (x := a • x + b • y) hmid_s)).mp
      (hfloor.trans hconc)

/-- Positive log-concave functions are quasiconcave: all superlevel sets are convex. -/

Exact module and namespace context

Scope and omitted-condition boundaries

  • This is non-strict convexity of domain-restricted superlevels; no strict concavity, boundedness or compactness is asserted.
  • 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)

  • Real.log_le_log
  • Real.log_le_log_iff
  • add_le_add
  • mul_le_mul_of_nonneg_left
  • lt_of_not_ge
  • le_of_lt
  • lt_of_le_of_lt
  • smul_eq_mul

Mathematical sources

ASTIS prose is not a quotation or a source-equivalence certificate. Definitions and aliases are explained as constructions, not counted as new mathematical proofs.