/* global React, Shape, Peek, Cite, ENT */ const { useState: useStateTh } = React; function TheoremPage({ peekPattern = "drawer" }) { const [peeked, setPeeked] = useStateTh(null); const open = (e) => setPeeked(e); const close = () => setPeeked(null); return (
{/* Top bar */}
← calculus / theorems
theorem thm.calc.chain_rule
{/* HERO */}
theorem differential calculus ★★★★★ — load-bearing

Chain rule

If g is differentiable at x and f is differentiable at g(x), then the composition f∘g is differentiable at x, and
(f ∘ g)′(x) = f′(g(x)) · g′(x).
hypothesis · H1
g is{" "} at x.
hypothesis · H2
f is at g(x).
{/* Right rail: quick refs */}
{/* PROOF teaser */}
§

Proof — sketch

pf.calc.chain_rule.0
Direct from the definition of the derivative as a limit.
3 of 7 steps shown
01
Write the difference quotient: [(f∘g)(x+h) − (f∘g)(x)] / h.
def.calc.derivative
02
Multiply and divide by Δg = g(x+h) − g(x), assuming Δg ≠ 0 nearby.
algebraic manipulation
03
The expression factors into [Δf / Δg] · [Δg / h], two difference quotients.
factoring
— 4 more steps · including the Δg=0 edge case —
{/* STATEMENT VARIANTS */}
§

Statement variants

5 forms
The same theorem speaks five different languages. Internalize the one that matches your problem; recognize the others when authors switch notation.
notation
form
when used
due
Lagrange
primary
(f ∘ g)′(x) = f′(g(x)) · g′(x)
single-variable, named functions
recognized
Leibniz
cancellation
dy/dx = (dy/du)(du/dx)
u-substitution, related rates
frontier
Newton
time derivative
ẏ = (dy/du) · u̇
classical mechanics, kinematics
recognized
Euler
operator
D(f ∘ g) = (Df ∘ g) · Dg
differential operators, ODE theory
review · 2d
Multi-variable
vector form
D(f ∘ g)(x) = Df(g(x)) ∘ Dg(x)
ℝⁿ → ℝᵐ, Jacobians
locked
{/* USES / USED BY */}
used in proofs of — 6
{[ ["thm", "Quotient rule", "thm.calc.quotient_rule"], ["thm", "Substitution rule (integration)", "thm.calc.substitution"], ["thm", "Implicit differentiation", "thm.calc.implicit_diff"], ["thm", "Inverse function derivative", "thm.calc.inverse_deriv"], ["thm", "Logarithmic differentiation", "thm.calc.log_diff"], ["lem", "Leibniz rule (n-th derivative)", "lem.calc.leibniz_n"], ].map(([k, n, id]) => (
{n} {id}
))}
used in problems — 24
{[ ["proc", "u-substitution walkthrough", "proc.calc.u_sub"], ["thm", "Related rates · ladder", "prob.calc.0312"], ["thm", "Implicit · circle tangent", "prob.calc.0418"], ["proc", "Differentiate sin(x²)", "prob.calc.0843"], ["thm", "Volume from cross-section", "prob.calc.1102"], ["thm", "20 more in queue", "—"], ].map(([k, n, id], i) => (
{n} {id}
))}
); } window.TheoremPage = TheoremPage;