Learning Objectives
By the end of this section, you will be able to:
- State and apply the six limit laws (sum, difference, product, quotient, constant-multiple, power/root) to assemble new limits out of known ones.
- Recognise when direct substitution is legal and when it produces an indeterminate form such as .
- Choose the right algebraic trick — factor, rationalise, common denominator, or trigonometric identity — to resolve a 0/0 limit.
- Connect every limit law to the ε–δ definition from the previous section and understand why each law is a theorem, not a convention.
- Use Python and PyTorch to cross-check symbolic answers numerically and to compute 0/0 limits via autograd.
Why We Need Laws, Not Just ε–δ
"The ε–δ definition tells us what a limit is. The limit laws tell us how to compute one without starting from scratch every time."
Imagine you need to evaluate . You could run an ε–δ proof from scratch — pick any ε, chase δ through the algebra of a quadratic, verify the bound. That would take a page. Or you could argue:
- (known),
- (known),
- (trivial),
- so the whole thing equals .
That second path is one line long. It works because limits distribute over addition, multiplication, and the other algebraic operations — provided we can prove they do. The proofs come straight from ε–δ (we give a pattern in the pitfalls section); the payoff is that we never have to write them again.
The strategy of the chapter
Build a small library of known limits, then use the laws to glue them together. When the laws fail (indeterminate forms), drop down to an algebraic rewrite that restores a form where a law applies. Only the rare, stubborn case requires full ε–δ.
The Limit Laws
Suppose and both exist, and let k be any constant. Then each of the following limits exists and equals the stated value.
| Name | Statement | In plain English |
|---|---|---|
| Sum | lim [f + g] = L + M | Limit of a sum is the sum of the limits. |
| Difference | lim [f − g] = L − M | Same, but subtract. |
| Constant multiple | lim [k · f] = k · L | Pull constants outside the limit. |
| Product | lim [f · g] = L · M | Limit of a product is the product of the limits. |
| Quotient | lim [f / g] = L / M (M ≠ 0) | Quotient, provided the denominator's limit is not zero. |
| Power | lim [f]^n = L^n (n positive integer) | Powers pass through the limit. |
| Root | lim √[n]{f} = √[n]{L} (L ≥ 0 when n is even) | Roots too, with the usual sign caveat. |
| Composition (bonus) | lim f(g(x)) = f(M) if f is continuous at M | Continuity lets limits slide inside functions. |
A small polished formula for each law
These are theorems, not definitions
Every law is proven from the ε–δ definition. For the sum law, the proof splits ε into two halves (ε/2 for each function), chooses the smaller of the two resulting δ's, and uses the triangle inequality. The product and quotient laws follow the same pattern with a bit more bookkeeping. We trust the laws the way we trust the Pythagorean theorem — the proof was done once, and now we just use the result.
Interactive: Watch the Laws Combine
The picture below shows two reference curves and , plus the combined curve produced by whatever law you pick. Drag the limit point c, and watch the combined curve's value at c match exactly what the right-hand side of each law predicts.
- Pick the sum law. Slide c to 1. f(1) = 2, g(1) = 3, sum = 5. The predicted limit L = 5 shows up on the violet dot — that is exactly where the green curve crosses x = 1.
- Switch to product. At c = 1: f · g = 2 · 3 = 6. The green curve's height at x = 1 should equal 6.
- Try quotient at c = 1 — ratio 2/3 ≈ 0.667. Now slide c toward the point where g(c) = 0 (i.e. c = −0.5). The green curve blows up — a live demonstration that the quotient law needs .
- Shrink the distance |x − c| to 10⁻⁶ and watch the numerical approach table. The last row converges to the predicted L within float precision — that is the law at work.
Strategy 1 — Direct Substitution
The first thing to try, every time, is direct substitution: plug c into the formula and see what comes out. If the formula is continuous at c, you are done.
Continuous functions have easy limits
If f is any of the following and c is in its domain, then :
- Polynomials (like x³ − 2x + 5) — continuous everywhere.
- Rational functions (quotient of polynomials) — continuous wherever the denominator is non-zero.
- Roots, exponentials, logarithms, sines, cosines — continuous on their natural domains.
- Any finite combination (sum, product, composition) of the above.
Example. . Polynomials are continuous, so we plug in and finish.
Example. . The denominator 1 + x² is never zero, so the quotient law applies; both pieces are continuous, so plug in.
Substitution is the first move, not the only one
If substitution produces a genuine number, you are done. If it produces something like , , or — an indeterminate form — the laws have nothing direct to say. You must rewrite the formula first.
When Substitution Fails: 0 / 0
The most common failure is . Plugging in makes both numerator and denominator vanish simultaneously. This does not mean the limit is undefined — it means the quotient law's hypotheses are violated, so the law cannot be applied in that form. The fix: rewrite the expression so the offending factor cancels, then try substitution again.
| Form of 0/0 | Standard algebraic trick | Why it works |
|---|---|---|
| (x² − a²) / (x − a) | Factor: (x − a)(x + a) / (x − a) → (x + a) | A common (x − a) factor is hiding. Cancelling it removes the 0/0. |
| (√(x + a) − b) / x | Multiply top and bottom by the conjugate √(x + a) + b | Difference of square roots becomes a difference of squares, which simplifies. |
| (1/(x + a) − 1/a) / x | Combine the numerator over a common denominator first | The x in the numerator matches the x in the denominator and cancels. |
| (1 − cos x) / x² | Multiply by (1 + cos x) / (1 + cos x); use sin² + cos² = 1 | Turns a stubborn trig limit into something built from lim sin x / x = 1. |
Think of it as defusing, not solving
The function is fine; only the notation is sick. You are defusing the 0/0 by finding an equivalent expression that shares the same limit but has a different — continuous — formula. Once the expression is continuous at c, substitution finishes the job.
Interactive: 0 / 0 Strategy Lab
Pick a 0/0 problem and step through the algebraic transformation. The plot shows the original function with a hollow circle at the discontinuity and its continuous extension in green — the same value at every x except the offending point.
- Start with Factor & cancel. Step through the derivation. Notice that the blue dashed curve and the green solid curve are identical away from x = 2.
- Switch to Rationalize. The original curve looks almost constant near x = 0, because the slope is 1/6 — a small number. Shrink the probe distance and watch both columns converge to 0.16666…
- Try Common denominator. The numerator trick turns a composite fraction into a single clean rational expression.
- Trig identity is the hardest — multiply by (1 + cos x) / (1 + cos x), use the Pythagorean identity, then pull out the famous limit sin x / x = 1 (which we will prove in the Squeeze-Theorem section).
Worked Example: Factor and Cancel
Compute .
📝 Step-by-step walkthrough — try it yourself first
Step 1 — Try direct substitution first. Plug x = 2 into the original expression:
Indeterminate. The quotient law does not apply because the denominator's limit is 0. We must rewrite.
Step 2 — Factor the numerator. The numerator is a difference of squares:
Step 3 — Cancel the common factor. For x ≠ 2:
The cancellation is legal because x ≠ 2 inside the limit — we never divide by 0 in the process.
Step 4 — Apply the limit laws to the simplified form. The function x + 2 is a polynomial, so continuous, so substitute:
Step 5 — Numerical check. Evaluate the originalquotient at a few points near x = 2:
| x | (x² − 4) / (x − 2) | Distance to 4 |
|---|---|---|
| 1.90 | 3.90 | 0.10 |
| 1.99 | 3.99 | 0.01 |
| 1.999 | 3.999 | 0.001 |
| 2.001 | 4.001 | 0.001 |
| 2.01 | 4.01 | 0.01 |
| 2.10 | 4.10 | 0.10 |
Both sides close in on 4 at the same rate that x closes in on 2. The pattern |f(x) − 4| = |x − 2| confirms the limit — and, not coincidentally, it is exactly the ε–δ relationship δ = ε from the previous section.
Step 6 — Connect to geometry. The original function is a line x + 2 with a single point removed at x = 2. The limit is asking: "what height is the missing point at?". The neighbouring values scream the answer: 4.
Why the cancellation is allowed
The expressions and are not the same function: the first is undefined at 2, the second is not. But they agree everywhere except at x = 2, and a limit only cares about behaviour near x = 2, not at x = 2. So the two functions have the same limit at 2. This is the silver bullet behind every 0/0 cancellation.
A Decision Flowchart
Plug c into the formula. If the result is a plain number, that is the answer. Polynomials, rational functions with non-zero denominator, sines, cosines, exponentials at points in their domain all fall here.
Look for a hidden common factor. The four reliable tools are factor, rationalize, common denominator, trig identity. Cancel the offending factor, then return to Step 1.
Divide numerator and denominator by the dominant term (for rationals at infinity), or convert a product to a quotient, or use L'Hôpital's rule once derivatives are available (§2.9).
Oscillating or piecewise cases sometimes need the Squeeze Theorem (§2.7) or a direct ε–δ argument. These are last resorts — they always work, but they cost time.
Python: Verifying Limits Numerically
The laws give us the answer instantly; a short Python script gives us confidence that the answer is right. The pattern is always the same: evaluate the function at points that shrink toward c and watch the output stabilise.
What the output should look like
The table shows f(x) crossing 4 cleanly from both sides: at x = 1.999 the value is 3.999, at x = 2.001 it is 4.001. The |x − 2| distance and the |f(x) − 4| distance are equal for this particular function — a numerical fingerprint of the slope f'(2) = 4 we will extract in PyTorch next.
PyTorch: Limits as Derivatives
Here is a beautiful connection. The expression is the difference quotient for the function based at the point 2, because , so . The limit of a difference quotient is, by definition, the derivative. So the answer to our 0/0 limit is — and PyTorch's autograd delivers that in one call.
The big picture
Every 0/0 limit of the form is a derivative. The limit laws handle the ones where f is a clean polynomial or rational function — you can factor and cancel by hand. PyTorch handles arbitrarily complicated f's by recording the computation graph and asking for .backward(). The two approaches meet in the middle: the limit laws are the "by-hand" rules for derivatives, and autograd is the automated version.
Pitfalls and Fine Print
Pitfall 1 — Applying the quotient law when M = 0
The quotient law requires M ≠ 0. If M = 0 you cannot claim the law outputs L/0; you are back in indeterminate land. Writing "the limit is ∞" without checking whether L is zero too is a common sign error.
Pitfall 2 — Cancelling a factor that is not common
You can cancel from because the factor genuinely appears in both top and bottom. You cannot cancel it from unless you first factor the numerator into (x − 1)(x − 2). Always factor before you cancel.
Pitfall 3 — Forgetting the domain restriction
After cancellation the expression is defined at c, but it is still equal to the original only for x ≠ c. For the purposes of the limit this is fine; for graphing or further algebra you must remember the hole.
Pitfall 4 — Treating ∞ as a number
The laws apply to finite limits. Expressions like or are not governed by the sum or product law — they are separate indeterminate forms that require their own rewrites (usually via division, factoring out the dominant term, or L'Hôpital).
Why the sum-law proof works (sketch)
Given ε > 0, pick δ₁ so |x − c| < δ₁ forces |f(x) − L| < ε/2, and δ₂ so |x − c| < δ₂ forces |g(x) − M| < ε/2. Take δ = min(δ₁, δ₂). Then the triangle inequality gives . That is the whole proof — split, bound, triangle, combine. Every other law follows a variation on this recipe.
Summary
The limit laws turn the ε–δ definition into a practical tool. Given known limits L and M, every algebraic combination has a predictable limit — as long as the hypotheses (especially M ≠ 0 for quotients and L ≥ 0 for even roots) are met. When substitution produces an indeterminate form, a handful of algebraic tricks almost always rewrites the expression into something the laws can finish.
| Situation | Move |
|---|---|
| Polynomial or rational with denom ≠ 0 at c | Direct substitution |
| (x² − a²)/(x − a) type 0/0 | Factor and cancel |
| (√ — √)/x type 0/0 | Multiply by conjugate |
| Composite fraction over x | Combine over common denominator |
| (1 − cos x)/x² or similar trig | Multiply by conjugate / identity |
| ∞/∞ at infinity | Divide by dominant term |
| Oscillating or piecewise | Squeeze Theorem (§2.7) or ε–δ |
Key Takeaways
- The limit laws (sum, difference, product, quotient, constant-multiple, power/root) are theorems derived from ε–δ — not conventions. Each one has hypotheses that must be checked before use.
- Direct substitution is the first move; it works for every continuous function at every point in its domain.
- is not a dead end — it is a signal to rewrite. Factor, rationalize, common-denominator, and trig-identity handle the common cases.
- The silver-bullet argument: two expressions that agree everywhere except at c share the same limit at c. Cancelling a common factor produces exactly such a pair.
- Every limit is a derivative — limit laws and autograd are two views of the same underlying operation.
Coming Next: Some limits refuse to yield to the laws alone — they oscillate, or they hide between bounds that only a clever pair of inequalities can trap. The next section introduces the Squeeze Theorem, the tool that handles the stubborn cases and delivers one of the most famous limits in calculus: .