Analysis question: bijection between unit open interval ( (0,1) ), open unit circle

Steven G

Elite Member
Joined
Dec 30, 2014
Messages
14,561
Many years ago when I was an undergraduate student taking a math foundation class I was asked to find a bijection between the open unit interval, (0,1) and the open unit cube.

Here is what I did: I mapped the point (.a1a2a3...) to (.a1a4a7..., .a2a5a8..., .a3a6a9...). Then I mapped the point (.a1a2a3..., .b1b2b3..., .c1c2c3...) to (.a1b1c1a2b2c2...)

This got me full credit and my professor was very happy with the way I did it.

Fast forward to last night when I was thinking about this bijection: Well .5 is in the interval (0,1) and .5=.500.... gets mapped to (.50000..., .00000...., .000000....)=(.5,0,0)

The problem is that (.5,0,0) is NOT in the unit cube (it is on it!). What is going on here?
 
Last edited:
Many years ago when I was an undergraduate student taking a math foundation class I was asked to find a bijection between the open unit interval, (0,1) and the open unit cube.

Here is what I did: I mapped the point (.a1a2a3...) to (.a1a4a7..., .a2a5a8..., .a3a6a9...). Then I mapped the point (.a1a2a3..., .b1b2b3..., .c1c2c3...) to (.a1b1c1a2b2c2...)

This got me full credit and my professor was very happy with the way I did it.

Fast forward to last night when I was thinking about this bijection: Well .5 is in the interval (0,1) and .5=.500.... gets mapped to (.50000..., .00000...., .000000....)=(.5,0,0)

The problem is that (.5,0,0) is NOT in the unit cube (it is on it!). What is going on here?

I'd say that what's going on is that your answer was wrong, and your teacher (like me) just looked at it superficially and thought it looked good. (Were you told to prove your answer, or just to state it?)

Another problem you overlooked is that not all numbers have unique representations as decimals. Any number that can be expressed as a terminating decimal (like 0.5) can also be represented as a non-terminating decimal (like 0.4999...). That means your bijection is not well-defined. But can you use that to rescue your answer? (It hasn't quite worked yet for me, but I'm hoping.)

It's possible that your teacher saw that your answer was essentially the same as his own, and didn't quibble over the detail that makes it work. It's also possible that his answer was entirely different, and he just didn't take time to see the problem in yours.
 
I'd say that what's going on is that your answer was wrong, and your teacher (like me) just looked at it superficially and thought it looked good. (Were you told to prove your answer, or just to state it?)

Another problem you overlooked is that not all numbers have unique representations as decimals. Any number that can be expressed as a terminating decimal (like 0.5) can also be represented as a non-terminating decimal (like 0.4999...). That means your bijection is not well-defined. But can you use that to rescue your answer? (It hasn't quite worked yet for me, but I'm hoping.)

It's possible that your teacher saw that your answer was essentially the same as his own, and didn't quibble over the detail that makes it work. It's also possible that his answer was entirely different, and he just didn't take time to see the problem in yours.
Actually I did see that .5=.49999... but that did not help. In fact it hurt my proof.

I remembered that my professor said that there is a reason he wanted everything opened and that it was too complicated for him to say why. I thought that it had to do with the fact that numbers like ,5 can be realized as .50000.... and .4999....

Hmm, maybe my proof can be rescued or even be true.

Lets see something. We can now map .5, that is .49999.... as I defined above and all is well?? Now if we closed everything then we have trouble!!!

But wait a minute. We can map (.5, .5, .5) to .555000... and to .4449999999.... Oh well.
 
Last edited:
The bijection I stated I feel can not be repaired. It's amazing that after 30 years I finally realized that I was wrong.

Does anyone know of a bijection that should work?
 
Actually I did see that .5=.49999... but that did not help. In fact it hurt my proof.

I remembered that my professor said that there is a reason he wanted everything opened and that it was too complicated for him to say why. I thought that it had to do with the fact that numbers like ,5 can be realized as .50000.... and .4999....

Hmm, maybe my proof can be rescued or even be true.

Lets see something. We can now map .5, that is .49999.... as I defined above and all is well?? Now if we closed everything then we have trouble!!!

But wait a minute. We can map (.5, .5, .5) to .555000... and to .4449999999.... Oh well.

My first thought was that by just using only the non-terminating decimal for any number in (0,1), we would avoid the surface of the cube. Unfortunately, still .500500... maps to (.555..., 0, 0) which is not in the interior. So something more would be needed. That's why I said my idea didn't work yet.

I still have to think more about it.
 
My first thought was that by just using only the non-terminating decimal for any number in (0,1), we would avoid the surface of the cube. Unfortunately, still .500500... maps to (.555..., 0, 0) which is not in the interior. So something more would be needed. That's why I said my idea didn't work yet.

I still have to think more about it.
Thanks for your time. I really appreciate it!
 
Many years ago when I was an undergraduate student taking a math foundation class I was asked to find a bijection between the open unit interval, (0,1) and the open unit cube.

Here is what I did: I mapped the point (.a1a2a3...) to (.a1a4a7..., .a2a5a8..., .a3a6a9...). Then I mapped the point (.a1a2a3..., .b1b2b3..., .c1c2c3...) to (.a1b1c1a2b2c2...)

This got me full credit and my professor was very happy with the way I did it.

Fast forward to last night when I was thinking about this bijection: Well .5 is in the interval (0,1) and .5=.500.... gets mapped to (.50000..., .00000...., .000000....)=(.5,0,0)

The problem is that (.5,0,0) is NOT in the unit cube (it is on it!).
I've been know to be wrong but how about simply mapping (.a1a2a3...) to (.a1a2a3..., .a1a2a3..., .a1a2a3...). And by convention we keep terminal decimals as they are. I believe this will fix my proof.
 
I've been know to be wrong but how about simply mapping (.a1a2a3...) to (.a1a2a3..., .a1a2a3..., .a1a2a3...). And by convention we keep terminal decimals as they are. I believe this will fix my proof.

Prove that this is a bijection. "How about" and "I believe" aren't good enough ...
 
Prove that this is a bijection. "How about" and "I believe" aren't good enough ...
OK, you are 100% correct!

I define a function f: (0,1) --> (0,1)3 by f(n) = (n,n,n)
Now suppose f(.a1a2a3...) = f(.b1b2b3...). Then (.a1a2a3..., .a1a2a3..., .a1a2a3...) = (.b1b2b3..., b1b2b3..., .b1b2b3... ) and we get (.a1a2a3...) = (.b1b2b3...). So f is 1:1

Now I define g: (0,1)3 --> (0,1) by g(.a1a2a3..., .b1b2b3..., .c1c2c3...) = (.a1b1c1a2b2c2...)
Now suppose g(.a1a2a3..., .b1b2b3..., .c1c2c3...) =g(.d1d2d3..., .e1e2e3..., .f1f2f3...), then (.a1b1c1a2b2c2...) = (.d1e1f1d2e2f2...) ==>a1= d1,b1= e1, c1=f1, a2= d2, b2=e2, c2= f2,... So (.a1a2a3..., .b1b2b3..., .c1c2c3...) =(.d1d2d3..., .e1e2e3..., .f1f2f3...) and g is 1:1

Combining the above, I have a bijection between f and g.

Now I would have done this without you asking if it was not for the fact that I could have shown this bijection for my original mapping. The issue was that one of my functions was not well defined. How can I be sure that f and g are well defined?? I don't recall any method other than thinking about why it imight not well defined as I did (30 years later) with my original functions.

As always, I appreciate your time that you have spent with me on this problem so far. Denis will suggest that I pay you for your time, so please don't listen to him.
 
Last edited:
OK, you are 100% correct!

I define a function f: (0,1) --> (0,1)3 by f(n) = (n,n,n)
Now suppose f(.a1a2a3...) = f(.b1b2b3...). Then (.a1a2a3..., .a1a2a3..., .a1a2a3...) = (.b1b2b3..., b1b2b3..., .b1b2b3... ) and we get (.a1a2a3...) = (.b1b2b3...). So f is 1:1

Now I define g: (0,1)3 --> (0,1) by g(.a1a2a3..., .b1b2b3..., .c1c2c3...) = (.a1b1c1a2b2c2...)
Now suppose g(.a1a2a3..., .b1b2b3..., .c1c2c3...) =g(.d1e2f3..., .d1e2f3..., .d1e2f3...), then (.a1b1c1a2b2c2...) = (.d1e1f1d2e2f2...) ==>a1= d1,b1= e1, c1=f1, a2= d2, b2=e2, c2= f2,... So (.a1a2a3..., .b1b2b3..., .c1c2c3...) =(.d1e2f3..., .d1e2f3..., .d1e2f3...) and g is 1:1

Combining I have a bijection between f and g.

Now I would have done this without you asking if it was not for the fact that I could have shown this bijection for my original mapping. The issue was that one of my functions was not well defined. How can I be sure that f and g are well defined?? I don't recall any method other than thinking about why it is not well defined.

As always I appreciate your time that you spend with me on this problem so far. Denis will suggest that I pay you for your time so please don't listen to him.

What is "a bijection between f and g"? You're looking for a bijection between (0,1) and (0,1)^3! That means a single function f: (0,1) -> (0,1)^3 that is both 1:1 and onto, not a pair of unrelated functions in either direction. Your f is not onto. If your g were the inverse of f, you would have what you need, but it isn't.

As for proving that a function is well-defined ... can you tell me what that means?
 
What is "a bijection between f and g"? You're looking for a bijection between (0,1) and (0,1)^3! That means a single function f: (0,1) -> (0,1)^3 that is both 1:1 and onto, not a pair of unrelated functions in either direction. Your f is not onto. If your g were the inverse of f, you would have what you need, but it isn't.

As for proving that a function is well-defined ... can you tell me what that means?
As for proving that a function is well-defined ... can you tell me what that means? A function is not well defined if you have a domain and you do not have exactly one image for each member of the domain.

I just looked at my analysis book to double check and found that Cantor-Schroder-Bernstein theorem says that what I showed is sufficient.

Edit: OK, I did not find a bijection but I proved that one exists, which is what I wanted to do. It has been a while since I have done analysis so maybe I was a bit sloppy in what I stated at the beginning.
 
Last edited:
As for proving that a function is well-defined ... can you tell me what that means? A function is not well defined if you have a domain and you do not have exactly one image for each member of the domain.

I just looked at my analysis book to double check and found that Cantor-Schroder-Bernstein theorem says that what I showed is sufficient.

Edit: OK, I did not find a bijection but I proved that one exists, which is what I wanted to do. It has been a while since I have done analysis so maybe I was a bit sloppy in what I stated at the beginning.

OK, I'll give you that. But the OP was to find a bijection, so that is still open (especially if the goal is to fix yours). And, no, I haven't taken time to work it out. Nor do I claim to know more than you about it.
 
OK, I'll give you that. But the OP was to find a bijection, so that is still open (especially if the goal is to fix yours). And, no, I haven't taken time to work it out. Nor do I claim to know more than you about it.
Yes, it would be nice to find a bijection. At least now we know one exists.
 
Yes, it would be nice to find a bijection. At least now we know one exists.

Actually, I just realized your switch from showing a bijection to merely proving its existence distracted me from the details.

You didn't show that your g was well-defined; you fell back on the false assumption that there is a one-to-one correspondence between numbers and decimal representations. Defining g for a triple of decimals does not define g for a triple of numbers! And for the same reason, I'm not even sure you showed it is one-to-one.

Would you like to go back and define g in such a way that you can fix this (assuming it is possible)?
 
Actually, I just realized your switch from showing a bijection to merely proving its existence distracted me from the details.

You didn't show that your g was well-defined; you fell back on the false assumption that there is a one-to-one correspondence between numbers and decimal representations. Defining g for a triple of decimals does not define g for a triple of numbers! And for the same reason, I'm not even sure you showed it is one-to-one.

Would you like to go back and define g in such a way that you can fix this (assuming it is possible)?
I did write g wrong. It was actually painful writing everything with subscripts but I think it is all correct now so please re-read post 9
 
I did write g wrong. It was actually painful writing everything with subscripts but I think it is all correct now so please re-read post 9

You didn't change the error I was pointing out.

Defining g by g(.a1a2a3..., .b1b2b3..., .c1c2c3...) =g(.d1d2d3..., .e1e2e3..., .f1f2f3...) does not define a function on (0,1)^3, because a number x in (0,1) is not associated with a unique representation .a1a2a3... , as we have previously discussed. At the least, you would have to make some statement about how you are choosing the representation, e.g. rejecting the terminating decimal representation if there is one. Otherwise there are two different outputs for, say, g(.5,.5,.5), namely .555 and .444999... = .445. So the function should be defined, starting something like this: "Given x, y, z in (0,1), choose decimal representations x=.a1a2a3..., y=.b1b2b3..., z=.c1c2c3... . Then define g(x,y,z) = ..." There may be more to do within the proof itself, along related lines.

I'm not denying the proof entirely, or referring to typos (which I didn't even notice), but simply encouraging you to be complete, as that was the problem with the original answer!
 
You didn't change the error I was pointing out.

Defining g by g(.a1a2a3..., .b1b2b3..., .c1c2c3...) =g(.d1d2d3..., .e1e2e3..., .f1f2f3...) does not define a function on (0,1)^3, because a number x in (0,1) is not associated with a unique representation .a1a2a3... , as we have previously discussed. At the least, you would have to make some statement about how you are choosing the representation, e.g. rejecting the terminating decimal representation if there is one. Otherwise there are two different outputs for, say, g(.5,.5,.5), namely .555 and .444999... = .445. So the function should be defined, starting something like this: "Given x, y, z in (0,1), choose decimal representations x=.a1a2a3..., y=.b1b2b3..., z=.c1c2c3... . Then define g(x,y,z) = ..." There may be more to do within the proof itself, along related lines.

I'm not denying the proof entirely, or referring to typos (which I didn't even notice), but simply encouraging you to be complete, as that was the problem with the original answer!
I encourage you to make sure I am complete!

I'll assume a typo on your post, but I did not define g as Defining g by g(.a1a2a3..., .b1b2b3..., .c1c2c3...) =g(.d1d2d3..., .e1e2e3..., .f1f2f3...).

Also I assume that you meant Otherwise there are two different outputs for, say, g(.5,.5,.5), namely .555 and .554999... = .555.

Now onto your valid point. Would the following clarify every?
Note: Regarding f: (0,1)-->(0,1)3. For each point in (0,1) that has a terminating decimal, we will append an infinite number of 0's to the end of this decimal number.
Regarding g: (0,1)3-->(0,1). Consider (x,y,z) in (0,1)3. For each entry in the triple that has a terminating decimal, we will append an infinite number of 0's to the end of this decimal number.
 
Last edited:
I encourage you to make sure I am complete!

I'll assume a typo on your post, but I did not define g as Defining g by g(.a1a2a3..., .b1b2b3..., .c1c2c3...) =g(.d1d2d3..., .e1e2e3..., .f1f2f3...).

Also I assume that you meant Otherwise there are two different outputs for, say, g(.5,.5,.5), namely .555 and .554999... = .555.

Now onto your valid point. Would the following clarify every?
Note: Regarding f: (0,1)-->(0,1)3. For each point in (0,1) that has a terminating decimal, we will append an infinite number of 0's to the end of this decimal number.
Regarding g: (0,1)3-->(0,1). Consider (x,y,z) in (0,1)3. For each entry in the triple that has a terminating decimal, we will append an infinite number of 0's to the end of this decimal number.

Let's try this again. Having to go between pages evidently messed up my quoting, which in turn hid my point.

You defined g by "g(.a1a2a3..., .b1b2b3..., .c1c2c3...) = (.a1b1c1a2b2c2...)", which is what I meant to quote. Do you see how what I said applies?

And, no, the two values for g(.5,.5,.5) are

g(.5000..., .5000..., .5000...) = .555000000000... = .555

and

g(.4999..., .4999..., .4999...) = .444999999999... = .445

as I said. I should have shown the details.

I would consider appending zeros to be a given, as I did above. It doesn't fix the problem, but causes it (in a sense).

My suggestion has been that, where a number has two decimal expansions (terminating and not), you use only the latter. I haven't checked that that fixes everything.
 
Top