**Motivation**

Start with a locally finite simplicial complex X.

**Locally finite: **Each vertex is attached to only finitely many simplices.

**Why locally finite: **To make sure it is a CW complex. Notice that the closure-finite criteria require each cell of a CW complex to meet only finitely many other cells.

Hence we do not have a situation like this:

Suppose **K** is any finite subcomplex of **X**.

We are interested in the number of infinite connected components of X – K. Call that number n(K).

**Example: **

Consider the Real line (with usual triangulation). If we remove one vertex **I **(shown in the picture), then **n(I)** = 2 (as there are two open rays or two infinite connected components).

From \(\mathbb{R}^n, n \ge 2 \) onward, if you remove a finite subcomplex **K**, that can be enclosed within a (large enough) closed ball. Hence there can only one infinite connected component of \(\mathbb{R}^n – K , n \ge 2 \)

This number n(K) can be *different *for *different *K. Take for example the infinite binary tree.

Removing the top vertex, the number of **infinite **connected components are 2. But removing up to level 2, we will have 4 infinite connected components. And as we go down the levels, n(K) will grow.

So, we try with all possible such finite subcomplexes (possibly infinitely many of them) and check each time how many infinite connected components of X – K is there.

This is precisely what leads us to ends of X.

Ends of (X) = E(X) = sup n(K)

**Example: **\(E(\mathbb{R}) = 2, E(\mathbb{R^2}) = 1, E(T) = \infty, \textrm{T = infinite binary tree} \)

**Star of K: **If K is a (finite) subcomplex of a simplicial complex X, then st(K) or star of K is defined to be the interior of all simplices which meet the vertices in K.

Since K is locally finite st(K) is an open finite subset of K.

If two point \(v_1, v_2 \) in X – st(K) can be connected by a path in X – st(K) then they can be connected via an edge path in X – st(K). Hence they are in a path component of X – K. Hence it is sufficient to look into the 1-skeleton of X – K to find out n(K).

**Cohomology **

Recall that given a simplicial complex, one can create Chain complexes and Co-Chain Complexes.

A chain complex, \(C_0 (X) \) of vertices is simply the set of formal sums of vertices in X. In other words, if \(v_1, v_2, v_3 \) are vertices in X then \(v_1 + v_2 – v_3 \) is an element of \(C_0 (X) \). In fact it has all such finite formal sums.

Once the chain complex is defined, one may quickly define co-chain complexes. They are formal sums of homomorphisms from \(C_0(X) \to G \) where G is a suitable group. Usually \(G = \mathbb{Z}_2, \textrm {or} G = \mathbb{Z} \). It depends on what we are trying to achieve.

One may think of each member of 0th cochain complex as an assignment of values to each vertex in X.

In the above picture, we have assigned 0’s and 1’s to each vertex of the finite simplicial complex. This is **one** member of \(C^0(X) \). Each such assignment is nothing but a function from \(C_0(X) \to \mathbb{Z}_2 \).

We collect all such functions and their formal sum. They constitute \(C^0(X) \).

In the present context, we may think of \(\mathbb{Z}_2 \) as {off, on}. Whenever we pick a finite subcomplex K in the simplicial complex X, we are indirectly assigning 1 to each vertex in K and 0 to all the vertices in X – K. That assignment is indeed a function from the set of vertices to {0, 1} hence a member of the cochain complex.

Formally we say that the function has finite support; that is it is non-zero at only finitely many points and zero everywhere else.

Thus the member of \(C^0(X) \) which have finite support, are our algebraic tools for ‘picking’ finite subcomplexes K from simplicial complex X. In fact, each such cochain corresponds to one such ‘pick’.

Let \(C_f^0 (X) \) denote the subset of \(C^0 (X) \) with finite support.

Notice that similarly we can define \(C_f^1 (X) \). They are maps from (formal sums of) edges of X to \(\mathbb{Z}_2 \) which have 1 assigned to finitely many edges (and 0 elsewhere).

\(C_f^0 (X) \) maps inside \(C_f^1 (X) \) under the coboundary map.

**Why? **Suppose \(\phi \in C_f^0 (X) \) . Then \(\delta \phi (v_1, v_2) = \phi (v_2) – \phi (v_1) \) (Recall that the coboundary map assigns ‘difference’ of values at the vertices. This can be intuited as a change in height function: value at each edge is the difference of **height **at its vertices).

Clearly \(\phi (v_2) – \phi (v_1) \) can be non zero if and only if one of them is 0 and the other one is 1. But as \(\phi \in C_f^0(X) \) has finite support, it gives nonzero output only at finitely many vertices hence \(\phi (v_2) – \phi (v_1) \) can be non zero only at finitely many edges.

**‘Ends’ is the dimension of Cohomology**

Recall that cohomology groups of a space X are the homology groups of Cochain Complex.

In more simpler terms, consider the following Cochain complex:

\(… \overset{\delta_2} \Leftarrow C^1(X) \overset{\delta_1} \Leftarrow C^0(X) \overset{\delta_0} \Leftarrow 0 \)

Then \(H^0 (X) = \frac{ker (\delta_1)}{im (\delta_0)} = ker (\delta_1) \)

**Intuition: **Image of the lower level difference map contains lower level ‘difference’ data. By quotienting that out, we may focus only on higher level differences.

We previously constructed \(C_f^0 (X) \) that singled out the finite subcomplexes. (K’s). Next, we wish to turn our attention toward X – K. Hence it makes sense to ‘quotient out’ \(C_f^0 (X) \) from \(C^0 (X) \). Then we will be left out with those functions which assign 1 to infinitely many vertices.

**Define **\(C_e^0 (X) = \frac{C^0 (X)}{C_f^0 (X)} \)

Similarly define \(C_e^1 (X) = \frac{C^1 (X)}{C_f^1 (X)} \)

**Intuition: **Imagine **e **as **ends. **Functions in \(C_e^0 (X) \) flow 1’s upto ends (as 1’s appear infinitely many times at the vertices).

**Claim: \(dim_{\mathbb{Z}_2} H_e^0 (X) = E(X) \)**

It is not hard to see why this could be true. Afterall what is $latex H_e^0 (X) $ ? It is the collection of all those \(\phi \in C_e^0 (X) \) that maps to 0 of $latex C_e^1 (X) $.

More explicitly, these are 0-1assignments on vertices, which have 1 at infinitely many vertices, but non-zero differences at finitely many edges.

**Example: **

Again consider the real line. Assign 1 at all vertices leftward from U. Assign 0 W onward (to the right).

Note that this is a member of (an equivalence class of) \(C^0_e (X) \) as it has 1 at infinitely many vertices. Call it \(\phi \) .

But after applying the coboundary map \(\delta \) to \(\phi \), we get 0 at all edges except on UV. Clearly \(\delta \phi \) has finite support, hence is a member of \(C^1_f (X) \). Therefore it is in the equivalence class of 0 in \(C^1_e (X) \) (as we have quotiented out all edge-functions with finite support).

Note that U and V are the **crossover points **in the above example. When we talk about the \(ker \delta_1 \), we are seeking vertex-functions in \(C^0_e (X) \) we have finitely many crossover points (but infinitely many points with 1 assigned).

**Why? **Because if we *cut *at the crossover, we have an infinite component at least at *one side *of it (after all the infinitely many 1’s need to accommodated somewhere).

The recipe for finding the *finite crossover but infinitely flowing* vertex functions:

- Look at all vertex-functions that map to edge-functions with finite support (\(\delta^{-1} {C^1_f(X) } \))
- Quotient out those which are 1 (on) at finitely many vertices (they do not flow to the ends)
- Final result \(\frac{\delta^{-1} {C^1_f(X) }}{C^0_f(X)} \)

**The rest is easy! **

Each path component of X – K must bear the same value at each vertex. Hence we can create linearly independent vertex functions corresponding to each component of X – K.

But we have taken care of **all possible **K as we considered all cochains.

Hence the number of linearly independent *finite crossover but infinitely flowing *vertex maps provide the Ends of X.

**Good News: **This data is cohomological. Hence it is independent of the triangulation of the space. (It is a deep theorem of algebraic topology that cohomology groups are independent of triangulation; infact can be achieved without triangulation).