The Cantor set
Each point in the Cantor set has a unique address, which is an infinite
sequence of 0's and 1's specifying whether it is in the left (0) half or
right (1) half each time intervals are divided in the Cantor set middle-thirds
construction. The program only understands points which end with a constant
sequence, so it is assumed that the last letter of the given address is repeated.
Thus the address of the leftmost point is 0 and then rightmost point is 1. Also,
0100=010 as Cantor set point. Infinity is a special point, and it is denoted
by inf.
Each gap in the Cantor set is the result of removing the middle third of
some interval. The address of that gap is the prefix of all the points in that
interval. So the gap in the middle of the entire left half of the Cantor set
has the address 0. There are three special gaps: the gap which goes from
the far left and wraps around behind the sphere to the far right is B. The
gap to the left of infinity is L, and the gap to right is R.
Check the checkboxes to show the gap and point labels for examples. Change
the depth of the Cantor set if they are hard to read.
Navigation
Click and drag to move the plot; mouse wheel to zoom. The reset button
resets the plot to the original view.
Rays/loops
Click "add" to add a ray. To modify the ray, edit the properties in the ray
listing and then click "redraw". Note that the endpoint of the ray can be inf,
so a ray can really be a loop. Click "comb" to comb the rays on the surface
to make then as disjoint as possible. In particular, this checks if the rays/loops
are simple and disjoint.
Homeomorphisms
Click "add" to add a homeomorphism. The homeomorphism is specified by
the recipe entered in the text box. The lines are executed in order top
to bottom. Each line must be one of the following operations:
- shift prefix1 prefix2
- E.g. shift 101 1010. Shifts prefix1 onto prefix2 horizontally. This is useful
to contract the Cantor set inside itself or expand a chunk. Note this is not
a homeomorphism by itself. It's intended to work only when one of prefix1 and
prefix2 is a sub-prefix of the other. It will work in other cases, but the region
through which it must drag is assumed to contain no rays. The drag recipe is
probably more useful here.
- drag prefix1 prefix2 up/down
- E.g. drag 101 010 up. Drags prefix1 onto prefix2 by going above or below the
equator. It is assumed that prefix2 is not actually there (it has been shifted
or dragged away).
- twist prefix1 prefix2 ccw/cw
- E.g. twist 101 010 ccw. Do a half Dehn twist which swaps the two prefixs
by rotating them in the given direction. Note this is a homeomorphism.
As an example, it can be implemented with drags and shifts with the recipe
(with up/down used as appropriate to get cw/ccw):
shift prefix1 prefix1+1
drag prefix2 prefix1+0 down
drag prefix1+1 prefix2 up
shift prefix1+0 prefix1
In fact, this is how the program does it.
- flip prefix1 ccw/cw
- E.g. flip 101 cw. Flip the chunk of Cantor set over, rotating in the
given direction. This is a homeomorphism.
- Juliette's homeomorphism
- shift 1 11
drag 01 10 down
drag 10 01 up
drag 01 10 down
shift 00 0
- Its inverse
- shift 0 00
drag 10 01 down
drag 01 10 up
drag 10 01 down
shift 11 1
- A homeomorphism whose fixed points on the boundary correspond to cliques with multiple rays
- twist 0000 0001 cw
twist 0001 001 ccw
twist 0100 0101 cw
twist 0101 011 ccw
twist 100 101 cw
twist 101 11 ccw
shift 0001 00011
shift 0101 01011
shift 101 1011
drag 00011 01010 down
drag 01011 1010 down
drag 1011 00010 down
shift 00010 0001
shift 01010 0101
shift 1010 101
- Its inverse
- shift 101 1010
shift 0101 01010
shift 0001 00010
drag 00010 1011 down
drag 1010 01011 down
drag 01010 00011 down
shift 1011 101
shift 01011 0101
shift 00011 0001
twist 11 101 cw
twist 101 100 ccw
twist 011 0101 cw
twist 0101 0100 ccw
twist 001 0001 cw
twist 0001 0000 ccw