AUTHORS:
- Nicolas M. Thiery (2010): initial revision
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()
Returns the default super categories of category.Subobjects()
Mathematical meaning: if is a subobject of
in the
category
, then
is also a subquotient of
in the
category
.
INPUT:
- cls – the class SubobjectsCategory
- category – a category
OUTPUT: a (join) category
In practice, this returns category.Subquotients(), joined together with the result of the method RegressiveCovariantConstructionCategory.default_super_categories() (that is the join of category and cat.Subobjects() for each cat in the super categories of category).
EXAMPLES:
Consider category=Groups(), which has cat=Monoids() as
super category. Then, a subgroup of a group is
simultaneously a subquotient of
, a group by itself, and a
submonoid of
:
sage: Groups().Subobjects().super_categories()
[Category of groups, Category of subquotients of monoids, Category of subobjects of sets]
Mind the last item above: there is indeed currently nothing implemented about submonoids.
This resulted from the following call:
sage: sage.categories.subobjects.SubobjectsCategory.default_super_categories(Groups())
Join of Category of groups and Category of subquotients of monoids and Category of subobjects of sets