Parentmethods for subcategories obtained from Functorial Constructions

asked 2019-11-15 20:48:37 +0200

heluani gravatar image

In a related question to

https://ask.sagemath.org/question/487...

I have a category Cs which implements the axiom FinitelyGeneratedAsCs. I want to define parent methods for graded objects of Cs. Some of these apply for all objects, some only for the finitely generated ones. If I have a design sketched as


class Cs(Category_over_base_ring):

    class Subcategorymethods:
        def Graded(self):
               return GradedModules.category_of(self)
         def FinitelyGenerate(self):
                return self._with_axiom("FinitelyGeneratedAsCs")

     class Graded(GradedModulesCategory):
             class ParentMethods:
                     def some_method_for_all_parents(self)

     class FinitelyGeneratedAsCs(CategoryWithAxiom_over_base_ring):
            class Graded(GradedModulesCategory):
                     class ParentMethods:
                             def some_method_only_for_fg_graded_parents(self):

Then I receceive

sage: Cs(QQ).FinitelyGenerated().Graded()
TypeError: Graded() takes exactly 1 argument (2 given)

If I however implement Graded as an axiom, say FakeGraded then I can set up parent methods as described above (just need to add a call to self._with_axiom('FakeGraded') in the appropriate place. I thought however that to have better integration with other parts of Sage I should implement Graded as the functorial construction in GradedModulesCategory but I'm hitting the above error.

edit retag flag offensive close merge delete