Let $A$ be open in $\mathbb{R^n}$; let $f: A \to \mathbb{R^n}$ be of class $C^r$; assume $Df(x)$ is non-singular for $x\in A$. Show that even if $f$ is not one-to-one on $A$, the set $B=f(A)$ is open in $\mathbb{R^n}$.
I tried to solve this using the inverse function theorem. The theorem from my text states
Theorem: Let $A$ be open in $\mathbb{R^n}$; let $f: A \to \mathbb{R^n}$ be of class $C^r$. If $Df(x)$ is non-singular at the point $a$ of $A$, there is a neighborhood $U$ of the point $a$ such that $f$ carries $U$ in a one-to-one fashion onto an open set $V$ of $\mathbb{R^n}$ and the inverse function is of class $C^r$.
Solution: Using this theorem, for each $b\in B=f(A)$, choosing any $a\in A$ such that $f(a)=b$, since $Df(a)$ is nonsingular, there is a neighborhood $U_a$ of $a$ such that $f$ carries $U_a$ in a one-to-one fashion onto a neighborhood $V_b=f(U_a)\subset B$ of $b$. Since we can do this for every $b\in B$, $f(A)=\bigcup_{b\in B}V_b$, so $f(A)=B$ being the union of open sets, is also open in $R^n$.
I'm not sure if my solution is correct. I would appreciate anyone's verification. Also, is there any other way to approach this problem?