### Navigation

- index
- modules |
- next |
- previous |
- Category Theory »

# Isomorphic Objects Functorial Construction

AUTHORS:

> - Nicolas M. Thiery (2010): initial revision

class `sage.categories.isomorphic_objects.``IsomorphicObjectsCategory`(category, *args)

  Bases: `sage.categories.covariant_functorial_construction.RegressiveCovariantConstructionCategory`

  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

### Navigation

- index
- modules |
- next |
- previous |
- Category Theory »