Monoids¶
-
class
sage.categories.monoids.
Monoids
(base_category)¶ Bases:
sage.categories.category_with_axiom.CategoryWithAxiom_singleton
The category of (multiplicative) monoids.
A monoid is a unital
semigroup
, that is a set endowed with a multiplicative binary operation \(*\) which is associative and admits a unit (see Wikipedia article Monoid).EXAMPLES:
sage: Monoids() Category of monoids sage: Monoids().super_categories() [Category of semigroups, Category of unital magmas] sage: Monoids().all_super_categories() [Category of monoids, Category of semigroups, Category of unital magmas, Category of magmas, Category of sets, Category of sets with partial maps, Category of objects] sage: Monoids().axioms() frozenset({'Associative', 'Unital'}) sage: Semigroups().Unital() Category of monoids sage: Monoids().example() An example of a monoid: the free monoid generated by ('a', 'b', 'c', 'd')
-
class
Algebras
(category, *args)¶ Bases:
sage.categories.algebra_functor.AlgebrasCategory
-
class
ElementMethods
¶ -
is_central
()¶ Return whether the element
self
is central.EXAMPLES:
sage: SG4 = SymmetricGroupAlgebra(ZZ,4) sage: SG4(1).is_central() True sage: SG4(Permutation([1,3,2,4])).is_central() False sage: A = GroupAlgebras(QQ).example(); A Algebra of Dihedral group of order 8 as a permutation group over Rational Field sage: sum(i for i in A.basis()).is_central() True
-
-
class
ParentMethods
¶ -
algebra_generators
()¶ Return generators for this algebra.
For a monoid algebra, the algebra generators are built from the monoid generators if available and from the semigroup generators otherwise.
See also
EXAMPLES:
sage: M = Monoids().example(); M An example of a monoid: the free monoid generated by ('a', 'b', 'c', 'd') sage: M.monoid_generators() Finite family {'a': 'a', 'b': 'b', 'c': 'c', 'd': 'd'} sage: M.algebra(ZZ).algebra_generators() Finite family {'a': B['a'], 'b': B['b'], 'c': B['c'], 'd': B['d']} sage: Z12 = Monoids().Finite().example(); Z12 An example of a finite multiplicative monoid: the integers modulo 12 sage: Z12.monoid_generators() Traceback (most recent call last): ... AttributeError: 'IntegerModMonoid_with_category' object has no attribute 'monoid_generators' sage: Z12.semigroup_generators() Family (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11) sage: Z12.algebra(QQ).algebra_generators() Finite family {0: B[0], 1: B[1], 2: B[2], 3: B[3], 4: B[4], 5: B[5], 6: B[6], 7: B[7], 8: B[8], 9: B[9], 10: B[10], 11: B[11]} sage: GroupAlgebras(QQ).example(AlternatingGroup(10)).algebra_generators() Finite family {0: (8,9,10), 1: (1,2,3,4,5,6,7,8,9)} sage: A = DihedralGroup(3).algebra(QQ); A Algebra of Dihedral group of order 6 as a permutation group over Rational Field sage: A.algebra_generators() Finite family {0: (1,2,3), 1: (1,3)}
-
one_basis
()¶ Return the unit of the monoid, which indexes the unit of this algebra, as per
AlgebrasWithBasis.ParentMethods.one_basis()
.EXAMPLES:
sage: A = Monoids().example().algebra(ZZ) sage: A.one_basis() '' sage: A.one() B[''] sage: A(3) 3*B['']
-
-
extra_super_categories
()¶ EXAMPLES:
sage: Monoids().Algebras(QQ).extra_super_categories() [Category of monoids] sage: Monoids().Algebras(QQ).super_categories() [Category of algebras with basis over Rational Field, Category of semigroup algebras over Rational Field, Category of unital magma algebras over Rational Field]
-
class
-
class
CartesianProducts
(category, *args)¶ Bases:
sage.categories.cartesian_product.CartesianProductsCategory
The category of monoids constructed as Cartesian products of monoids.
This construction gives the direct product of monoids. See Wikipedia article Direct_product for more information.
-
class
ParentMethods
¶ -
monoid_generators
()¶ Return the generators of
self
.EXAMPLES:
sage: M = Monoids.free([1,2,3]) sage: N = Monoids.free(['a','b']) sage: C = cartesian_product([M, N]) sage: C.monoid_generators() Family ((F[1], 1), (F[2], 1), (F[3], 1), (1, F['a']), (1, F['b']))
An example with an infinitely generated group (a better output is needed):
sage: N = Monoids.free(ZZ) sage: C = cartesian_product([M, N]) sage: C.monoid_generators() Lazy family (gen(i))_{i in The Cartesian product of (...)}
-
-
extra_super_categories
()¶ A Cartesian product of monoids is endowed with a natural group structure.
EXAMPLES:
sage: C = Monoids().CartesianProducts() sage: C.extra_super_categories() [Category of monoids] sage: sorted(C.super_categories(), key=str) [Category of Cartesian products of semigroups, Category of Cartesian products of unital magmas, Category of monoids]
-
class
-
class
Commutative
(base_category)¶ Bases:
sage.categories.category_with_axiom.CategoryWithAxiom_singleton
Category of commutative (abelian) monoids.
A monoid \(M\) is commutative if \(xy = yx\) for all \(x,y \in M\).
-
static
free
(index_set=None, names=None, **kwds)¶ Return a free abelian monoid on \(n\) generators or with the generators indexed by a set \(I\).
A free monoid is constructed by specifing either:
- the number of generators and/or the names of the generators, or
- the indexing set for the generators.
INPUT:
index_set
– (optional) an index set for the generators; if an integer, then this represents \(\{0, 1, \ldots, n-1\}\)names
– a string or list/tuple/iterable of strings (default:'x'
); the generator names or name prefix
EXAMPLES:
sage: Monoids.Commutative.free(index_set=ZZ) Free abelian monoid indexed by Integer Ring sage: Monoids().Commutative().free(ZZ) Free abelian monoid indexed by Integer Ring sage: F.<x,y,z> = Monoids().Commutative().free(); F Free abelian monoid indexed by {'x', 'y', 'z'}
-
static
-
class
ElementMethods
¶ -
is_one
()¶ Return whether
self
is the one of the monoid.The default implementation is to compare with
self.one()
.
-
powers
(n)¶ Return the list \([x^0, x^1, \ldots, x^{n-1}]\).
EXAMPLES:
sage: A = Matrix([[1, 1], [-1, 0]]) sage: A.powers(6) [ [1 0] [ 1 1] [ 0 1] [-1 0] [-1 -1] [ 0 -1] [0 1], [-1 0], [-1 -1], [ 0 -1], [ 1 0], [ 1 1] ]
-
-
Finite
¶
-
Inverse
¶ alias of
sage.categories.groups.Groups
-
class
ParentMethods
¶ -
prod
(args)¶ n-ary product of elements of
self
.INPUT:
args
– a list (or iterable) of elements ofself
Returns the product of the elements in
args
, as an element ofself
.EXAMPLES:
sage: S = Monoids().example() sage: S.prod([S('a'), S('b')]) 'ab'
-
semigroup_generators
()¶ Return the generators of
self
as a semigroup.The generators of a monoid \(M\) as a semigroup are the generators of \(M\) as a monoid and the unit.
EXAMPLES:
sage: M = Monoids().free([1,2,3]) sage: M.semigroup_generators() Family (1, F[1], F[2], F[3])
-
submonoid
(generators, category=None)¶ Return the multiplicative submonoid generated by
generators
.INPUT:
generators
– a finite family of elements ofself
, or a list, iterable, … that can be converted into one (seeFamily
).category
– a category
This is a shorthand for
Semigroups.ParentMethods.subsemigroup()
that specifies that this is a submonoid, and in particular that the unit isself.one()
.EXAMPLES:
sage: R = IntegerModRing(15) sage: M = R.submonoid([R(3),R(5)]); M A submonoid of (Ring of integers modulo 15) with 2 generators sage: M.list() [1, 3, 5, 9, 0, 10, 12, 6]
Not the presence of the unit, unlike in:
sage: S = R.subsemigroup([R(3),R(5)]); S A subsemigroup of (Ring of integers modulo 15) with 2 generators sage: S.list() [3, 5, 9, 0, 10, 12, 6]
This method is really a shorthand for subsemigroup:
sage: M2 = R.subsemigroup([R(3),R(5)], one=R.one()) sage: M2 is M True
-
-
class
Subquotients
(category, *args)¶
-
class
WithRealizations
(category, *args)¶ Bases:
sage.categories.with_realizations.WithRealizationsCategory
-
class
ParentMethods
¶ -
one
()¶ Return the unit of this monoid.
This default implementation returns the unit of the realization of
self
given bya_realization()
.EXAMPLES:
sage: A = Sets().WithRealizations().example(); A The subset algebra of {1, 2, 3} over Rational Field sage: A.one.__module__ 'sage.categories.monoids' sage: A.one() F[{}]
-
-
class
-
static
free
(index_set=None, names=None, **kwds)¶ Return a free monoid on \(n\) generators or with the generators indexed by a set \(I\).
A free monoid is constructed by specifing either:
- the number of generators and/or the names of the generators
- the indexing set for the generators
INPUT:
index_set
– (optional) an index set for the generators; if an integer, then this represents \(\{0, 1, \ldots, n-1\}\)names
– a string or list/tuple/iterable of strings (default:'x'
); the generator names or name prefix
EXAMPLES:
sage: Monoids.free(index_set=ZZ) Free monoid indexed by Integer Ring sage: Monoids().free(ZZ) Free monoid indexed by Integer Ring sage: F.<x,y,z> = Monoids().free(); F Free monoid indexed by {'x', 'y', 'z'}
-
class