Thanks @JohnBaez #1, looks like I might have to add that to my reading list as well.

The specific thing I was looking at were two dynamic systems that we could relate together.

The first was symbolic, where a point was defined as a sequence of symbols (1s and 0s) with a marker denoting the 'current' symbol, a point. For example \\(...101.001...\\)

The space was defined as the set containing all such points.

The dynamics was given by a step function, that moves the marker one symbol to the right: \\(...101.001... \rightarrow ...1010.01...\\)

The other system was a unit square, with a step function that cuts the square horizontally into two pieces, then reshapes those pieces into a new unit square such that the top half becomes the left half, and the bottom half becomes the right half.

You can relate these two systems by following a point in the unit square as it gets moved around by the step function. If it is in the top half, say it is currently in state \\(0\\), in the bottom half it is in \\(1\\). After the step function it will either still be in the top half, or now in the bottom half. Following the point forwards gives you half of its symbolic analogue (everything to the right of the marker) and following it backwards gives you everything to the left.

The question I was looking into?

It's easy to reverse the symbolic system - simply flip every symbol around the marker: \\(...101.001... \rightarrow ...100.101...\\)

What does this look like for points in the unit square?

With the simplest step function as described above it is equivalent to flipping the square along the line \\(x = y\\).

The harder part is when you realise you can define very similar step functions on the unit square which correspond to the same symbolic system, such as taking the top third to the left third and the bottom two-thirds to the right two-thirds. The simple geometric reversing flip doesn't quite work any more, and I'm not really sure why - what is the key difference between the two situations?