# Isomorphic Objects Functorial Construction¶

AUTHORS:

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

TESTS:

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)
\mathbf{FooBars}(\mathbf{ModulesWithBasis}_{\Bold{Z}})
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$$.

INPUT:

• 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).

EXAMPLES:

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