"Source: Text/Group/GrpMatInf.text";
"Line: 1219";
"Date: Thu Apr  1 11:57:57 2021";
"Main: Fri Sep 26 14:29:19 2025";
// original file: Text/Group/GrpMatInf.text, line: 1219
// Example: H68E12 ()
print "Example: H68E12";
ei := GetEchoInput();
SetEchoInput(true);
G := MatrixGroup<8, RationalField() |
    Matrix(RationalField(),8,8,[2008, -20376, 10986, -17499, -2961, 0, 0, 0,
    2205/2, -4964, 13545/4, -3990, -5355/4, 0, 0, 0, -546, 7212, -3698, 6267, 
    882, 0, 0, 0, -1512, 9348, -5724, 7765, 1953, 0, 0, 0, 651, -7812, 4074, 
    -6762, -1016, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 
    0, 0, 0, 0, 0, 0, 0, 1 ]),
    Matrix(RationalField(), 8, 8, [ -6371, -304884, 123147, -274455, -2268, 0,
    0,0,-6741, -91988, 31500, -341397/4, 3591, 0, 0, 0, 1764, 103896, -42443, 
    93312, 1134, 0, 0, 0, 8442, 157356, -57510, 144370, -3402, 0, 0, 0, -378, 
    -112644, 47817, -100359, -2591, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 
     0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1 ]),
    Matrix(RationalField(), 8, 8, [ 68095, -10044, 95553, 20763, -58968, 0, 0,
    0,49203/2,622, 64575/2, 45423/4, -42903/2, 0, 0, 0, -22176, 1080, -29969, 
    -8748, 19278, 0, 0, 0, -39060, 108, -51840, -17036, 34020, 0, 0, 0, 24192,
    -9828, 37233, 1701, -20735, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 
    0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1 ]),
    Matrix(RationalField(), 8, 8, [ -8810, -109512, 45447, -103143, 11133, 0,
    0, 0, -5685/2, -35609, 14820, -134115/4, 14445/4, 0, 0, 0, 2748, 33924, 
    -14042, 31959, -3456, 0, 0, 0, 4626, 57696, -23973, 54334, -5859, 0, 
    0, 0, -3543,  -44244, 18393, -41664, 4492, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
    0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1 ]) >;

IsAbelian (G);
assert $1;
IsCompletelyReducible (G);
assert $1;

I, phi, tau := RecogniseAbelian (G);
I;
phi;
tau;
images := [phi (G.i): i in [1..Ngens (G)]];
"images of matrix generators are ", images;

"Preimage of I.1 is ", tau (I.1);
SetEchoInput(ei);
