The
dual of a
vector space is one of those fairly simple things
that wasn't understood properly until relatively recently (this
century). It is used extensively in modern
mathematics.
Warning Although nothing below is really very deep
it is highly abstract (technically this is abstract nonsense)
so take it slowly and have a
mug of strong coffee handy.
Fix V a finite dimensional
vector space over a field k. (One can consider these ideas for
infinite dimensional vector spaces but I make this restriction for simplicity.)
Define V^{*} to be the set of all linear transformations
f:V>k.
The important thing to realise is that V^{*} is itself
a vector space called the dual vector space, or simply
dual space, of V. Here, the operations are given as follows

If a in k and f in V^{*} then
a.f in V^{*} is defined by a.f(v)=af(v),
for v in V.

If f,g are in V^{*} then f+g in
V^{*} is defined by (f+g)(v)=f(v)+g(v),
for v in V.
It is not difficult to check that these operations make
V^{*} into a
kvector space.
Even better not only can we apply duality * to a vector space
we can also apply it to a linear transformation. For if
h:V>W is a linear transformation then
we can associate h^{*}:W^{*}> V^{*}
defined by h^{*}(f)(v)=f(h(v)), for f in
W^{*}, and v in V.
The duality operation * is an example of a functor. It is a functor
from the category of vector spaces to itself.
If the abstraction hasn't killed you thus far (and there is plenty of time
for that later... :) then you might want to think about this a little
more concretely in terms of bases.
So suppose that e_{1},...,e_{n} is a basis
of V. How might we fashion a basis for V^{*}?
Well a typical vector in v in V can be written uniquely
as
v=a_{1}e_{1} + ... + a_{n}e_{n} (*)
so if
f is in
V^{*} then
f(v)=a_{1}f(e_{1}) + ... + a_{n}f(e_{n})
so that we can write down what
f does to a general element of
V once we know where it sends the basis vectors
e_{1},...,e_{n}.
Conversely, given
n values for the images of these basis vectors
there is a uniquely determined element of
V^{*}.
Let
e_{i}^{*}
in
V^{*} be the unique linear transformation that
vanishes on
e_{j}, for
j not
i and takes
the value 1 on
e_{i}.
Consider
then e_{1}^{*},...,e_{n}^{*}.
We will show that these elements are a basis of
V^{*} called the dual basis.

These linear maps are linearly independent. For if
b_{1}e_{1}^{*} + ... + b_{n}e_{n}^{*}=0
for some scalars b_{1},...,b_{n} then apply both sides
to a vector v as in (*) then we obtain
b_{1}e_{1}^{*}(v) + ... + b_{n}e_{n}^{*}(v)=0
and so
b_{1}a_{1} + ... + b_{n}a_{n}=0
Now we can take the a_{i} to be any values we like. For example
if we take a_{1}=1 and the others to be zero then the above
equation tells us that b_{1}=0. Similarly all the other
b_{i}=0 and we have linear independence.

These maps span. For, take an arbitrary f in
V^{*} and suppose that
f(e_{i})=a_{i}. Then it is easy to see that
f=
a_{1}e_{1}^{*} + ... + a_{n}e_{n}^{*}
This shows that V and V^{*} both have the same
dimension
and hence are isomorphic as vector spaces. But it turns out that
there is a deeper and more natural isomorphism between V and
V^{**}. This latter object is the dual vector space
of the dual vector space of V.
To explain this we associate to an arbitary vector v in V^{*}
an element of V^{**}. Define f_{v} in
V^{**} by f_{v}(g)=g(v), for g
in V^{*}. Then we have a linear tranformation
F_{V}:V>V^{**} defined by mapping v to f_{v}.
Theorem

F_{V} is an isomorphism

Further, whenever h:V>W is a linear transformation
then
h^{**}F_{V}=F_{W}h
This theorem means that not only is V isomorphic to
V^{**} but that this isomorphism works well
with linear transformation between vector spaces.
Proof:
F_{V} is injective for suppose that F_{V}(v)=0.
This means that g(v)=0 for all linear transformations. Applying this
to e_{i}^{*} we deduce that when we write
v as in (*) then a_{i}=0. Surjectivity is now clear
because we know that
e_{1}^{**},...,e_{1}^{**}
is a basis of V^{**}. It is obvious that
F_{V}(e_{i})=e_{i}^{**}.
It remains to prove the naturality property.
Well h^{**}F_{V} is a mapping from
V to W^{**} so we have to see what this map does to a vector
v in V. So consider h^{**}F_{V}(v)
Apply this to g in W^{*} to get
h^{**}(F_{V}(v))(g) This is the same as
F_{V}(v)(h^{*}(g)) which in turn
equals h^{*}(g)(v). This is simply g(h(v))
which equals F_{W}(h(v))(g), as needed.
What about infinite dimensional vector spaces? Well the isomorphism above
is only an injection in the more general case. To have any hope of an isomorphism
one has to have some sort of topology and make restrictions
on the linear transformations under consideration.