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 math on the positions.

→ Examples


Cat::GradedCombinatorialClass, Cat::FacadeDomain(combinat::integerVectors)

See Also:

Cat::PermutationGroup, combinat::integerVectors, Dom::PermutationGroup, 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 math.

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 math of math.

orbit – orbit

combinat::integerVectorsModPermutationGroup::orbit(integer vector v)

Returns the list of all the integer vectors math with math. There will be duplicates whenever math has a non trivial automorphism group.

orbitSize – size of an orbit

combinat::integerVectorsModPermutationGroup::orbitSize(integer vector v)

Returns the size of the orbit math of v.

automorphismGroupSize – size of the automorphism group

combinat::integerVectorsModPermutationGroup::automorphismGroupSize(integer vector v)

Returns the size of the automorphism group math of v.

Example 1:

We construct the cyclic group math:

    C3       := Dom::PermutationGroup(3,[[[1,2,3]]]):

    vectors  := combinat::integerVectorsModPermutationGroup(C3):


There are math integer vectors of sum math, considered up to a cyclic rotation:



Here is a list of canonical representatives of the orbits:



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:





We can get duplicate-free orbits as follow:



Changes in MuPAD 4.0

New Function.