Huh, did Cantor do it by well-ordering or something? I wouldn’t know. In any case it’s pretty easy to explicitly put 2^N x 2^N in bijection with 2^N, because the former is just 2^(2N), and 2N is in bijection with N. What this cashes out to is, if you have two elements of 2^N, and want to make one that encodes them both, you just interleave them. Note also this works for any 2^S when you have an explicit bijection between S and 2S. If you want it for R all you need is an explicit bijection between R and 2^N. It’s a more general consequence of well-ordering that S x S is of the same cardinality as S for any infinite S, and that is necessarily nonconstructive, but for “practical” infinite sets (by which I basically mean ℶ_n for n finite) many bijections can be made explicitly that would in general require choice.
Huh, did Cantor do it by well-ordering or something? I wouldn’t know. In any case it’s pretty easy to explicitly put 2^N x 2^N in bijection with 2^N, because the former is just 2^(2N), and 2N is in bijection with N. What this cashes out to is, if you have two elements of 2^N, and want to make one that encodes them both, you just interleave them. Note also this works for any 2^S when you have an explicit bijection between S and 2S. If you want it for R all you need is an explicit bijection between R and 2^N. It’s a more general consequence of well-ordering that S x S is of the same cardinality as S for any infinite S, and that is necessarily nonconstructive, but for “practical” infinite sets (by which I basically mean ℶ_n for n finite) many bijections can be made explicitly that would in general require choice.