combinat::integerVectorsModPermutationGroup – integer vectors modulo a permutation group
combinat::integerVectorsModPermutationGroup(G) creates the combinatorial class of integer vectors modulo the action of a permutation group on the positions.
Categories
Cat::GradedCombinatorialClass, Cat::FacadeDomain(combinat::integerVectors)
See Also:
Cat::PermutationGroup, combinat::integerVectors, Dom::PermutationGroup, Dom::PermutationGroupInvariantRing
Details:
An integer vector of sum and length is a list of nonnegative integers which sum up to .
Let be a permutation group acting on , that is a subgroup of the -th symmetric group. This group acts naturally (on the positions) on integer vectors of length .
combinat::integerVectorsModPermutationGroup(G) represents the graded combinatorial class of integer vectors considered up to an action of . The size of a vector is its sum. An integer vector is canonical if its is the lexicographically largest element in its orbit.
This class is typically used to index orbit-sums of monomials in k variables for the action of a permutation group. See Dom::PermutationGroupInvariantRing.
count – number of orbits of integer vectors
combinat::integerVectorsModPermutationGroup::count(object obj, nonnegative integer n, <constraints>)
Returns the number of orbits of integer vectors of sum n.
list – list canonical integer vectors
combinat::integerVectorsModPermutationGroup::list(object obj, nonnegative integer n)
Returns the list of canonical integer vectors of sum .
isA – membership testing
combinat::integerVectorsModPermutationGroup::isA(object obj)
Returns TRUE if obj is a canonical integer vector.
isStraight – canonicity testing
combinat::integerVectorsModPermutationGroup::isStraight(integer vector v)
Returns TRUE if v is canonical.
straighten – straightening to canonical form
combinat::integerVectorsModPermutationGroup::straighten(integer vector v)
Returns the canonical integer vector in the orbit of v.
orbitSet – orbit
combinat::integerVectorsModPermutationGroup::orbitSet(integer vector v)
Returns a duplicate-free list of the integer vectors in the orbit of .
orbit – orbit
combinat::integerVectorsModPermutationGroup::orbit(integer vector v)
Returns the list of all the integer vectors with . There will be duplicates whenever has a non trivial automorphism group.
orbitSize – size of an orbit
combinat::integerVectorsModPermutationGroup::orbitSize(integer vector v)
Returns the size of the orbit of v.
automorphismGroupSize – size of the automorphism group
combinat::integerVectorsModPermutationGroup::automorphismGroupSize(integer vector v)
Returns the size of the automorphism group of v.
We construct the cyclic group :
C3 := Dom::PermutationGroup(3,[[[1,2,3]]]):
vectors := combinat::integerVectorsModPermutationGroup(C3):
There are integer vectors of sum , considered up to a cyclic rotation:
vectors::count(4)
Here is a list of canonical representatives of the orbits:
vectors::list(4)
We can compute the orbits themselves:
for v in vectors::list(4) do print(vectors::orbit(v)) end:
[[1, 2, 1], [2, 1, 1], [1, 1, 2]]
[[0, 2, 2], [2, 2, 0], [2, 0, 2]]
[[1, 3, 0], [3, 0, 1], [0, 1, 3]]
[[0, 3, 1], [3, 1, 0], [1, 0, 3]]
[[0, 4, 0], [4, 0, 0], [0, 0, 4]]
Note that the orbit contains duplicates whenever an integer vector has a non trivial automorphism group:
vectors::automorphismGroupSize([1,1,1]);
vectors::orbit([1,1,1])
We can get duplicate-free orbits as follow:
vectors::orbitSet([1,1,1]);
Changes in MuPAD 4.0
New Function.