Proof that $\mathbb{R}^2 \cong \mathbb{R}$ I'm trying to prove that $\mathbb{R}^2$ and $\mathbb{R}$ have the same cardinality. Here is my attempt. I will be taking the Schröder-Bernstein theorem for granted.
Define the map $f: \mathbb{R} \to \mathbb{R}^2$ sending $x \longmapsto (x,0)$. I claim that $f$ is an injection. Indeed, if $f(x) = f(y)$ for $x,y \in \mathbb{R}$, then $(x,0) = (y,0)$, so $x = y$. Therefore, $|\mathbb{R}| \leq |\mathbb{R}^2|$. By the Schröder-Bernstein theorem, it suffices to prove that $|\mathbb{R}^2| = |\mathbb{R}|$.
Lemmma 1: $\mathbb{R} \cong (0,1)$.
Proof of Lemma 1. Notice that $\tan(x)$ is a bijection from $\left(-\frac{\pi}{2}, \frac{\pi}{2}\right) \to \mathbb{R}$ since $\tan$ has period $\pi$; furthermore, the existence of the $\arctan$ function guarantees that the function is surjective, hence bijective. Notice that there is a one-to-one correspondence $\left(0,1\right) \to \left(- \frac{\pi}{2}, \frac{\pi}{2}\right)$ sending $x \longmapsto \left(x - \frac{1}{2}\right)\pi$. Composing bijections gives a bijection $\left(0,1\right) \to \mathbb{R}$.
Lemma 2: Given sets $A, B, C,D$ such that $A \cong C$ and $B \cong D$, we have $A \times B \cong  C \times D$.
Proof of Lemma 2. Since $A \cong C$ and $B \cong D$, there exist bijections $f: A \stackrel{\sim}{\to} C$ and $g: B \stackrel{\sim}{\to} D$. Then define the map
$$ 
h: \underset{(a,b)}{A \times B} \underset{\longmapsto}{\to} \underset{(f(a), g(b))}{C \times D}.
$$
Given $(a_1, b_1), (a_2, b_2) \in A \times B$ for which $h(a_1, b_1) = h(a_2, b_2)$, we have $(f(a_1), g(b_1)) = (f(a_2), g(b_2))$. So $f(a_1) = f(a_2)$ and $g(b_1) = g(b_2)$. The former implies $a_1 = a_2$ by injectivity of $f$, while the latter implies $b_1 = b_2$ by injectivity of $g$. So $(a_1, b_1) = (a_2, b_2)$, so $h$ is injective. Given $(c,d) \times C \times D$, by surjectivity of $f$, there exists $a \in A$ such that $f(a) = c$; by surjectivity of $g$, there exists $b \in B$ such that $g(b) = d$. We then have
$$ 
(c,d) = (f(a), g(b)) = h(a,b),
$$
so $h$ is surjective, hence bijective, so $A \times B \cong C \times D$.
Corollary. It suffices to prove that $(0,1) \times (0,1) \cong (0,1)$.
Proof. We know $\mathbb{R} \cong (0,1)$ by Lemma 1. By Lemma 2, that implies that $\mathbb{R} \times \mathbb{R} \cong (0,1) \times (0,1)$. So if we prove $(0,1) \times (0,1) \cong (0,1)$, we have
$$ 
\mathbb{R} \times \mathbb{R} \cong (0,1) \times (0,1) \cong (0,1) \cong \mathbb{R},
$$
which is the intended result.
Claim. $(0,1) \times (0,1) \cong (0,1)$.
Proof of Claim. We use the Schröder-Bernstein theorem. There is an obvious injection $(0,1) \times (0,1) \times (0,1)$ sending $x \longmapsto \left(x, \frac{1}{2}\right)$. This is an injection regardless of whether we allow an infinite string of $9$'s. Concordantly, we can define an injection $(0,1) \times (0,1) \to (0,1)$ as follows. Given $(x,y) \in (0,1) \times (0,1)$, choose a decimal expansion for $x,y \in (0,1)$ that does not contain an infinite string of nines, which we know to be unique. Write
$$ 
x = 0.x_1 x_2 x_3 \ldots \\
y = 0.y_1 y_2 y_3 \ldots 
$$
Then define
$$ 
f(x,y) = 0.x_1 y_1 x_2 y_2 x_3 y_3 \ldots 
$$
Since neither $x,y$ contained an infinite string of nines, $f(x,y)$ likewise does not. I claim that $f$ is an injection. Indeed, suppose that $f(a,b) = f(c,d)$ for $(a,b), (c,d) \in (0,1) \times (0,1)$. Defining the decimal expansions for $a,b,c,d$ similarly, we then have
$$ 
0.a_1 b_1 a_2 b_2 a_3 b_3 \ldots = 0.c_1 d_1 c_2 d_2 c_3 d_4 \ldots.
$$
Since neither of these expressions contain an infinite string of $9$'s, we can equate corresponding digits, so $a_i = c_i$ for all $i \geq 1$ and $b_i = d_i$ for all $i \geq i$, so $a = c$ and $b = d$, so $(a,b) = (c,d)$, so $f$ is injective. By the Shroder-Bernstein theorem, $(0,1) \times (0,1) \cong (0,1)$.
--
How does this proof look? The only fact I am not totally sure I understand fully is why the decimal expansion not terminating in a string of nine's is unique. I believe we can assert that every element of $(0,1)$ has exactly two decimal expansions. What is the canonical way to go about showing this?
 A: The map $(0,1)\times(0,1)\to(0,1)$ you build is certainly injective, but it is not bijective. Take $0.191919\dotsb$ to see why. However you don’t need surjectivity.
A: Egreg has identified a problem but you might like more detail.
Your map $f$ from $(0, 1) \times (0, 1) \rightarrow (0, 1)$ is an injection but not a bijection, see below.  However, if it was a bijection then you would not need your map the other way or Schröder-Bernstein since the bijection, by itself, would show that the sets have the same cardinality.
You say that every element of $(0, 1)$ has exactly two decimal expansions.  Most have just one.  It is only the ones that end in all $9$s or all $0$s that do.  See this previous question for details.
Now, I say that your map is an injection but not a bijection.  So, I am saying that it is not surjective. I need an example to prove this.  What maps to $0.459090909...$?  It's $(0.4999..., 0.5000...)$ except the representation $0.4999...$ breaks your rule, it is the wrong representation of $0.5000...$.  So that point is in fact $(0.5000..., 0.5000...)$ which maps to $0.55000...$.
However, this does not destroy your proof.  It just means you need Schröder-Bernstein after all.  You have an injection both ways.  The whole point of Schröder-Bernstein is that it avoids the need to establish an explicit bijection which is often messy or difficult.
