Todo
Warning
This code uses a different convention than in Sagan’s book “The Symmetric Group”
Bases: sage.combinat.symmetric_group_representations.SymmetricGroupRepresentation_generic_class
An irreducible representation of the symmetric group corresponding to partition.
For more information, see the documentation for SymmetricGroupRepresentation().
EXAMPLES:
sage: spc = SymmetricGroupRepresentation([3])
sage: spc([3,2,1])
[1]
sage: spc == loads(dumps(spc))
True
sage: spc = SymmetricGroupRepresentation([3], cache_matrices=False)
sage: spc([3,2,1])
[1]
sage: spc == loads(dumps(spc))
True
Returns the matrix representing the permutation in this irreducible representation.
Note
This method caches the results.
EXAMPLES:
sage: spc = SymmetricGroupRepresentation([3,1], 'specht')
sage: spc.representation_matrix(Permutation([2,1,3,4]))
[ 0 -1 0]
[-1 0 0]
[ 0 0 1]
sage: spc.representation_matrix(Permutation([3,2,1,4]))
[0 0 1]
[0 1 0]
[1 0 0]
Return 0 if u+v is not a permutation, and the signature of the permutation otherwise.
This is the scalar product of a vertex u of the underlying Yang-Baxter graph with the vertex v in the ‘dual’ Yang-Baxter graph.
EXAMPLES:
sage: spc = SymmetricGroupRepresentation([3,2], 'specht')
sage: spc.scalar_product((1,0,2,1,0),(0,3,0,3,0))
-1
sage: spc.scalar_product((1,0,2,1,0),(3,0,0,3,0))
0
Return the scalar product matrix corresponding to permutation.
The entries are given by the scalar products of u and permutation.action(v), where u is a vertex in the underlying Yang-Baxter graph and v is a vertex in the dual graph.
EXAMPLES:
sage: spc = SymmetricGroupRepresentation([3,1], 'specht')
sage: spc.scalar_product_matrix()
[ 1 0 0]
[ 0 -1 0]
[ 0 0 1]
Bases: sage.combinat.symmetric_group_representations.SymmetricGroupRepresentations_class
Irreducible representations of the symmetric group.
See the documentation for SymmetricGroupRepresentations() for more information.
EXAMPLES:
sage: snorm = SymmetricGroupRepresentations(3, "seminormal")
sage: snorm == loads(dumps(snorm))
True
alias of SpechtRepresentation
The irreducible representation of the symmetric group corresponding to partition.
INPUT:
partition – a partition of a positive integer
ring – the ring over which the representation is defined.
cache_matrices – boolean (default: True) if True, then any representation matrices that are computed are cached.
EXAMPLES:
Young’s orthogonal representation: the matrices are orthogonal.
sage: orth = SymmetricGroupRepresentation([2,1], "orthogonal"); orth
Orthogonal representation of the symmetric group corresponding to [2, 1]
sage: all(a*a.transpose() == a.parent().identity_matrix() for a in orth)
True
sage: orth = SymmetricGroupRepresentation([3,2], "orthogonal"); orth
Orthogonal representation of the symmetric group corresponding to [3, 2]
sage: orth([2,1,3,4,5])
[ 1 0 0 0 0]
[ 0 1 0 0 0]
[ 0 0 -1 0 0]
[ 0 0 0 1 0]
[ 0 0 0 0 -1]
sage: orth([1,3,2,4,5])
[ 1 0 0 0 0]
[ 0 -1/2 1/2*sqrt(3) 0 0]
[ 0 1/2*sqrt(3) 1/2 0 0]
[ 0 0 0 -1/2 1/2*sqrt(3)]
[ 0 0 0 1/2*sqrt(3) 1/2]
sage: orth([1,2,4,3,5])
[ -1/3 2/3*sqrt(2) 0 0 0]
[2/3*sqrt(2) 1/3 0 0 0]
[ 0 0 1 0 0]
[ 0 0 0 1 0]
[ 0 0 0 0 -1]
The Specht Representation:
sage: spc = SymmetricGroupRepresentation([3,2], "specht")
sage: spc.scalar_product_matrix(Permutation([1,2,3,4,5]))
[ 1 0 0 0 0]
[ 0 -1 0 0 0]
[ 0 0 1 0 0]
[ 0 0 0 1 0]
[-1 0 0 0 -1]
sage: spc.scalar_product_matrix(Permutation([5,4,3,2,1]))
[ 1 -1 0 1 0]
[ 0 0 1 0 -1]
[ 0 0 0 -1 1]
[ 0 1 -1 -1 1]
[-1 0 0 0 -1]
sage: spc([5,4,3,2,1])
[ 1 -1 0 1 0]
[ 0 0 -1 0 1]
[ 0 0 0 -1 1]
[ 0 1 -1 -1 1]
[ 0 1 0 -1 1]
sage: spc.verify_representation()
True
By default, any representation matrices that are computed are cached:
sage: spc = SymmetricGroupRepresentation([3,2], "specht")
sage: spc([5,4,3,2,1])
[ 1 -1 0 1 0]
[ 0 0 -1 0 1]
[ 0 0 0 -1 1]
[ 0 1 -1 -1 1]
[ 0 1 0 -1 1]
sage: spc._cache__representation_matrix
{(([5, 4, 3, 2, 1],), ()): [ 1 -1 0 1 0]
[ 0 0 -1 0 1]
[ 0 0 0 -1 1]
[ 0 1 -1 -1 1]
[ 0 1 0 -1 1]}
This can be turned off with the keyword cache_matrices:
sage: spc = SymmetricGroupRepresentation([3,2], "specht", cache_matrices=False)
sage: spc([5,4,3,2,1])
[ 1 -1 0 1 0]
[ 0 0 -1 0 1]
[ 0 0 0 -1 1]
[ 0 1 -1 -1 1]
[ 0 1 0 -1 1]
sage: hasattr(spc, '_cache__representation_matrix')
False
Note
The implementation is based on the paper [Las].
REFERENCES:
[Las] | (1, 2) Alain Lascoux, ‘Young representations of the symmetric group.’ http://phalanstere.univ-mlv.fr/~al/ARTICLES/ProcCrac.ps.gz |
AUTHORS:
Bases: sage.structure.sage_object.SageObject
Generic methods for a representation of the symmetric group.
Return the character of the representation.
EXAMPLES:
The trivial character:
sage: rho = SymmetricGroupRepresentation([3])
sage: chi = rho.to_character(); chi
Character of Symmetric group of order 3! as a permutation group
sage: chi.values()
[1, 1, 1]
sage: all(chi(g) == 1 for g in SymmetricGroup(3))
True
The sign character:
sage: rho = SymmetricGroupRepresentation([1,1,1])
sage: chi = rho.to_character(); chi
Character of Symmetric group of order 3! as a permutation group
sage: chi.values()
[1, -1, 1]
sage: all(chi(g) == g.sign() for g in SymmetricGroup(3))
True
The defining representation:
sage: triv = SymmetricGroupRepresentation([4])
sage: hook = SymmetricGroupRepresentation([3,1])
sage: def_rep = lambda p : triv(p).block_sum(hook(p)).trace()
sage: map(def_rep, Permutations(4))
[4, 2, 2, 1, 1, 2, 2, 0, 1, 0, 0, 1, 1, 0, 2, 1, 0, 0, 0, 1, 1, 2, 0, 0]
sage: [p.to_matrix().trace() for p in Permutations(4)]
[4, 2, 2, 1, 1, 2, 2, 0, 1, 0, 0, 1, 1, 0, 2, 1, 0, 0, 0, 1, 1, 2, 0, 0]
Verify the representation: tests that the images of the simple transpositions are involutions and tests that the braid relations hold.
EXAMPLES:
sage: spc = SymmetricGroupRepresentation([1,1,1])
sage: spc.verify_representation()
True
sage: spc = SymmetricGroupRepresentation([4,2,1])
sage: spc.verify_representation()
True
Irreducible representations of the symmetric group.
INPUT:
n – positive integer
ring – the ring over which the representation is defined.
cache_matrices – boolean (default: True) if True, then any representation matrices that are computed are cached.
EXAMPLES:
Young’s orthogonal representation: the matrices are orthogonal.
sage: orth = SymmetricGroupRepresentations(3, "orthogonal"); orth
Orthogonal representations of the symmetric group of order 3! over Symbolic Ring
sage: orth.list()
[Orthogonal representation of the symmetric group corresponding to [3], Orthogonal representation of the symmetric group corresponding to [2, 1], Orthogonal representation of the symmetric group corresponding to [1, 1, 1]]
sage: orth([2,1])([1,2,3])
[1 0]
[0 1]
Young’s seminormal representation.
sage: snorm = SymmetricGroupRepresentations(3, "seminormal"); snorm
Seminormal representations of the symmetric group of order 3! over Rational Field
sage: sgn = snorm([1,1,1]); sgn
Seminormal representation of the symmetric group corresponding to [1, 1, 1]
sage: map(sgn, Permutations(3))
[[1], [-1], [-1], [1], [1], [-1]]
The Specht Representation.
sage: spc = SymmetricGroupRepresentations(5, "specht"); spc
Specht representations of the symmetric group of order 5! over Integer Ring
sage: spc([3,2])([5,4,3,2,1])
[ 1 -1 0 1 0]
[ 0 0 -1 0 1]
[ 0 0 0 -1 1]
[ 0 1 -1 -1 1]
[ 0 1 0 -1 1]
Note
The implementation is based on the paper [Las].
AUTHORS:
Bases: sage.combinat.combinat.CombinatorialClass
Generic methods for the CombinatorialClass of irreducible representations of the symmetric group.
Bases: sage.combinat.symmetric_group_representations.YoungRepresentation_generic
An irreducible representation of the symmetric group corresponding to partition.
For more information, see the documentation for SymmetricGroupRepresentation().
EXAMPLES:
sage: spc = SymmetricGroupRepresentation([3])
sage: spc([3,2,1])
[1]
sage: spc == loads(dumps(spc))
True
sage: spc = SymmetricGroupRepresentation([3], cache_matrices=False)
sage: spc([3,2,1])
[1]
sage: spc == loads(dumps(spc))
True
Bases: sage.combinat.symmetric_group_representations.YoungRepresentation_generic
An irreducible representation of the symmetric group corresponding to partition.
For more information, see the documentation for SymmetricGroupRepresentation().
EXAMPLES:
sage: spc = SymmetricGroupRepresentation([3])
sage: spc([3,2,1])
[1]
sage: spc == loads(dumps(spc))
True
sage: spc = SymmetricGroupRepresentation([3], cache_matrices=False)
sage: spc([3,2,1])
[1]
sage: spc == loads(dumps(spc))
True
Bases: sage.combinat.symmetric_group_representations.SymmetricGroupRepresentation_generic_class
Generic methods for Young’s representations of the symmetric group.
Return the matrix representing permutation.
EXAMPLES:
sage: orth = SymmetricGroupRepresentation([2,1], "orthogonal")
sage: orth.representation_matrix(Permutation([2,1,3]))
[ 1 0]
[ 0 -1]
sage: orth.representation_matrix(Permutation([1,3,2]))
[ -1/2 1/2*sqrt(3)]
[1/2*sqrt(3) 1/2]
sage: norm = SymmetricGroupRepresentation([2,1], "seminormal")
sage: p = PermutationGroupElement([2,1,3])
sage: norm.representation_matrix(p)
[ 1 0]
[ 0 -1]
sage: p = PermutationGroupElement([1,3,2])
sage: norm.representation_matrix(p)
[-1/2 3/2]
[ 1/2 1/2]
Return the matrix representing the transposition that swaps i and i+1.
EXAMPLES:
sage: orth = SymmetricGroupRepresentation([2,1], "orthogonal")
sage: orth.representation_matrix_for_simple_transposition(1)
[ 1 0]
[ 0 -1]
sage: orth.representation_matrix_for_simple_transposition(2)
[ -1/2 1/2*sqrt(3)]
[1/2*sqrt(3) 1/2]
sage: norm = SymmetricGroupRepresentation([2,1], "seminormal")
sage: norm.representation_matrix_for_simple_transposition(1)
[ 1 0]
[ 0 -1]
sage: norm.representation_matrix_for_simple_transposition(2)
[-1/2 3/2]
[ 1/2 1/2]
Bases: sage.combinat.symmetric_group_representations.SymmetricGroupRepresentations_class
Irreducible representations of the symmetric group.
See the documentation for SymmetricGroupRepresentations() for more information.
EXAMPLES:
sage: snorm = SymmetricGroupRepresentations(3, "seminormal")
sage: snorm == loads(dumps(snorm))
True
alias of YoungRepresentation_Orthogonal
Bases: sage.combinat.symmetric_group_representations.SymmetricGroupRepresentations_class
Irreducible representations of the symmetric group.
See the documentation for SymmetricGroupRepresentations() for more information.
EXAMPLES:
sage: snorm = SymmetricGroupRepresentations(3, "seminormal")
sage: snorm == loads(dumps(snorm))
True
alias of YoungRepresentation_Seminormal
Returns the “vector of contents” associated to partition.
EXAMPLES:
sage: from sage.combinat.symmetric_group_representations import partition_to_vector_of_contents
sage: partition_to_vector_of_contents([3,2])
(0, 1, 2, -1, 0)