Why the Product Law Needs a Bound
Suppose \(f(x)\) approaches \(L\) and \(g(x)\) approaches \(M\) as \(x\) approaches \(a\). The product law says that \(f(x)g(x)\) approaches \(LM\). The key issue in proving this directly is that the change in a product depends on both factors: even a small change in one factor can matter if the other factor is large.
The epsilon-delta proof handles this by first showing that one function, such as \(f\), stays bounded near \(a\). Once that bound is available, we can make the change in \(g\) small enough to control its contribution to the product error. A second limit estimate controls the remaining contribution.
Precise Statement of the Product Law
Assume that \(f\) and \(g\) are both defined whenever \(0<|x-a|<r\) for some \(r>0\), and that \(L\) and \(M\) are finite real numbers. A limit \(\lim_{x\to a}f(x)=L\) means that for every \(\eta>0\), there is a \(\delta>0\) such that \(0<|x-a|<\delta\) implies \(|f(x)-L|<\eta\). The definition for \(g\) is the same with \(M\) in place of \(L\).
The proof will use the identity
Expanding the right-hand side gives \(f(x)g(x)-f(x)M+Mf(x)-ML=f(x)g(x)-LM\), so the identity is exact. Its value is that the first term contains the error \(g(x)-M\), while the second contains the error \(f(x)-L\). We can control both errors using the given limits, provided we also control the factor \(|f(x)|\).
Why a Function Near a Finite Limit Is Bounded
Since \(f(x)\to L\), apply the definition of the limit with the particular tolerance \(1\). There is a \(\delta_0>0\) such that \(0<|x-a|<\delta_0\) implies \(|f(x)-L|<1\). The triangle inequality then gives
This is the needed local bound. It is not a claim that \(f\) is bounded everywhere, nor that \(|f(x)|\leq |L|\). It says that within this chosen neighborhood, the values of \(f\) have magnitude less than the fixed number \(|L|+1\).
Complete Epsilon-Delta Proof
Let \(\varepsilon>0\) be given. We need to choose one \(\delta>0\) that makes the product error less than \(\varepsilon\). Use the limits of \(f\) and \(g\) with the tolerances shown below, as well as the preliminary bound just established.
From \(f(x)\to L\), choose \(\delta_0>0\) so that \(0<|x-a|<\delta_0\) implies \(|f(x)-L|<1\), and hence \(|f(x)|<|L|+1\).
Use \(g(x)\to M\) with tolerance \(\varepsilon/[2(|L|+1)]\), and \(f(x)\to L\) with tolerance \(\varepsilon/[2(|M|+1)]\). Both denominators are positive, including when a limit is zero.
Let \(\delta_g\) and \(\delta_f\) be the deltas supplied by those two limit estimates. Set \(\delta=\min\{r,\delta_0,\delta_g,\delta_f\}\), which is positive.
For \(0<|x-a|<\delta\), use the identity and the triangle inequality. The first term is less than \(\varepsilon/2\), and the second is also less than \(\varepsilon/2\).
For completeness, if \(0<|x-a|<\delta\), all three limit estimates apply. Thus \(|f(x)|<|L|+1\), \(|g(x)-M|<\varepsilon/[2(|L|+1)]\), and \(|f(x)-L|<\varepsilon/[2(|M|+1)]\). Consequently,
In fact, the inequality is strict at the conclusion: the first term in the sum is strictly less than \(\varepsilon/2\), and the second is at most \(\varepsilon/2\). Therefore \(|f(x)g(x)-LM|<\varepsilon\), as required by the definition of the limit. This proves the product law.
Worked Examples: Carrying Out the Estimates
Worked Example: Two Nonzero Limits
Let \(f(x)=x+1\) and \(g(x)=2x-1\), with \(x\to1\). Directly, \(f(x)\to2\) and \(g(x)\to1\), so the proposed product limit is \(2\cdot1=2\). We will verify the epsilon-delta estimate for \(\varepsilon=0.1\).
Here \(L=2\) and \(M=1\). To bound \(f\), note that \(|f(x)-2|=|x-1|\). Thus \(|x-1|<1\) gives \(|f(x)-2|<1\), and so \(|f(x)|<3\). We can take \(\delta_0=1\).
For the \(g\)-error, the proof uses tolerance \(0.1/[2(|L|+1)]=0.1/6=1/60\). Since \(|g(x)-1|=|2x-2|=2|x-1|\), it is enough to require \(|x-1|<1/120\). For the \(f\)-error, the required tolerance is \(0.1/[2(|M|+1)]=0.1/4=1/40\). Since \(|f(x)-2|=|x-1|\), it is enough to require \(|x-1|<1/40\). Therefore choose \(\delta=\min\{1,1/120,1/40\}=1/120\).
If \(0<|x-1|<1/120\), the error identity gives
This checks the claimed product limit for the chosen tolerance. The target also agrees with direct substitution into the factors: \(f(1)g(1)=(1+1)(2-1)=2\).
Worked Example: A Zero Limit
Let \(f(x)=x+1\) and \(g(x)=x-2\), with \(x\to2\). The factor limits are \(L=3\) and \(M=0\), so the proposed product limit is \(0\). Take \(\varepsilon=0.2\).
For the preliminary bound, \(|f(x)-3|=|x-2|\), so \(\delta_0=1\) ensures \(|f(x)|<4\). The tolerance for \(g(x)-M\) is \(0.2/[2(|L|+1)]=0.2/8=1/40\). Since \(|g(x)-0|=|x-2|\), choose \(\delta_g=1/40\). The tolerance for \(f(x)-L\) is \(0.2/[2(|M|+1)]=0.2/2=0.1\), so \(\delta_f=0.1\). Take \(\delta=\min\{1,1/40,0.1\}=1/40\).
When \(0<|x-2|<1/40\), the second term in the product error identity vanishes because \(M=0\). Therefore
Thus the product error is less than the prescribed \(\varepsilon\). Substitution into the factors gives \(f(2)g(2)=3\cdot0=0\), matching the limit proved by the estimate.
Worked Example: A Negative Limit
Let \(f(x)=2x-1\) and \(g(x)=1-x\), with \(x\to2\). The factor limits are \(L=3\) and \(M=-1\), giving the target product \(LM=-3\). Let \(\varepsilon=0.3\).
We have \(|f(x)-3|=2|x-2|\), so \(|x-2|<1/2\) makes \(|f(x)-3|<1\), and hence \(|f(x)|<4\). Take \(\delta_0=1/2\). The tolerance for \(g(x)-M\) is \(0.3/[2(3+1)]=0.3/8=3/80\). Since \(|g(x)-(-1)|=|2-x|=|x-2|\), take \(\delta_g=3/80\). The tolerance for \(f(x)-L\) is \(0.3/[2(1+1)]=0.3/4=3/40\). Since \(|f(x)-3|=2|x-2|\), take \(\delta_f=3/80\). Thus \(\delta=\min\{1/2,3/80,3/80\}=3/80\).
For \(0<|x-2|<3/80\), the bounds give
The estimate handles the negative value of \(M\) through \(|M|=1\). As a final check, \(f(2)g(2)=(4-1)(1-2)=3(-1)=-3\), the claimed product.
A Common Mistake: Assuming a Bound Without a Neighborhood
A tempting but invalid step is to write \(|f(x)|\leq |L|\) merely because \(f(x)\to L\). A limit does not say that every nearby function value has magnitude at most the magnitude of its limit. For example, if \(f(x)=x+1\) and \(x\to1\), then \(L=2\), but \(f(1.1)=2.1>2\). The asserted bound fails even for an input close to \(1\).
Another error is to use a local bound without ensuring that the final \(\delta\) keeps \(x\) inside the neighborhood where the bound holds. The correction is to first choose \(\delta_0\) using \(|f(x)-L|<1\), derive \(|f(x)|<|L|+1\), and then include \(\delta_0\) in the minimum defining the final \(\delta\). That makes every estimate valid for the same \(x\).
Check Your Understanding
Use the product-law proof and its estimates to answer the following questions.
- What identity splits \(f(x)g(x)-LM\) into terms involving the two factor errors?
- How does the condition \(|f(x)-L|<1\) give a bound for \(|f(x)|\)?
- Why are the tolerances divided by quantities involving \(|L|+1\) and \(|M|+1\)?
- Why must the final \(\delta\) include the delta used to bound \(f\)?
- In the proof, what happens to the second error term when \(M=0\)?