Home Online Manual
Top
Back: createGroup
Forward: createTorsionFreeGroup
FastBack:
FastForward:
Up: multigrading_lib
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document

D.15.10.6 createQuotientGroup

Procedure from library multigrading.lib (see multigrading_lib).

Usage:
createGroup(L); L is an integer matrix

Purpose:
create the group of the form (I+L)/L,
where I is the square identity matrix of size nrows(L) x nrows(L)

Note:
L specifies relations between free generators of Z^nrows(L)

Return:
group

Example:
 
LIB "multigrading.lib";
intmat I[3][3] =
1, 0, 0,
0, 1, 0,
0, 0, 1;
intmat L[3][2] =
1, 1,
1, 3,
1, 5;
// The group Z^3 / L can be constructed as follows:
// shortcut:
def G = createQuotientGroup(L);
printGroup(G);
==> Generators: 
==>      1     0     0
==>      0     1     0
==>      0     0     1
==> Relations: 
==>      1     1
==>      1     3
==>      1     5
// the general way:
def GG = createGroup(I, L); // (I+L)/L
printGroup(GG);
==> Generators: 
==>      1     0     0
==>      0     1     0
==>      0     0     1
==> Relations: 
==>      1     1
==>      1     3
==>      1     5