# Semimonomial transformation group

I have a subgroup of the semimonomial transformation group which is implemented in Sage and would like to be able to use for example the Orbit-functions in GAP, any ideas of how to do this?

Below I compute the full automorphism group of a linear [8,5] code over GF(4), with its generators stored in the variable "Gautgens".

f.<w>=GF(4,'x')
G=matrix(f,[[1,0],[w,1]])
Gt=reduce(lambda x,y:x.tensor_product(y,subdivide=False),[G]*3)
C=LinearCode(Gt[range(3,8)])
Gautgens=C.automorphism_group_gens()[0]


What I would like to do is to use the Orbits-function in GAP to find the orbits of some vectors in GF(4)^8 (v1,v2,v3,...) under the action of the automorphism group above. That is, something like:

gap.Orbits(gap.Group(Gautgens),[v1,v2,v3,..],"On....")


But I don't know how to make the automorphism group a group in GAP.

An alternative solution for me would be to map the automorphism group to an isomorphic permutation group acting on points. That is I would number all the vectors in GF(4)^8 and the automorphism group would then act as a permutation group on this indexing.

edit retag close merge delete

Sort by » oldest newest most voted
 sage: g=libgap.Group(map(lambda s: libgap.PermList(s.get_perm()), Gautgens))


will give you the underlying permutation group. It has 1 orbit in its natural action (on 8 points):

 sage: g.Orbits()
[ [ 1, 2, 5, 3, 6, 4, 7, 8 ] ]


You can convert it into a matrix group acting on GF(4)^8.

 sage: mg=libgap.Group(map(lambda s: libgap.PermutationMat(s,8,libgap.GF(4)), g.GeneratorsOfGroup()))


Now you can compute orbits on vectors (see e.g. code in graphs/generators/classical_geometries.py for details); however, you might want to make sure that GAP's GF(4) is created in a compatible way.

more

I am not 100% sure that you want to start with the permutation group - it might be a proper quotient of the "real" group, and then you need to do something else.

( 2016-07-26 10:43:19 -0500 )edit