How do you prove that the canonical map $C$ from a vector space $X$ to its second algebraic dual, $X^{**}$, is well defined? $C: X \to X^{**}$ is defined as $x \mapsto g_x$, where $g$ is a linear functional defined on $X^*$ and $f$ a linear functional of $X$. $g(f) = g_x(f)=f(x)$ (fixed $x$ and variable $f$).
Attempted proof: 
Let $x=y$
$\implies f(x) = f(y)$
$\implies g_x(f)=g_y(f)$
$\implies C x= Cy$.
$f$ and $g$ are assumed to be well defined. Is this right?
 A: From what you've written, I think you have the right idea of what the canonical map does. I think a change of notation might make it easier to see that the canonical map is well-defined. Afterward, I'll give a general (but maybe too abstract) argument that there's no need to check that the canonical map is well-defined.

For this kind of reasoning, I like to use the somewhat nonstandard notation $[X \to Y]$ for the vector space of linear maps from $X$ to $Y$. In this notation, for vector spaces over the field $k$, we have $X^{**} = [X^* \to k]$.
We can then describe the canonical map $C \colon X \to X^{**}$ as the linear map
$$\begin{align*}
C \colon X & \to [X^* \to k] \\
x & \mapsto [f \mapsto fx].
\end{align*}$$
Let's unpack that.
If you fix a vector $x \in X$, you can turn any $f \in X^*$ into a number by evaluating at $x$. More formally, for any fixed vector $x \in X$, we can define the map
$$\begin{align*}
X^* & \to k \\
f & \mapsto fx.
\end{align*}$$
It's straightforward to show that this map is linear, and thus an element of $[X^* \to k]$.
Now, given a vector $x \in X$, we can name the map above $Cx$, defining a map $C \colon X \to [X^* \to k]$. If you keep your wits about you, it's also straightforward to show that $C$ is linear, and you're done.

More generally, as far as I know, there are only two situations in which you need to check that a function is "well-defined."


*

*Applying the function requires you to make a choice. In this situation, you need to prove that the result you get doesn't depend on what choice you made.

*Applying the function involves an operation that could concievably fail. In this situation, you need to prove that the operation will not actually fail.
As an example of the first situation, let's call the unit circle $U$. An angle—a point on the unit circle—can be represented in radians by a real number. There are many different real numbers represent the same angle. For example, $\pi/2$, $5\pi/2$, and $-3\pi/2$ all represent the same angle.
There's an "angle addition" function $a: U \times U \to U$, which is applied as follows. To add two angles $\Theta$ and $\Phi$, you pick a number $\theta$ representing $\Theta$ and a number $\phi$ representing $\Phi$. Then, $a(\Theta, \Phi)$ is the angle represented by the number $\theta + \phi$.
If you choose a different number $\theta'$ representing $\Theta$, and a different number $\phi'$ representing $\Phi$, the number $\theta' + \phi'$ can be different from $\theta + \phi$, so you have to prove that it represents the same angle.
As an example of the second situation, there's an "angle inversion" function $n \colon U \to U$, which is applied as follows. To invert an angle $\Theta$, you find another angle $\bar{\Theta} \in U$ with the property that $a(\Theta, \bar{\Theta})$ is the angle represented by the number $0$. Then $n(\Theta) = \bar{\Theta}$. The operation of finding an angle $\bar{\Theta}$ with the required property could concievably fail, because it's not obvious that an angle with the required property exists. You must therefore prove that such an angle always exists. (There could concievably be many such angles, which would put you back in the first situation. In this case, the resolution is to show that there's really only one such angle.)
When you define the canonical map $X \to X^{**}$, you're not in either situation, so there's no need to check that the canonical map is well-defined.
