I was wondering how the proof of the fact that isometries of $\mathbb{R}^n$ are bijective could be made rigorous using the following argument. I understand that there is a more general (topological) argument involving isometries of compact metric spaces, but I'm doing this as a practice question for a class on groups (we prove if $f : \mathbb{R}^n \rightarrow \mathbb{R}^n$ is an isometry it is bijective, and thus that the set of all such isometries forms a group under composition).
The argument (for surjectivity, injectivity is fine) goes as follows: Let $x \in \mathbb{R}^n$, and consider $B_{\delta}(x) = \{y \in \mathbb{R}^n : d(x,y) < \delta \} \subset \mathbb{R}^n$ the open ball of radius $\delta$ around $x$ in $\mathbb{R}^n$. Now since $f$ is an isometry, $f(B_{\delta}(x)) = B_{\delta}(x+a)$, where $a \in \mathbb{R}^n$. That is, $f$ is a translation of $B_{\delta}(x)$ since $f$ is distance preserving. Now if we let $\delta \rightarrow \infty$, any $p\in \mathbb{R}^n$ will eventually be in some $B_{\delta}(x)$ as this ball will fill $\mathbb{R}^n$. Thus $\exists q \in \mathbb{R}^n$ such that $f(q) = p$ and hence $f$ is surjective. Then as $f$ is injective and surjective, $f$ is a bijection.
I'm wondering how this argument could be made more rigorous. The proof for injectivity and that this does form a group under composition is fine, just that this part is a little trickier and I was wondering if anyone had any advice for this.