honoring zero element in a custom algebraic structure

asked 3 years ago

Max Alekseyev gravatar image

updated 3 years ago

I have a custom multiplicative monoid with a zero element, and I'd like to define an algebra over it such that the monoid's zero is coerced to the algebra's zero.

Let's use the code from https://ask.sagemath.org/question/320... as an illustration. The monoid defined by F = FiniteMonoidFromMultiplicationTable([[0, 0, 0], [0, 1, 1], [0, 1, 2]]) has zero F(0). Now, if I define an algebra A = F.algebra(QQ), it has no idea that A(F(0)) is simply zero. How to adjust the monoid definition to make its zero recognized by the algebra (i.e., A(F(0)) must be the same as A(0))?

For convenience, here is complete example code at sagecell.

Preview: (hide)

Comments

The element 1z in the algebra (where z is the zero of F) is the sum of 1 term, whereas the zero element in the algebra is the sum of zero terms. In SageMath, A(F(0)).monomial_coefficients() is {0 : 1} whereas A.zero().monomial_coefficients() is {}. So there is no way to adjust the monoid definition to achieve what you want.

rburing gravatar imagerburing ( 3 years ago )

What is an alternative? Can we adjust the definition of algebra or create something on the top of it (to nullify the coefficient of z)? In my monoid I have many divisors of zero, which result in unbounded growth of this coefficient under multiplication of algebra elements.

Max Alekseyev gravatar imageMax Alekseyev ( 3 years ago )

I guess take a quotient, but it doesn't seem to be implemented.

rburing gravatar imagerburing ( 3 years ago )

@rburning : shouldn't your comments be edited as an answer for the benefit of future users perusing the archives ?

Emmanuel Charpentier gravatar imageEmmanuel Charpentier ( 3 years ago )

@Emmanuel I am hoping that there might still exist a positive answer to the intended question (how to obtain a certain algebraic structure), which I would prefer to my negative answer to the literal question.

rburing gravatar imagerburing ( 3 years ago )