Defining new symbols in a proof, when is this justified? So I have a proof that I have written of $X\subset Y \Rightarrow f(X)\subset f(Y)$ but it is slightly different than the one presented in this questions accepted answer.
The difference is subtle so apologies if this turns out to be a non-issue. However, I know--especially in proofs--that details matter.
Here is my proof:

Suppose $X\subset{Y}$
  let $a\in X$
  Then $a\in Y$ by def of $X\subset{Y}$
  Define $b=f(a)$ (!!Unsure whether this is a valid step!!)
  Then $b\in f(X)$ by definition of $f(X)=\left \{ y\in Y\,|\, y=f(x)\, for\, some\,\, x\in Y \right \}$
  Similiarly since $a\in Y$, $b=f(a)$ also gives us $b\in f(Y)$.
  Therefore $A\subset B \Rightarrow f(A)\subset f(B)$

The accepted answer in the linked question makes the assumption $b\in f(X)$ whereas I use;   

Define $b=f(a)$  

Is my step a somewhat of a weaker assumption since this is was derived from the hypothesis? or is it entirely equivalent?
To be clear--I am not disputing the correctness of the proof in the linked accepted answer and in hindsight, it is more clear than my own proof--my concern is whether or not my step of defining $b=f(a)$ was justified or otherwise equivalent to the assumption $b\in f(X)$ used in the linked answers proof. If not please explain when defining as I have done is justified. I have seen this move/step used in proofs that I study and it is not entirely clear to me when this can be done.  
I suspect defining as I have done is nothing more than just an assumption, yet since it is cast in terms of existing symbols I cannot help but wonder if it may be more than an assumption and actually a tautology (and therefore a true statement).
UPDATE
Just for clarification for anyone who stumbles upon this...
The step
let $a\in X$
was the mistake. My proof shows rather that $(x\in X \land X\subset Y) \rightarrow (f(X) \subset f(Y))$ this is because the assumption $x\in X$ is never "discharged".
using the assumption $b\in f(x)$ works to show $f(X)\subset f(Y)$ because it does eventually get discharged. which would then lead to the result that was desired $X\subset Y \rightarrow f(X)\subset f(Y)$
 A: The "definition" itself is fine; you've picked out an element $a$, so there must exist some element $f(a)$ (by the definition of what a function does), and you're just giving that element a new name -- $b$.
Your proof is flawed, however, because you fail to show that for every $b \in f(X)$, $b \in f(Y)$. You only show that for some particular $b$ -- the $b = f(a)$ you have singled out. Now since $a$ is arbitrary, $f(a)$ is also arbitrary, and in fact any $b \in f(X)$ can be expressed as $b = f(a)$ for some $a$... but you should spell all this out.
You can usually (with some practice) figure out what the skeleton of your proof should look like. You want to prove $f(X) \subset f(Y)$, which by definition means $b \in f(X) \implies b \in f(Y)$; thus you should be assuming $b \in f(X)$. Your proof doesn't make that assumption, so it's not clear how it proves what it sets out to prove.
A: The logic in your proof might be considered slightly off. As you want to show that $f(X)\subseteq f(Y)$, you should not start with an element of $X$, but with an element $b\in f(X)$. That of course means that there exists (at least one) $a\in X$ with $f(a)=b$ etc. 
A: I think most simply: whenever it clarifies your point, you can introduce shorthand.
In my opinion, whenever you find the notation cumbersome, or think it might obscure your point, introduce new symbols. 
In this case, I think given the point you are trying to make: $b \in f(Y)$, it might make sense to add a new symbol, but on the other hand, if you just write $f(a) \in f(Y)$ since $a \in Y$, that is clearer and more brief. Again though, it is a matter of taste

However, your proof as written is incorrect. Start with $b \in f(X)$. Then there exists an $a \in X$ so that $f(a)=b$. But $a \in Y$, so $b$ is in $f(Y)$.
