Abelian Monoid Elements#

AUTHORS:

  • David Kohel (2005-09)

EXAMPLES:

Recall the example from abelian monoids:

sage: F = FreeAbelianMonoid(5,names = list("abcde"))
sage: (a,b,c,d,e) = F.gens()
sage: a*b^2*e*d
a*b^2*d*e
sage: x = b^2*e*d*a^7
sage: x
a^7*b^2*d*e
sage: x.list()
[7, 2, 0, 1, 1]

The list is a copy, so changing the list does not change the element:

sage: x.list()[0] = 0
sage: x
a^7*b^2*d*e
class sage.monoids.free_abelian_monoid_element.FreeAbelianMonoidElement#

Bases: MonoidElement

Create the element x of the FreeAbelianMonoid parent.

EXAMPLES:

sage: F = FreeAbelianMonoid(5, 'abcde')
sage: F
Free abelian monoid on 5 generators (a, b, c, d, e)
sage: F(1)
1
sage: F(2)
Traceback (most recent call last):
...
TypeError: argument x (= 2) is of the wrong type
sage: F(int(1))
1
sage: a, b, c, d, e = F.gens()
sage: a^2 * b^3 * a^2 * b^4
a^4*b^7
sage: F = FreeAbelianMonoid(5, 'abcde')
sage: a, b, c, d, e = F.gens()
sage: a in F
True
sage: a*b in F
True
list()#

Return the underlying list used to represent self.

If this is a monoid in an abelian monoid on \(n\) generators, then this is a list of nonnegative integers of length \(n\).

EXAMPLES:

sage: F = FreeAbelianMonoid(5, 'abcde')
sage: (a, b, c, d, e) = F.gens()
sage: a.list()
[1, 0, 0, 0, 0]
sage.monoids.free_abelian_monoid_element.is_FreeAbelianMonoidElement(x)#

Queries whether x is an object of type FreeAbelianMonoidElement.

INPUT:

  • x – an object.

OUTPUT:

  • True if x is an object of type FreeAbelianMonoidElement; False otherwise.