Thanks for the feedback. Indeed, defined as such, C is a broken object - this was just the smallest example where I could reproduce the error.
I was hoping that it should be possible to access the module elements without referring to 1, or multiplication. I would like to define multiplication later in the definition of some algebraic structure, but still inherit the methods from the category. (Similarly to https://doc.sagemath.org/html/en/thematic_tutorials/coercion_and_categories.html) In particular, the error originally appeared in the form of "if x == 0:" where x is an element of the module, as should be 0 (now coerced..). Best, Akos On Thursday, February 3, 2022 at 10:10:29 PM UTC+1 vdelecroix wrote: > Now I am thinking about it, I am not sure it is a bug. You did > not defined any algebra structure (neither the unit nor the > product on the basis). C is definitely a broken object. > > However, it would make sense for C(0) not to call C(1). > > Vincent > > Le 03/02/2022 à 21:49, Akos M a écrit : > > Thanks, I created - my first - ticket. > > https://trac.sagemath.org/ticket/33285#ticket > > > > Once the ticket is (eventually) resolved, how do I update sage to involve > > the resolution? > > > > Thanks, > > Akos > > > > On Thursday, February 3, 2022 at 1:39:10 PM UTC+1 vdelecroix wrote: > > > >> It is definitely a bug. Do you know how to open > >> a ticket on the trac server ? > >> > >> The infinite loop comes from C.one() calling C(1) > >> calling C.one()... When you specify a category > >> the inheritance is different and this explains > >> the difference of behaviour. > >> > >> Best > >> Vincent > >> > >> Le 03/02/2022 à 11:29, Akos M a écrit : > >>> > >>> > >>> Hi, > >>> > >>> The snippet > >>> D = CombinatorialFreeModule(ZZ, [1,2]) D(0) > >>> > >>> works fine, however > >>> C = CombinatorialFreeModule(ZZ, [1,2], category=AlgebrasWithBasis(ZZ)) > >> C(0) > >>> > >>> gets into an infinite loop: > >>> File > >>> > >> > "/opt/sagemath-9.0/local/lib/python3.7/site-packages/sage/categories/magmas.py", > >>> line 488, in one return self(1) File "sage/structure/parent.pyx", line > >> 900, > >>> in sage.structure.parent.Parent.__call__ > >>> (build/cythonized/sage/structure/parent.c:9218) return mor._call_(x) > File > >>> "sage/categories/map.pyx", line 1694, in > >>> sage.categories.map.FormalCompositeMap._call_ > >>> (build/cythonized/sage/categories/map.c:11607) x = f._call_(x) File > >>> "sage/categories/morphism.pyx", line 549, in > >>> sage.categories.morphism.SetMorphism._call_ > >>> (build/cythonized/sage/categories/morphism.c:8489) cpdef Element > >>> _call_(self, x): File "sage/categories/morphism.pyx", line 568, in > >>> sage.categories.morphism.SetMorphism._call_ > >>> (build/cythonized/sage/categories/morphism.c:8439) return > >> self._function(x) > >>> File > >>> > >> > "/opt/sagemath-9.0/local/lib/python3.7/site-packages/sage/categories/unital_algebras.py", > >>> line 70, in from_base_ring return self.one()._lmul_(r) File > >>> "sage/misc/cachefunc.pyx", line 2310, in > >>> sage.misc.cachefunc.CachedMethodCallerNoArgs.__call__ > >>> (build/cythonized/sage/misc/cachefunc.c:12712) self.cache = > >>> f(self._instance) > >>> > >>> Why is this? Is this expected behaviour? > >>> (Also asked on: > >>> > >> > https://ask.sagemath.org/question/60903/possible-bug-specifying-category-messes-up-coercion/ > >> ) > >>> > >>> Thanks, > >>> Akos > >>> > >> > > > -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/sage-devel/f1634604-9794-4af2-9dec-108455d5e6e5n%40googlegroups.com.