Darboux's Theorem
Statement
Let be differentiable on (with one-sided derivatives at endpoints). If (or ), then there exists such that
Derivatives satisfy the Intermediate Value Property even when the derivative is not continuous. This distinguishes derivatives from arbitrary functions.
Visualization
A striking example: for , .
The derivative is for and .
Near , the term oscillates between and without converging, so is not continuous at . Yet achieves every value in near :
f'(x) near x=0 (schematic)
1 | . . . . ← peaks of cos(1/x) oscillation
|
0 |--+--+--+--+--+--+-- ← f'(0) = 0
|
-1 | . . . . ← troughs
+------------------------
x → 0
For the simpler case on : , , and every is achieved at :
| 0.5 | 0.25 | 0.5 ✓ |
| 1.0 | 0.50 | 1.0 ✓ |
| 1.5 | 0.75 | 1.5 ✓ |
Proof Sketch
- Reduce to minimum: Without loss of generality assume . Define , so .
- Attain minimum: is continuous on (differentiability implies continuity), so by the Extreme Value Theorem it attains its minimum at some .
- Interior point: Since , the function is decreasing at , so takes smaller values just to the right of ; hence . Similarly means is increasing at , so .
- Zero derivative: At the interior minimum , by Fermat's criterion , i.e., .
Connections
- Intermediate Value TheoremIntermediate Value TheoremA continuous function on a closed interval hits every value between its endpointsRead more → — Darboux's theorem is the IVT analogue for derivatives; the proof uses compactness, not IVT directly
- Mean Value TheoremMean Value TheoremThere exists a point where the instantaneous rate of change equals the average rate of changeRead more → — the MVT implies the derivative cannot skip values: if , the MVT applied to forces a critical point
- Extreme Value TheoremExtreme Value TheoremA continuous function on a compact set attains its maximum and minimum valuesRead more → — the proof uses the extreme value theorem to find an interior minimum of the auxiliary function
Lean4 Proof
import Mathlib.Analysis.Calculus.Darboux
/-- Darboux's theorem: if `f' a < m < f' b` then `f' c = m` for some interior `c`.
Wraps Mathlib's `exists_hasDerivWithinAt_eq_of_gt_of_lt`. -/
theorem darboux_theorem {f f' : ℝ → ℝ} {a b : ℝ} (hab : a ≤ b)
(hf : ∀ x ∈ Set.Icc a b, HasDerivWithinAt f (f' x) (Set.Icc a b) x)
{m : ℝ} (hma : f' a < m) (hmb : m < f' b) :
m ∈ f' '' Set.Ioo a b :=
exists_hasDerivWithinAt_eq_of_gt_of_lt hab hf hma hmb