Morera's Theorem
Statement
Morera's Theorem is the converse of Cauchy's theorem: Let be a continuous function on an open disk . If
for every closed rectangle whose interior is contained in , then is holomorphic on .
Equivalently: a continuous function that is conservative (zero integral on rectangles) is automatically differentiable.
Visualization
Verify for on any rectangle.
Take the rectangle with corners (traversed counterclockwise):
i -------- 1+i
| |
| |
0 -------- 1
Parameterize each side:
| Side | Path | Integral |
|---|---|---|
| Bottom: | , | |
| Right: | , | |
| Top: | , | |
| Left: | , |
Summing: . The total vanishes, consistent with being holomorphic.
A non-holomorphic function gives .
Proof Sketch
- Define along a rectilinear path (horizontal then vertical) from to .
- The vanishing rectangle integrals ensure is well-defined (path-independent within the disk).
- Compute directly: the difference quotient by continuity of .
- So is holomorphic, and the derivative of a holomorphic function is holomorphic, making holomorphic.
Connections
Morera's theorem pairs with the Cauchy Integral FormulaCauchy Integral FormulaA holomorphic function's value at any interior point is determined by its values on the boundary circle.Read more → as its converse: Cauchy says holomorphic zero integrals; Morera says zero integrals holomorphic. It is also used in Liouville's TheoremLiouville's TheoremA bounded entire function on ℂ must be constant — complex differentiability is far more rigid than real differentiabilityRead more → proofs via normal families: a locally uniform limit of holomorphic functions passes the Morera test and hence is holomorphic.
Lean4 Proof
import Mathlib.Analysis.Complex.HasPrimitives
open Complex
/-- **Morera's Theorem**: a continuous function on a disk whose integrals on
rectangles all vanish is holomorphic (has a primitive, hence is differentiable).
Uses `Complex.IsConservativeOn.isExactOn_ball` from Mathlib. -/
theorem morera_theorem {c : ℂ} {r : ℝ} {f : ℂ → ℂ}
(hcont : ContinuousOn f (Metric.ball c r))
(hcons : IsConservativeOn f (Metric.ball c r)) :
∃ F : ℂ → ℂ, ∀ z ∈ Metric.ball c r, HasDerivAt F (f z) z :=
(hcons.isExactOn_ball hcont).hasDerivAt