Representations Of A Semigroup¶
AUTHORS:
Travis Scrimshaw (2015-11-21): Initial version
Siddharth Singh (2020-03-21): Signed Representation
-
class
sage.modules.with_basis.representation.RegularRepresentation(semigroup, base_ring, side='left')¶ Bases:
sage.modules.with_basis.representation.RepresentationThe regular representation of a semigroup.
The left regular representation of a semigroup \(S\) over a commutative ring \(R\) is the semigroup ring \(R[S]\) equipped with the left \(S\)-action \(x b_y = b_{xy}\), where \((b_z)_{z \in S}\) is the natural basis of \(R[S]\) and \(x,y \in S\).
INPUT:
semigroup– a semigroupbase_ring– the base ring for the representationside– (default:"left") whether this is a"left"or"right"representation
REFERENCES:
-
class
sage.modules.with_basis.representation.Representation(semigroup, module, on_basis, side='left')¶ Bases:
sage.modules.with_basis.representation.Representation_abstractRepresentation of a semigroup.
INPUT:
semigroup– a semigroupmodule– a module with a basison_basis– function which takes as inputg,m, wheregis an element of the semigroup andmis an element of the indexing set for the basis, and returns the result ofgacting onmside– (default:"left") whether this is a"left"or"right"representation
EXAMPLES:
We construct the sign representation of a symmetric group:
sage: G = SymmetricGroup(4) sage: M = CombinatorialFreeModule(QQ, ['v']) sage: from sage.modules.with_basis.representation import Representation sage: on_basis = lambda g,m: M.term(m, g.sign()) sage: R = Representation(G, M, on_basis) sage: x = R.an_element(); x 2*B['v'] sage: c,s = G.gens() sage: c,s ((1,2,3,4), (1,2)) sage: c * x -2*B['v'] sage: s * x -2*B['v'] sage: c * s * x 2*B['v'] sage: (c * s) * x 2*B['v']
This extends naturally to the corresponding group algebra:
sage: A = G.algebra(QQ) sage: s,c = A.algebra_generators() sage: c,s ((1,2,3,4), (1,2)) sage: c * x -2*B['v'] sage: s * x -2*B['v'] sage: c * s * x 2*B['v'] sage: (c * s) * x 2*B['v'] sage: (c + s) * x -4*B['v']
REFERENCES:
-
class
Element¶ Bases:
sage.modules.with_basis.indexed_element.IndexedFreeModuleElement
-
side()¶ Return whether
selfis a left or a right representation.OUTPUT:
the string
"left"or"right"
EXAMPLES:
sage: G = groups.permutation.Dihedral(4) sage: R = G.regular_representation() sage: R.side() 'left' sage: S = G.regular_representation(side="right") sage: S.side() 'right'
-
class
sage.modules.with_basis.representation.Representation_abstract(semigroup, base_ring, *args, **opts)¶ Bases:
sage.combinat.free_module.CombinatorialFreeModuleAbstract base class for representations of semigroups.
INPUT:
semigroup– a semigroupbase_ring– a commutative ring
-
semigroup()¶ Return the semigroup whose representation
selfis.EXAMPLES:
sage: G = SymmetricGroup(4) sage: M = CombinatorialFreeModule(QQ, ['v']) sage: from sage.modules.with_basis.representation import Representation sage: on_basis = lambda g,m: M.term(m, g.sign()) sage: R = Representation(G, M, on_basis) sage: R.semigroup() Symmetric group of order 4! as a permutation group
-
semigroup_algebra()¶ Return the semigroup algebra whose representation
selfis.EXAMPLES:
sage: G = SymmetricGroup(4) sage: M = CombinatorialFreeModule(QQ, ['v']) sage: from sage.modules.with_basis.representation import Representation sage: on_basis = lambda g,m: M.term(m, g.sign()) sage: R = Representation(G, M, on_basis) sage: R.semigroup_algebra() Symmetric group algebra of order 4 over Rational Field
-
side()¶ Return whether
selfis a left, right, or two-sided representation.OUTPUT:
the string
"left","right", or"twosided"
EXAMPLES:
sage: G = groups.permutation.Dihedral(4) sage: R = G.regular_representation() sage: R.side() 'left'
-
class
sage.modules.with_basis.representation.SignRepresentationCoxeterGroup(group, base_ring, sign_function=None)¶ Bases:
sage.modules.with_basis.representation.SignRepresentation_abstractThe sign representation for a Coxeter group.
EXAMPLES:
sage: G = WeylGroup(["A", 1, 1]) sage: V = G.sign_representation() sage: TestSuite(V).run()
-
class
sage.modules.with_basis.representation.SignRepresentationMatrixGroup(group, base_ring, sign_function=None)¶ Bases:
sage.modules.with_basis.representation.SignRepresentation_abstractThe sign representation for a matrix group.
EXAMPLES:
sage: G = groups.permutation.PGL(2, 3) sage: V = G.sign_representation() sage: TestSuite(V).run()
-
class
sage.modules.with_basis.representation.SignRepresentationPermgroup(group, base_ring, sign_function=None)¶ Bases:
sage.modules.with_basis.representation.SignRepresentation_abstractThe sign representation for a permutation group.
EXAMPLES:
sage: G = groups.permutation.PGL(2, 3) sage: V = G.sign_representation() sage: TestSuite(V).run()
-
class
sage.modules.with_basis.representation.SignRepresentation_abstract(group, base_ring, sign_function=None)¶ Bases:
sage.modules.with_basis.representation.Representation_abstractGeneric implementation of a sign representation.
The sign representation of a semigroup \(S\) over a commutative ring \(R\) is the \(1\)-dimensional \(R\)-module on which every element of \(S\) acts by 1 if order of element is even (including 0) or -1 if order of element if odd.
This is simultaneously a left and right representation.
INPUT:
permgroup– a permgroupbase_ring– the base ring for the representationsign_function– a function which returns 1 or -1 depending on the elements sign
REFERENCES:
-
class
Element¶ Bases:
sage.modules.with_basis.indexed_element.IndexedFreeModuleElement
-
side()¶ Return that
selfis a two-sided representation.OUTPUT:
the string
"twosided"
EXAMPLES:
sage: G = groups.permutation.Dihedral(4) sage: R = G.sign_representation() sage: R.side() 'twosided'
-
class
sage.modules.with_basis.representation.TrivialRepresentation(semigroup, base_ring)¶ Bases:
sage.modules.with_basis.representation.Representation_abstractThe trivial representation of a semigroup.
The trivial representation of a semigroup \(S\) over a commutative ring \(R\) is the \(1\)-dimensional \(R\)-module on which every element of \(S\) acts by the identity.
This is simultaneously a left and right representation.
INPUT:
semigroup– a semigroupbase_ring– the base ring for the representation
REFERENCES:
-
class
Element¶ Bases:
sage.modules.with_basis.indexed_element.IndexedFreeModuleElement
-
side()¶ Return that
selfis a two-sided representation.OUTPUT:
the string
"twosided"
EXAMPLES:
sage: G = groups.permutation.Dihedral(4) sage: R = G.trivial_representation() sage: R.side() 'twosided'