Isomorphic Objects Functorial Construction


  • Nicolas M. Thiery (2010): initial revision
class sage.categories.isomorphic_objects.IsomorphicObjectsCategory(category, *args)

Bases: sage.categories.covariant_functorial_construction.RegressiveCovariantConstructionCategory


sage: from sage.categories.covariant_functorial_construction import CovariantConstructionCategory
sage: class FooBars(CovariantConstructionCategory):
...       _functor_category = "FooBars"
sage: Category.FooBars = lambda self: FooBars.category_of(self)
sage: C = FooBars(ModulesWithBasis(ZZ))
sage: C
Category of foo bars of modules with basis over Integer Ring
sage: C.base_category()
Category of modules with basis over Integer Ring
sage: latex(C)
sage: import __main__; __main__.FooBars = FooBars # Fake FooBars being defined in a python module
sage: TestSuite(C).run()
classmethod default_super_categories(category)

Returns the default super categories of category.IsomorphicObjects()

Mathematical meaning: if \(A\) is the image of \(B\) by an isomorphism in the category \(C\), then \(A\) is both a subobject of \(B\) and a quotient of \(B\) in the category \(C\).


  • cls – the class IsomorphicObjectsCategory
  • category – a category \(Cat\)

OUTPUT: a (join) category

In practice, this returns category.Subobjects() and category.Quotients(), joined together with the result of the method RegressiveCovariantConstructionCategory.default_super_categories() (that is the join of category and cat.IsomorphicObjects() for each cat in the super categories of category).


Consider category=Groups(), which has cat=Monoids() as super category. Then, the image of a group \(G'\) by a group isomorphism is simultaneously a subgroup of \(G\), a subquotient of \(G\), a group by itself, and the image of \(G\) by a monoid isomorphism:

sage: Groups().IsomorphicObjects().super_categories()
[Category of groups,
 Category of subquotients of monoids,
 Category of quotients of semigroups,
 Category of isomorphic objects of sets]

Mind the last item above: there is indeed currently nothing implemented about isomorphic objects of monoids.

This resulted from the following call:

sage: sage.categories.isomorphic_objects.IsomorphicObjectsCategory.default_super_categories(Groups())
Join of Category of groups and
Category of subquotients of monoids and
Category of quotients of semigroups and
Category of isomorphic objects of sets

Previous topic

Subobjects Functorial Construction

Next topic

Realizations Covariant Functorial Construction

This Page