There is an explanation and a "solution" on the ticket.

Best
Vincent

Le 03/02/2022 à 23:48, Akos M a écrit :
Replacing 0 with self.zero() works perfectly, thank you!

Best,
Akos

On Thursday, February 3, 2022 at 11:34:43 PM UTC+1 Akos M wrote:

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/bd089958-fbd3-056a-72c9-1f3fa0bfb1e3%40gmail.com.

Reply via email to