7 Serre Quotients Serre quotients are implemented using generalized morphisms. A Serre quotient category is the quotient of an abelian category A by a thick subcategory C. The objects of the quotient are the objects from A, the morphisms are a limit construction. In the implementation those morphisms are modeled by generalized morphisms, and therefore there are, like in the generalized morphism case, three types of Serre quotients. 7.1 General operations As in the generalized morphism case, the generic constructors depend on the generalized morphism standard. Please note that for implementations the specialized constructors should be used. 7.1-1 IsSerreQuotientCategoryObject IsSerreQuotientCategoryObject( arg )  filter Returns: true or false The category of objects in the category of Serre quotients. For actual objects this needs to be specialized. 7.1-2 IsSerreQuotientCategoryMorphism IsSerreQuotientCategoryMorphism( arg )  filter Returns: true or false The category of morphisms in the category of Serre quotients. For actual morphisms this needs to be specialized. 7.1-3 SerreQuotientCategory SerreQuotientCategory( A, func[, name] )  operation Returns: a CAP category Creates a Serre quotient category S with name name out of an Abelian category A. If name is not given, a generic name is constructed out of the name of A. The argument func must be a unary function on the objects of A deciding the membership in the thick subcategory C mentioned above. 7.1-4 AsSerreQuotientCategoryObject AsSerreQuotientCategoryObject( A/C, M )  operation Returns: an object Given a Serre quotient category A/C and an object M in A, this constructor returns the corresponding object in the Serre quotient category. 7.1-5 SerreQuotientCategoryMorphism SerreQuotientCategoryMorphism( A/C, phi )  operation Returns: a morphism Given a Serre quotient category A/C and a generalized morphism phi in the generalized morphism category A/C is modeled upon, this constructor returns the corresponding morphism in the Serre quotient category. 7.1-6 SerreQuotientCategoryMorphism SerreQuotientCategoryMorphism( A/C, iota, phi, pi )  operation Returns: a morphism Given a Serre quotient category A/C and three morphisms \iota: M' \rightarrow M, \phi: M' \rightarrow N' and \pi: N \rightarrow N' this operation contructs a morphism in the Serre quotient category. 7.1-7 SerreQuotientCategoryMorphism SerreQuotientCategoryMorphism( A/C, alpha, beta )  operation Returns: a morphism Given a Serre quotient category A/C and two morphisms of the form \alpha: X \rightarrow M and \beta: X \rightarrow N or \alpha: M \rightarrow X and \beta: N \rightarrow X, this operation constructs the corresponding morphism in the Serre quotient category. This operation is only implemented if A/C is modeled upon a span generalized morphism category in the first option or upon a cospan category in the second. 7.1-8 SerreQuotientCategoryMorphismWithSourceAid SerreQuotientCategoryMorphismWithSourceAid( A/C, alpha, beta )  operation Returns: a morphism Given a Serre quotient category A/C and two morphisms \alpha: M \rightarrow X and \beta: X \rightarrow N this operation constructs the corresponding morphism in the Serre quotient category. 7.1-9 SerreQuotientCategoryMorphismWithRangeAid SerreQuotientCategoryMorphismWithRangeAid( A/C, alpha, beta )  operation Returns: a morphism Given a Serre quotient category A/C and two morphisms \alpha: X \rightarrow M and \beta: X \rightarrow N this operation constructs the corresponding morphism in the Serre quotient category. 7.1-10 AsSerreQuotientCategoryMorphism AsSerreQuotientCategoryMorphism( A/C, phi )  operation Returns: a morphism Given a Serre quotient category A/C and a morphism phi in A, this constructor returns the corresponding morphism in the Serre quotient category. 7.1-11 SubcategoryMembershipTestFunctionForSerreQuotient SubcategoryMembershipTestFunctionForSerreQuotient( C )  attribute Returns: a function When a Serre quotient category is created, a membership function for the subcategory is given. This attribute stores and returns this function 7.1-12 UnderlyingHonestCategory UnderlyingHonestCategory( A/C )  attribute Returns: a category For a Serre quotient category A/C this attribute returns the category A. 7.1-13 UnderlyingGeneralizedMorphismCategory UnderlyingGeneralizedMorphismCategory( A/C )  attribute Returns: a category For a Serre quotient category A/C this attribute returns generalized morphism category the quotient is modelled upon. 7.1-14 UnderlyingGeneralizedObject UnderlyingGeneralizedObject( M )  attribute Returns: an object For an object M in the Serre quotient category A/C this attribute returns the corresponding object in the generalized morphism category the quotient is modelled upon. 7.1-15 UnderlyingHonestObject UnderlyingHonestObject( M )  attribute Returns: an object For an object M in the Serre quotient category A/C this attribute returns the corresponding object in A. 7.1-16 UnderlyingGeneralizedMorphism UnderlyingGeneralizedMorphism( phi )  attribute Returns: a morphism For a morphism phi in the Serre quotient category A/C this attribute returns the corresponding generalized morphism in the generalized morphism category the quotient is modelled upon. 7.1-17 CanonicalProjection CanonicalProjection( A/C )  attribute Returns: a functor Given a Serre quotient category A/C, this operation returns the canonical projection functor  A \rightarrow A/C . 7.2 Serre quotients by cospans 7.2-1 SerreQuotientCategoryByCospans SerreQuotientCategoryByCospans( A, func[, name] )  operation Returns: a CAP category Creates a Serre quotient category S with name name out of an Abelian category A. The Serre quotient category will be modeled upon the generalized morphisms by cospans category of A If name is not given, a generic name is constructed out of the name of A. The argument func must be a unary function on the objects of A deciding the membership in the thick subcategory C mentioned above. 7.2-2 AsSerreQuotientCategoryByCospansObject AsSerreQuotientCategoryByCospansObject( A/C, M )  operation Returns: an object Given a Serre quotient category A/C modeled by cospans and an object M in A, this constructor returns the corresponding object in the Serre quotient category. 7.2-3 SerreQuotientCategoryByCospansMorphism SerreQuotientCategoryByCospansMorphism( A/C, phi )  operation Returns: a morphism Given a Serre quotient category A/C modeled by cospans and a generalized morphism phi in the generalized morphism category A/C is modeled upon, this constructor returns the corresponding morphism in the Serre quotient category. 7.2-4 SerreQuotientCategoryByCospansMorphism SerreQuotientCategoryByCospansMorphism( A/C, iota, phi, pi )  operation Returns: a morphism Given a Serre quotient category A/C modeled by cospans and three morphisms \iota: M' \rightarrow M, \phi: M' \rightarrow N' and \pi: N \rightarrow N' this operation contructs a morphism in the Serre quotient category. 7.2-5 SerreQuotientCategoryByCospansMorphismWithSourceAid SerreQuotientCategoryByCospansMorphismWithSourceAid( A/C, alpha, beta )  operation Returns: a morphism Given a Serre quotient category A/C modeled by cospans and two morphisms \alpha: M \rightarrow X and \beta: X \rightarrow N this operation constructs the corresponding morphism in the Serre quotient category. 7.2-6 SerreQuotientCategoryByCospansMorphism SerreQuotientCategoryByCospansMorphism( A/C, alpha, beta )  operation Returns: a morphism Given a Serre quotient category A/C modeled by cospans and two morphisms \alpha: X \rightarrow M and \beta: X \rightarrow N this operation constructs the corresponding morphism in the Serre quotient category. 7.2-7 AsSerreQuotientCategoryByCospansMorphism AsSerreQuotientCategoryByCospansMorphism( A/C, phi )  operation Returns: a morphism Given a Serre quotient category A/C modeled by cospans and a morphism phi in A, this constructor returns the corresponding morphism in the Serre quotient category. 7.3 Serre Quotients by Spans 7.3-1 SerreQuotientCategoryBySpans SerreQuotientCategoryBySpans( A, func[, name] )  operation Returns: a CAP category Creates a Serre quotient category S with name name out of an Abelian category A. The Serre quotient category will be modeled upon the generalized morphisms by spans category of A If name is not given, a generic name is constructed out of the name of A. The argument func must be a unary function on the objects of A deciding the membership in the thick subcategory C mentioned above. 7.3-2 AsSerreQuotientCategoryBySpansObject AsSerreQuotientCategoryBySpansObject( A/C, M )  operation Returns: an object Given a Serre quotient category A/C modeled by spans and an object M in A, this constructor returns the corresponding object in the Serre quotient category. 7.3-3 SerreQuotientCategoryBySpansMorphism SerreQuotientCategoryBySpansMorphism( A/C, phi )  operation Returns: a morphism Given a Serre quotient category A/C modeled by spans and a generalized morphism phi in the generalized morphism category A/C is modeled upon, this constructor returns the corresponding morphism in the Serre quotient category. 7.3-4 SerreQuotientCategoryBySpansMorphism SerreQuotientCategoryBySpansMorphism( A/C, iota, phi, pi )  operation Returns: a morphism Given a Serre quotient category A/C modeled by spans and three morphisms \iota: M' \rightarrow M, \phi: M' \rightarrow N' and \pi: N \rightarrow N' this operation contructs a morphism in the Serre quotient category. 7.3-5 SerreQuotientCategoryBySpansMorphism SerreQuotientCategoryBySpansMorphism( A/C, alpha, beta )  operation Returns: a morphism Given a Serre quotient category A/C modeled by spans and two morphisms \alpha: M \rightarrow X and \beta: X \rightarrow N this operation constructs the corresponding morphism in the Serre quotient category. 7.3-6 SerreQuotientCategoryBySpansMorphismWithRangeAid SerreQuotientCategoryBySpansMorphismWithRangeAid( A/C, alpha, beta )  operation Returns: a morphism Given a Serre quotient category A/C modeled by spans and two morphisms \alpha: X \rightarrow M and \beta: X \rightarrow N this operation constructs the corresponding morphism in the Serre quotient category. 7.3-7 AsSerreQuotientCategoryBySpansMorphism AsSerreQuotientCategoryBySpansMorphism( A/C, phi )  operation Returns: a morphism Given a Serre quotient category A/C modeled by spans and a morphism phi in A, this constructor returns the corresponding morphism in the Serre quotient category. 7.4 Serre Quotients modeled by three arrows 7.4-1 SerreQuotientCategoryByThreeArrows SerreQuotientCategoryByThreeArrows( A, func[, name] )  operation Returns: a CAP category Creates a Serre quotient category S with name name out of an Abelian category A. The Serre quotient category will be modeled upon the generalized morphisms by three arrows category of A If name is not given, a generic name is constructed out of the name of A. The argument func must be a unary function on the objects of A deciding the membership in the thick subcategory C mentioned above. 7.4-2 AsSerreQuotientCategoryByThreeArrowsObject AsSerreQuotientCategoryByThreeArrowsObject( A/C, M )  operation Returns: an object Given a Serre quotient category A/C modeled by three arrows and an object M in A, this constructor returns the corresponding object in the Serre quotient category. 7.4-3 SerreQuotientCategoryByThreeArrowsMorphism SerreQuotientCategoryByThreeArrowsMorphism( A/C, phi )  operation Returns: a morphism Given a Serre quotient category A/C modeled by three arrows and a generalized morphism phi in the generalized morphism category A/C is modeled upon, this constructor returns the corresponding morphism in the Serre quotient category. 7.4-4 SerreQuotientCategoryByThreeArrowsMorphism SerreQuotientCategoryByThreeArrowsMorphism( A/C, iota, phi, pi )  operation Returns: a morphism Given a Serre quotient category A/C modeled by three arrows and three morphisms \iota: M' \rightarrow M, \phi: M' \rightarrow N' and \pi: N \rightarrow N' this operation contructs a morphism in the Serre quotient category. 7.4-5 SerreQuotientCategoryByThreeArrowsMorphismWithSourceAid SerreQuotientCategoryByThreeArrowsMorphismWithSourceAid( A/C, alpha, beta )  operation Returns: a morphism Given a Serre quotient category A/C modeled by three arrows and two morphisms \alpha: M \rightarrow X and \beta: X \rightarrow N this operation constructs the corresponding morphism in the Serre quotient category. 7.4-6 SerreQuotientCategoryByThreeArrowsMorphismWithRangeAid SerreQuotientCategoryByThreeArrowsMorphismWithRangeAid( A/C, alpha, beta )  operation Returns: a morphism Given a Serre quotient category A/C modeled by three arrows and two morphisms \alpha: X \rightarrow M and \beta: X \rightarrow N this operation constructs the corresponding morphism in the Serre quotient category. 7.4-7 AsSerreQuotientCategoryByThreeArrowsMorphism AsSerreQuotientCategoryByThreeArrowsMorphism( A/C, phi )  operation Returns: a morphism Given a Serre quotient category A/C modeled by three arrows and a morphism phi in A, this constructor returns the corresponding morphism in the Serre quotient category.