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.Representation
The 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_abstract
Representation of a semigroup.
INPUT:
semigroup
– a semigroupmodule
– a module with a basison_basis
– function which takes as inputg
,m
, whereg
is an element of the semigroup andm
is an element of the indexing set for the basis, and returns the result ofg
acting onm
side
– (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
self
is 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.CombinatorialFreeModule
Abstract base class for representations of semigroups.
INPUT:
semigroup
– a semigroupbase_ring
– a commutative ring
-
semigroup
()¶ Return the semigroup whose representation
self
is.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
self
is.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
self
is 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_abstract
The 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_abstract
The 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_abstract
The 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_abstract
Generic 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
self
is 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_abstract
The 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
self
is a two-sided representation.OUTPUT:
the string
"twosided"
EXAMPLES:
sage: G = groups.permutation.Dihedral(4) sage: R = G.trivial_representation() sage: R.side() 'twosided'