Available versions of this document: latest release, release 4.13, release 4.12, release 4.11, release 4.10, release 4.9, release 4.8, release 4.7, release 4.6, release 4.5, release 4.4, release 4.3, release 4.2, release 4.1, release 4.0, release 3.6, release 3.5, nightly master
Reference documentation for older polymake versions: release 3.4, release 3.3, release 3.2
BigObject Group
from application group
Object encoding a finite group.
- Example:
Often the group is given by a
PERMUTATION_ACTION
. A permutation of degree d is a vector which lists the d images of the numbers 0,1,…,d-1.> $action = new PermutationAction(GENERATORS => [[1,0,2],[0,2,1]]); > $G = new Group(PERMUTATION_ACTION => $action); > print $G->ORDER; 6
Properties
Symmetry
These properties capture information of the object that is concerned with the action of permutation groups.
-
CHARACTER_TABLE
The character table. The columns are ordered the same way as CONJUGACY_CLASS_REPRESENTATIVES. The rows are ordered the same way as IRREDUCIBLE_DECOMPOSITION. NOTE: The current version of polymake only supports real characters, meaning polymake does not support complex characters.
- Type:
- Example:
The symmetric group on three elements has three conjugacy classes, and three irreduicble representations (trivial, alternating, standard).
> print symmetric_group(3)->CHARACTER_TABLE; 1 -1 1 2 0 -1 1 1 1
> print symmetric_group(3)->PERMUTATION_ACTION->CONJUGACY_CLASS_REPRESENTATIVES; 0 1 2 1 0 2 1 2 0
> print symmetric_group(3)->PERMUTATION_ACTION->IRREDUCIBLE_DECOMPOSITION; 0 1 1
-
CONJUGACY_CLASS_SIZES
The sizes of the conjugacy classes
- Type:
- Example:
The symmetric group on three elements has three conjugacy classes, one of size 1, one of size 2, and the last of size 3.
> print symmetric_group(3)->CONJUGACY_CLASS_SIZES; 1 3 2
> print symmetric_group(3)->PERMUTATION_ACTION->CONJUGACY_CLASSES; {<0 1 2>} {<0 2 1> <1 0 2> <2 1 0>} {<1 2 0> <2 0 1>}
-
FACETS_ACTION
A group action which operates on facets (via their indices). These facets are found in
FACETS
. Depending on how the group was constructed, this may or may not be available. To generate the combinatorial FACETS_ACTIONS of a general polytope, callcombinatorial_symmetries
.- Type:
- Example:
The facets of a regular cube are affinely identical, i.e. the action of the symmetry group of a regular cube is transitive on the cube's facets.
> $c = cube(4, group=>true); > print $c->GROUP->FACETS_ACTION->ORBITS; {0 1 2 3 4 5 6 7}
-
FACET_NORMALS_ACTION
A group action which operates on facet normals (via their indices). The facet normals are found in
FACET_NORMALS
. Depending on how the group was constructed, this may or may not be available.- Type:
- Example:
In the following, a fan is constructed whose facet normals are the three standard basis vectors in three dimensional space. The corresponding group can be described as any permutation of the coordinates.
> $a = new group::PermutationAction(GENERATORS=>[[1,2,0]]); > $g = new group::Group(HOMOGENEOUS_COORDINATE_ACTION=>$a); > $f = new PolyhedralFan(RAYS=>[[1,0,0],[-1,0,0],[0,1,0],[0,-1,0],[0,0,1],[0,0,-1]], MAXIMAL_CONES=>[[0,2,4],[1,2,4],[0,3,4],[1,3,4],[0,2,5],[1,2,5],[0,3,5],[1,3,5]], GROUP=>$g); > print $f->FACET_NORMALS; 1 0 0 0 1 0 0 0 1
> print $f->GROUP->FACET_NORMALS_ACTION->ORBITS; {0 1 2}
-
HOMOGENEOUS_COORDINATE_ACTION
A group action which operates on coordinates, including the '0'-th homogeneous coordinate. This can be used to generate the actions
INPUT_RAYS_ACTION
,INEQUALITIES_ACTION
,FACET_NORMALS_ACTION
when the corresponding actions can be interpeted as permutations of coordinates.- Type:
- Example:
The following induces an action on input rays using a coordinates action.
> $g = new group::Group(HOMOGENEOUS_COORDINATE_ACTION=>group::symmetric_group(3)->PERMUTATION_ACTION); > $f = new PolyhedralFan(INPUT_RAYS=>[[1,0,0],[0,1,0], [0,0,1]], GROUP=>$g); > print $f->GROUP->INPUT_RAYS_ACTION->GENERATORS; 1 0 2 0 2 1
-
IMPLICIT_SET_ACTION
An action on sets where only one representative for each orbit is stored. Depending on how the group the group was constructed, this may or may not be available.
- Type:
- Example:
The symmetry group of the cube induces a group action on its maximal simplices.
> $c=cube(3, group=>true, character_table=>0); > print group::induce_implicit_action($c, $c->GROUP->VERTICES_ACTION, $c->GROUP->REPRESENTATIVE_MAX_INTERIOR_SIMPLICES, "MAX_INTERIOR_SIMPLICES")->GENERATORS; 1 0 3 2 5 4 7 6 0 2 1 3 4 6 5 7 0 1 4 5 2 3 6 7
-
INEQUALITIES_ACTION
A group action which operates on inequalities (via their indices). These inequalities are found in
INEQUALITIES
. Depending on how the group was constructed, this may or may not be available.- Type:
- Example:
The full symmetry group on a right triangle with inequalties defined by x1 + x2 ⇐ 1, x1 >= -1, x2 >=-1 is given by any permuaton of cooordinates x1, x2.
> $a = new group::PermutationAction(GENERATORS=>[[1,0]]); > $g = new group::Group(HOMOGENEOUS_COORDINATE_ACTION=>$a); > $p = new Polytope(INEQUALITIES=>[[1,-1,-1],[1,0,1],[1,1,0]], GROUP=>$g); > print_constraints($p); Inequalities: 0: -x1 - x2 >= -1 1: x2 >= -1 2: x1 >= -1 3: 0 >= -1
> print $p->GROUP->INEQUALITIES_ACTION->ORBITS; {0} {1 2} {3}
-
INPUT_CONES_ACTION
A group action which operates on input cones (via their indices). The input cones are found in
INPUT_CONES
. Depending on how the group was constructed, this may or may not be available.- Type:
- Example:
The following constructs an explicit group with which the input cones may be permuted.
> $a = new group::PermutationAction(GENERATORS=>[[1,0]]); > $g = new group::Group(INPUT_CONES_ACTION=>$a); > $f = new PolyhedralFan(INPUT_RAYS=>[[1,0],[-1,0],[0,1]],INPUT_CONES=>[[0,1],[0,2],[1,2]],GROUP=>$g); > print $f->GROUP->INPUT_CONES_ACTION->ORBITS; {0 1}
-
INPUT_RAYS_ACTION
A group action which operates on input rays (via their indices). These input rays are commonly found in
INPUT_RAYS
orINPUT_RAYS
. Depending on how the group was constructed, this may or may not be available. This group action could, for example, correspond to the symmetry group on the input rays.- Type:
- Example:
The symmetry group of the fan induced by the three standard vectors in three dimensional space corresponds to the full symmetric group on 3 elements acting on the coordinates.
> $g = new group::Group(HOMOGENEOUS_COORDINATE_ACTION=>group::symmetric_group(3)->PERMUTATION_ACTION); > $f = new PolyhedralFan(INPUT_RAYS=>[[1,0,0],[0,1,0], [0,0,1]], GROUP=>$g); > print $f->GROUP->INPUT_RAYS_ACTION->GENERATORS; 1 0 2 0 2 1
-
MAXIMAL_CONES_ACTION
- Type:
- Example:
The following fan consists of four rays, and one can generate from one ray all four by 90-degree rotations. The combinatorial symmetry group acts transitively on the maximal cones.
> $f = new PolyhedralFan(INPUT_RAYS=>[[1,0],[0,1],[-1,0],[0,-1],[2,0]], INPUT_CONES=>[[0,1,4],[1,2],[2,3],[3,0],[0]]); > combinatorial_symmetries($f); > print $f->MAXIMAL_CONES; {0 1} {1 2} {2 3} {0 3}
> print $f->GROUP->MAXIMAL_CONES_ACTION->ORBITS; {0 1 2 3}
-
ORDER
The number of elements in the group.
- Type:
- Example:
The symmetric group on four elements has 4! = 24 elements.
> print symmetric_group(4)->ORDER; 24
-
PERMUTATION_ACTION
A permutation action on integers. Depending on how the group was constructed, this may or may not be availabe.
- Type:
- Example:
Symmetric groups on n elements have a natural interpretation as a permutation action on the integers 0, 1, … , n-1.
> print symmetric_group(3)->PERMUTATION_ACTION->GENERATORS; 1 0 2 0 2 1
-
RAYS_ACTION
A group action which operates on rays (via their indices). These rays are commonly found in
RAYS
orINPUT_RAYS
. Depending on how the group was constructed, this may or may not be available.- Type:
- Example:
The following computes the combinatorial symmetry group of a fan, and then gives the corresponding action on its rays.
> $f = new PolyhedralFan(INPUT_RAYS=>[[1,1],[1,0],[-1,-1]], INPUT_CONES=>[[0,1],[1,2]]); > combinatorial_symmetries($f); > print $f->GROUP->RAYS_ACTION->GENERATORS; 2 1 0
-
REGULAR_REPRESENTATION
The regular representation of this group. This represents the group using permutation matrices of size
ORDER
.- Type:
- Example:
The following constructs the regular represenation of the alternating group on five elements.
> print alternating_group(5)->REGULAR_REPRESENTATION->GENERATORS; <0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 > <0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 >
-
SET_ACTION
A permutation action on a collection of sets of integers. Depending on how the group was constructed, this may or may not be availabe.
- Type:
- Example:
The symmetry group of the cube induces a group action on its facets. Each facet itself can be described by the set of vertices it contains. The outputs of this group refer to indices of sets.
> $f = new Array<Set>([[0,2,4,6],[1,3,5,7],[0,1,4,5],[2,3,6,7],[0,1,2,3],[4,5,6,7]]); > print induced_action(cube_group(3)->PERMUTATION_ACTION, $f)->GENERATORS; 1 0 2 3 4 5 2 3 0 1 4 5 0 1 4 5 2 3
-
SIMPLEXITY_LOWER_BOUND
The symmetrized version of
SIMPLEXITY_LOWER_BOUND
.- Type:
-
VECTOR_ACTION
A group action which operates on vectors (via their indices). These vectors can be found in
VECTORS
.- Type:
- Example:
The following constructs the linear symmetries on the three standard basis vectors in three dimensional space.
> $v = new VectorConfiguration(VECTORS=>[[1,0,0],[0,1,0],[0,0,1]]); > linear_symmetries($v); > print $v->GROUP->VECTOR_ACTION->GENERATORS; 1 0 2 0 2 1