surface_category
¶
Category types for surfaces.
This module provides alternative implementations for the SageMath types
Category
and CategoryWithAxiom
. It patches the _cmp_key
of these
types to produce a more stable sorting of surface categories exactly in the
same way that SageMath does for its builtin categories.
Without this, the MRO of surfaces is session dependent and in particular we get somewhat random printing of categories such as translation surfaces.
While we do not claim to actually understand all the details here, you can
consult c3_controlled.py
in SageMath for all the (rather technical)
details.