The 7-year-old had a nice “aha” moment when we were looking at the n(n+2) pattern — he said “I see another pattern — it’s always one below a square”. So I showed him how you can move one of the columns of size n, rotate it and put it on top, and you have an (n+1)(n+1) square with one dot missing.

The 9-year-old was able to do it independently and quickly enough that I had him try it with a sequence of cubes next.

I think you definitely hit the mark on “conducive to open-ended exploration.” Very nice.

]]>Indeed! I think I will probably write about this in an upcoming post. One fun thing is that the proof of the Schröder-Bernstein theorem is actually constructive, so in theory you can take any two injections and actually use them to construct a bijection. But indeed, there is no guarantee that the resulting bijection is easy to describe. I am still trying to work out how to describe the one generated by your pair of injections between and . It’s something like this: any number can be written in the form 2^2^…^m where is not a power of two, that is, a tower of zero or more 2’s with a final power of on top. (If is not a power of two then .) If or has prime factors other than 2 or 3, then send to . Otherwise, if is a power of two, send it to ; finally, if , send it to . It’s very non-obvious that this is a bijection (and I might have even gotten the description wrong)!

]]>If are finite, then (as you argued in “By Size”), both are bijections. But if they are infinite, then there are that are one-to-one, but not onto. Proof: Since is infinite, there exists a that is one-to-one but not onto, so if is one-to-one, then is one-to-one, but not onto.

This is one of my favorite ways to show . It usually isn’t hard to come up with the necessary injections, even if it is hard to find a bijection. It is easy to show that and are both one-to-one, It is harder to come up with an easy-to-describe bijection.

]]>By S do you mean the successor function? That’s a good example, not cheeky at all!

]]>I think your original formulation (which didn’t need to mention specific elements of A or B at all) was simpler!

]]>