We begin with a vector space . All vector spaces, by definition, come equipped with a field, usually denoted by , this allows us to add and multiply vectors by scalars (the scalars get picked out of the field). It is without much effort at all that we can build maps from vector spaces to other vector spaces and these are called transformations (or vector space homomorphisms) and they’re usually expressed as , or more compactly by , signifying that the transformation maps vectors from the vector space to the vectors in the vector space , or more compactly by .
But what if we changed where the transformation took vectors? What if we replaced with the underlying field ? Well, it would look something like this: , or more compactly as . It’s easy to imagine that this map takes a vector and maps it to a number (fields are usually some sort of number, but sometimes they are not), which we would write as . These maps are not called transformations, they are called functionals. A functional which is also linear is called a linear functional and these are the basic ingredients required to talk about duals.
The term linear means that when the functional maps the sum of two vectors to some number in the field, say , then you get exactly the same number as if you had first: mapped the first vector and mapped the second vector, and then second: added the two resulting numbers together. The same goes for multiplication by a scalar from the field. In symbols, this means that and . See how this is meant to signify that it does not matter in which order you do your calculations, either you map the vector first and then add the results together, or you first add the vectors together and then map it.
As you can probably imagine, there are a great many ways one can build a linear functional. You’ve only got to satisfy linearity and you just have to make sure it can eat a vector and spit out a number (technically, the number needs to be from the same underlying field from the vector space). Now you have to collect up all these maps and put them in one big container (interestingly, this container is about the same size as the container holding all your vectors!). If you equip this collection of linear functionals with an addition and a scalar multiplication binary operation (technically functionals can be added and scalar multiplied like ordinary functions) then it actually satisfies all the properties of a vector space! We call this vector space of linear functionals the dual vector space, and it is denoted by , or more compactly as .