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.

Reply via email to