Module: sage.monoids.free_monoid
Free Monoids
Author: David Kohel (kohel@maths.usyd.edu.au), 2005/09
SAGE supports free monoids on any prescribed finite number
of generators. Use the FreeMonoid function to create a free
monoid, and the gen and gens functions to obtain the
corresponding generators. You can print the generators as arbitrary
strings using the optional names argument to the
FreeMonoid function.
Module-level Functions
| n, names) |
Returns a free monoid on
generators.
Input:
sage: FreeMonoid(0,'') Free monoid on 0 generators () sage: F.<a,b,c,d,e> = FreeMonoid(5); F Free monoid on 5 generators (a, b, c, d, e) sage: F(1) 1 sage: mul([ a, b, a, c, b, d, c, d ], F(1)) a*b*a*c*b*d*c*d
| x) |
Return True if
is a free monoid.
sage: is_FreeMonoid(5) False sage: is_FreeMonoid(FreeMonoid(7,'a')) True sage: is_FreeMonoid(FreeAbelianMonoid(7,'a')) False sage: is_FreeMonoid(FreeAbelianMonoid(0,'')) False
Class: FreeMonoid_class
| self, n, [names=None]) |
Create free monoid on
generators.
Input:
sage: F = FreeMonoid(3,'x'); F Free monoid on 3 generators (x0, x1, x2) sage: x = F.gens() sage: x[0]*x[1]**5 * (x[0]*x[2]) x0*x1^5*x0*x2 sage: F = FreeMonoid(3, 'a') sage: F Free monoid on 3 generators (a0, a1, a2)
sage: M = FreeMonoid(3, names=['a','b','c']) sage: loads(M.dumps()) == M True
Functions: gen,
ngens
| self, [i=0]) |
The
-th generator of the monoid.
Input:
sage: F = FreeMonoid(3, 'a') sage: F.gen(1) a1 sage: F.gen(2) a2 sage: F.gen(5) Traceback (most recent call last): ... IndexError: Argument i (= 5) must be between 0 and 2.
| self) |
The number of free generators of the monoid.
sage: F = FreeMonoid(2005, 'a') sage: F.ngens() 2005
Special Functions: __call__,
__cmp__,
__contains__,
__init__,
__repr__
| self, x, [check=True]) |
Return
coerced into this free monoid.
One can create a free monoid from the integer 1 and from a
list of 2-tuples of integers
, where
corresponds to
, where
is the
th generator.
sage: F = FreeMonoid(3, 'a') sage: F(1) 1 sage: F(F.gen(0)) a0 sage: F(0) Traceback (most recent call last): ... TypeError: Argument x (= 0) is of the wrong type.
sage: F([(0,5),(1,2),(0,10),(0,2),(1,2)]) a0^5*a1^2*a0^12*a1^2