AUTHORS:
- Nicolas M. Thiery (2010): initial revision
Given a concrete category As() (i.e. a subcategory of Sets()), As().Subobjects() returns the category of objects of As() endowed with a distinguished description as subobject of some other object of As().
See Subquotients() for background.
EXAMPLES:
sage: C = Sets().Subobjects(); C
Category of subobjects of sets
sage: C.super_categories()
[Category of subquotients of sets]
sage: C.all_super_categories()
[Category of subobjects of sets,
Category of subquotients of sets,
Category of sets,
Category of sets with partial maps,
Category of objects]
Unless something specific about subobjects is implemented for this category, one actually get an optimized super category:
sage: C = Semigroups().Subobjects(); C
Join of Category of subquotients of semigroups and Category of subobjects of sets
The caller is responsible for checking that the given category admits a well defined category of subobjects.
TESTS:
sage: Semigroups().Subobjects().is_subcategory(Semigroups().Subquotients())
True
sage: TestSuite(C).run()
Bases: sage.categories.covariant_functorial_construction.RegressiveCovariantConstructionCategory
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