13.15 GaloisMat

GaloisMat( mat )

mat must be a matrix of cyclotomics (or possibly unknowns, see Unknown). The conjugate of a row in mat under a particular Galois automorphism is defined pointwise. If mat consists of full orbits under this action then the Galois group of its entries acts on mat as a permutation group, otherwise the orbits must be completed before.

GaloisMat( mat ) returns a record with fields mat, galoisfams and generators:

mat:

a list with initial segment mat (not a copy of mat); the list consists of full orbits under the action of the Galois group of the entries of mat defined above. The last entries are those rows which had to be added to complete the orbits; so if they were already complete, mat and mat have identical entries.

galoisfams:

a list that has the same length as mat; its entries are either 1, 0, -1 or lists:
'galoisfams[i]' = 1 means that mat[i] consists of rationals, i.e. [ 'mat[i]' ] forms an orbit.
'galoisfams[i]' =-1 means that mat[i] contains unknowns; in this case [ 'mat[i]' ] is regarded as an orbit, too, even if mat[i] contains irrational entries.
If 'galoisfams[i]' = [ l_1, l_2 ] is a list then mat[i] is the first element of its orbit in mat; l_1 is the list of positions of rows which form the orbit, and l_2 is the list of corresponding Galois automorphisms (as exponents, not as functions); so we have 'mat'[ l_1[j] ][k] = 'GaloisCyc'( 'mat'[i][k], l_2[j] ).
'galoisfams[i]' = 0 means that mat[i] is an element of a nontrivial orbit but not the first element of it.

generators:

a list of permutations generating the permutation group corresponding to the action of the Galois group on the rows of mat.

Note that mat should be a set, i.e. no two rows should be equal. Otherwise only the first row of some equal rows is considered for the permutations, and a warning is printed.

    gap> GaloisMat( [ [ E(3), E(4) ] ] );
    rec(
      mat := [ [ E(3), E(4) ], [ E(3), -E(4) ], [ E(3)^2, E(4) ], 
          [ E(3)^2, -E(4) ] ],
      galoisfams := [ [ [ 1, 2, 3, 4 ], [ 1, 7, 5, 11 ] ], 0, 0, 0 ],
      generators := [ (1,2)(3,4), (1,3)(2,4) ] )
    gap> GaloisMat( [ [ 1, 1, 1 ], [ 1, E(3), E(3)^2 ] ] );
    rec(
      mat := [ [ 1, 1, 1 ], [ 1, E(3), E(3)^2 ], [ 1, E(3)^2, E(3) ] ],
      galoisfams := [ 1, [ [ 2, 3 ], [ 1, 2 ] ], 0 ],
      generators := [ (2,3) ] )

Previous Up Top Next
Index

GAP 3.4.4
April 1997