A taste of flipper¶

The flipper GUI can be started by using the command:

> flipper.app

flipper includes many pre-made examples under the File > Open example... menu. For example the twice-punctured torus is show below. Here we can apply mapping classes directly to curves drawn on the surface.

Long curve on S_{1,2}

flipper can also create new mapping classes by composing together old ones. Additionally, several of their properties, including their Nielsen–Thurston type and dilatation, can be computed.

Invariant lamination of abC on S_{1,2}

However, to access the full power of flipper it should be imported into a Python interpreter:

>>> import flipper
>>> S = flipper.load('S_1_2')
>>> h = S.mapping_class('abC')
>>> h.nielsen_thurston_type()
'Pseudo-Anosov'
>>> d = h.dilatation()
>>> d
2.296630?
>>> d.approximate_string(accuracy=50)
'2.29663026288653824570494191773617027122260685258284?'
>>> d.minimal_polynomial()
1 - 2*x - 2*x^3 + x^4
>>> h.hitting_matrix()
[
[0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0],
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0],
[0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1],
[0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1],
[0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0],
[0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1],
[0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1]
]

Here we can also access large censuses of monodromies:

>>> census = flipper.census('knots')  # Census of fibred knots.
>>> for s, w, _ in census:
...     h = flipper.load(s).mapping_class(w)
...     if h.dilatation() < 1.2:
...             print(s, w)
...
('S_5_1', 'abcdefghil')  # There is only one known example of a fibred knot whose monodromy has dilatation < 1.2.

These are great for finding unusual examples and counter-examples to conjectures. You can build more using:

census = S.all_mapping_classes(length=5)