[ This is a continuation of the series on Basic Analysis: Sequence Convergence. ]

In this article, we’ll describe rigourously what it means to say things like . First, we define a **punctured neighbourhood** of a real number *a* to be a set of the form: (*a*-ε, *a*+ε) – {*a*}, i.e. the set for some positive ε.

For example, here’s a punctured neighbourhood of 3:

Definition. Suppose f(x) is a function defined on a punctured neighbourhood of a real number a. We write if:

- for any real ε>0, there is a real δ>0, such that if x is a real number satisfying 0<|x-a|<δ, we have |f(x)-L|<ε.

Pictorially, we have:

**Example 0**.

The limit is unique, i.e. if and , then *K*=*L*.

**Proof**.

If *K* ≠ *L*, let ε = |*K*–*L*|/2. By definition of limits,

- there exists δ such that for all
*x*satisfying 0 < |*x*–*a*| < δ, we have |*f*(*x*)-*K*| < ε; - there exists δ’ such that for all
*x*satisfying 0 < |*x*–*a*| < δ’, we have |*f*(*x*)-*L*| < ε.

Picking *x* such that 0 < |*x*–*a*| < min(δ, δ’), we find that both conditions are satisfied, so

,

clearly a contradiction. ♦

**Example 1**.

Let , defined on *x*≠2. Prove that .

**Proof**.

When *x*≠2, we have *f*(*x*) = (*x*-2)(*x*-3)/(*x*-2) = *x*-3. Hence, for each ε, just pick δ=ε. Now, whenever 0<|*x*-2|<δ=ε, we have |*f*(*x*)+1| = |*x*-2| < ε. By definition this means . ♦

**Example 2**.

Let *f*(*x*) = sgn(*x*), defined on *x*≠0, which takes *x* to +1 if *x*>0 and -1 if *x*<0. Prove that does not exist.

**Proof**.

Again we need to negate the definition of limits: to show that for every *L*, there exists an ε>0, such that for every δ>0, we can find *x* satisfying 0<|*x*|<δ but |*f*(*x*)-*L*| ≥ ε. [ Reason this out carefully if it’s not clear. ]

Indeed, regardless of *L*, pick ε=1/2. Now given any δ>0, we can pick

*x*= +δ/2 : this gives 0<|*x*|<δ, but*f*(*x*)=+1;*y*= -δ/2 : this gives 0<|*y*|<δ, but*f*(*y*)=-1.

We claim that |*f*(*x*)-*L*| ≥ ε or |*f*(*y*)-*L*| ≥ ε. If not, both |*f*(*x*)-*L*| and |*f*(*y*)-*L*| are less than ε,

which is absurd. Hence, *f*(*x*) does not approach *L* as *x*→0, regardless of what *L* is. ♦

## Properties of Limits

We have the following properties, which are similar to the case for the limit of a sequence.

Theorem. Let f(x), g(x) be functions defined on a punctured neighbourhood of a. Suppose and . Then:

- ;
- for some δ>0, B>0, we have ;
- ;
- if L≠0, then .

**Note**.

Property 2 differs from the case of a converging sequence, which is always bounded. Back then, we only needed to exclude finitely many terms of a sequence which lie outside a “safe zone”; here, we always have infinitely many points outside a “safe interval”.

In the remaining of this article, we’ll use the mnemonic “*P(x) holds when x is close to a*“, to mean “*there exists δ>0, such that whenever 0<|x-a|<δ, P(x) holds*“. Now, the definition of continuous limit can be shortened to:

- for each ε>0, |
*f*(*x*)-*L*|<ε when*x*is close to*a*.

Once again, if the statements “*P*(*x*) holds when *x* is close to *a*” and “*Q*(*x*) holds when *x* is close to *a*” are both true, then we can also confidently declare “(*P*(*x*) and *Q*(*x*)) hold when *x* is close to *a*“. In particular, we can repeat this finitely many times and concatenate finitely many properties together. *Just don’t do this for infinitely many statements*.

Now we’re ready to prove the above properties.

**Proof**.

For the first property, let ε>0. By definition of limits, we have |*f*(*x*)-*K*| < ε/2 when *x* is close to *a*, and |*g*(*x*)-*L*| < ε/2 when *x* is close to *a*. Thus, |*f*(*x*)-*K*| < ε/2 and |*g*(*x*)-*L*| < ε/2 both hold when *x* is close to *a*, which gives us

The second property says there exists *B*>0 such that |*f*(*x*)|<*B* for *x* close to *a*. This follows straight from the definition.

For the third property, write:

Let ε>0. Now we have:

- by the second property, there is a bound
*B*such that |*g*(*x*)|<*B*for*x*close to*a*; - by definition of limit, |
*f*(*x*)-*K*| < ε/(2*B*) for*x*close to*a*; - again by definition of limit, |
*g*(*x*)-*L*| < ε/(2*L*) for*x*close to*a*.

Putting it all together, |*f*(*x*)*g*(*x*) – *KL*| < ε for *x* close to *a*. We’ll leave the fourth property for the reader. ♦

As corollaries, we obtain:

- for any real
*c*; - ;
- for
*n*=1, 2, … ; if*K*≠0, this even holds for all integers*n*; - if
*L*≠0, then .

To prove the first statement, apply property 3 with the constant function *g*(*x*)=*c*. For the second statement, write *f*(*x*)-*g*(*x*) = *f*(*x*)+(-1)*g*(*x*). The third statement follows from properties 3 and 4 via successive multiplication/division. For the final statement, write *f*(*x*)/*g*(*x*) = *f*(*x*) × (1/*g*(*x*)) and apply properties 3 and 4 above.

**Example 3**.

Prove that if , then .

**Proof**.

Start from , which can be easily proven from ε-δ definition. Now, apply the above properties successively: , … . ♦

## More Limits

Often, we encounter functions which are only defined for *x*>*a*, in which case the limit approaches from only one side.

Definition. Let f(x) be defined on the open interval (a, b) for some b>a. We write if:

- for each ε>0, there exists a δ>0, such that whenever 0 < x-a < δ, we have |f(x)-L| < ε.
Likewise, suppose f(x) is defined on the open interval (c, a) for some c<a. We write if:

- for each ε>0, there exists a δ>0, such that whenever 0 > x-a > -δ, we have |f(x)-L| < ε.

Again, let’s use the mnemonics “*P*(*x*) holds when *x* is slightly more than *a*“, to mean there exists δ>0 such that *P*(*x*) holds for all 0 < *x*–*a* < δ. Likewise, “*P*(*x*) holds when *x* is slightly less than *a*” means there exists δ>0 such that *P*(*x*) holds for all 0 > *x*–*a* > -δ.

**Example 4**.

Suppose *f*(*x*) is defined on a punctured neighbourhood of *a*. Then:

- if , then ;
- conversely, if (i.e. equal left and right limits), then .

**Sketch of Proof**

This boils down to the fact that “*P*(*x*) holds for *x* close to *a*” is equivalent to saying that “*P*(*x*) holds for *x* slightly more than *a*” and “*P*(*x*) holds for *x* slightly less than *a*” are both true. We’ll leave it to the reader to fill in the details. ♦

Finally we’d also like to say , so there’s a need to talk about a limit “approaching infinity”. Then there’s the case where *x* itself can approach +∞ or -∞. All these cases multiply to a huge number of possibilities! We can summarise by saying:

= if for every there exists such that

whenever *x* satisfies , we have .

Here, the square brackets match each other while the curly brackets also match. So all in all, we get 15 definitions in a single statement.

But the vast number of possibilities can overwhelm us when we try to prove even the simplest properties (imagine writing this article 15 times, with only minor differences across the articles). One wonders if there’s a better approach: the answer is *yes*, by considering *topologies* on the domain and codomain and thinking in general terms of limits, but that’s another story for another day. For now, we’ll just proceed as usual, focusing on one or two special cases for each result.