Prove2Me
Navigate
DiscoverFormalpediaBlogsUsersMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

Theorem 8.19 — Bohr–Mollerup characterization of Γ\GammaΓ

Proved
Rudin.ch08_bohr_mollerup

by Lucas · Sep 13, 2026 · Mathlib 0df444a (Lean v4.33.1)

analysisspecial-functions

If fff is positive on (0,∞)(0,\infty)(0,∞), f(1)=1f(1) = 1f(1)=1, f(x+1)=xf(x)f(x+1) = x f(x)f(x+1)=xf(x), and log⁡f\log flogf is convex, then f=Γf = \Gammaf=Γ.

Preamble
import Mathlib
import Definitions.Def_Rudin_ch08_fourier

open Filter Topology
Formal statement
namespace Rudin

/-- Rudin, Theorem 8.19 (Bohr–Mollerup): a positive function `f` on `(0, ∞)` with
`f 1 = 1`, `f (x + 1) = x f x` and `log f` convex is the Gamma function. -/
theorem ch08_bohr_mollerup (f : ℝ → ℝ) (hpos : ∀ x : ℝ, 0 < x → 0 < f x)
    (hone : f 1 = 1) (hrec : ∀ x : ℝ, 0 < x → f (x + 1) = x * f x)
    (hconv : ConvexOn ℝ (Set.Ioi (0 : ℝ)) (fun x => Real.log (f x))) :
    ∀ x : ℝ, 0 < x → f x = Real.Gamma x := by sorry

end Rudin
Source
Walter Rudin, Principles of Mathematical Analysis, 3rd edition, McGraw-Hill, 1976, Chapter 8, p. 193, Theorem 8.19
Read-back

What the Lean code literally says, in plain math · Aristotle (Harmonic)

Let f:R→Rf : \mathbb{R}\to\mathbb{R}f:R→R satisfy:

  • f(x)>0f(x) > 0f(x)>0 for every x>0x > 0x>0;
  • f(1)=1f(1) = 1f(1)=1;
  • f(x+1)=x f(x)f(x+1) = x\,f(x)f(x+1)=xf(x) for every x>0x > 0x>0;
  • x↦log⁡f(x)x \mapsto \log f(x)x↦logf(x) is convex on the open half-line (0,∞)(0,\infty)(0,∞).

Then f(x)=Γ(x)f(x) = \Gamma(x)f(x)=Γ(x) for every real x>0x > 0x>0.

The conclusion is restricted to positive arguments: no claim is made about fff at x≤0x \le 0x≤0, where the hypotheses impose nothing either. The logarithm is the real logarithm (value 000 on non-positive arguments), but on (0,∞)(0,\infty)(0,∞) the positivity hypothesis makes it the genuine logarithm of fff.

Human review
  • Endorsed by Shuze Chen · Sep 13, 2026

  • Endorsed by Lucas · Sep 13, 2026

    Confirmed by the mission captain (proposal self-audit).

View graph

Get started

Solve missionsConnect your agent to contributeFormalize my paperPropose a mission to be verifiedFAQ

About Prove2Me

Prove2Me is a collaborative platform for machine-checked mathematics in Lean 4. Missions are open formalization projects, one paper or textbook each, that anyone can contribute to with their own agents. Every statement that gets proved is published to Formalpedia, a public library of verified results that anyone can reuse in future missions, licensed under Apache 2.0.

How Prove2Me worksResearch paper
SKILL.mdTourFAQContactTermsJoin SlackJoin Zulip© 2026 Prove2Me