[GAP Forum] Questions on defining an action from GL(n,p)
Dima Pasechnik
dima at ntu.edu.sg
Fri Jul 28 04:10:59 BST 2006
Dear Arturo,
Most of the functionality you need is built-in.
(the distiction GAP makes between matrix groups and G-modules is a bit
confusing; it is probably more due to the fact that the corresponding
functionality has been developed by different teams, etc)
One constructs GL as follows:
g0:=GL(n,p);
(here n and p must be set to integers, p must be a prime power,
say n:=5; p:=3;)
Then the natural G-module:
g1:=GModuleByMats(GeneratorsOfGroup(g0),GF(p));
(here one can construct the module over an extension of GF(p), too, e.g.
the last command will work, when GF(p) is replaced by GF(p^2))
Then its exterior square:
w:=WedgeGModule(g1);
Then, in order to compute the orbits on subspaces, one should convert it
into a matrix group:
gw:=Group(w.generators);
It acts on
W:=FullRowSpace(GF(p),Binomial(n,2));
that has
sW:=Subspaces(W);;
I would rather do a loop, for each dimension, say,
sW:=Subspaces(W,3);;
oo:=OrbitsDomain(gw,sW,OnSubspacesByCanonicalBasis);;
gives you the orbits.
Unfortunately the latter functionality is quite slow.
A better option seems to me to construct actions of gw on
exterior powers of W
(there seems to be no function in GAP to do this for powers bigger than 2,
but it's not hard to write you own by suitably extending WedgeGModule)
and use built-in Meataxe functionality to decompose them into submodules.)
HTH,
Dima
On 7/28/06 12:57 AM, "Arturo Magidin" <magidin at member.ams.org> wrote:
> Dear Forum,
>
> I am pretty new to GAP. I have a problem I want to take a look at, and
> wanted to ask whether there is already a way to do it with pre-defined
> utilities, before trying to go ahead and program them myself.
>
> Let p be a prime, n a positive integer. Let U be the vector space of
> dimension n over GF(p); let V be isomorphic to U/\U (the alternating
> product, of dimension Binomial(n,2)).
>
> 1) Is there a way to handle U/\U directly? Right now, I have a vector
> space of dimension Binomial(n,2), and then I constructed an n x n
> table, with entries satisfy v[i][j]=-v[j][i]. I then place elements
> of the canonical basis for GF(p)^{Binomial(n,2)} in the table and
> refer to them that way.
>
> 2) Given an element of GL(n,p), this gives an automorphism (call it f)
> of U, and this in turn induces an automorphism on U/\U by mapping
> v/\w to f(v)/\f(w). We can then use this automorphism to define an
> action on Subspaces(U/\U).
>
> The condition I want to check is invariant under that action. Thus,
> I would like to define the corresponding action, pick an element
> from each orbit in Subspaces(U/\U), and check the property for that
> element (I already have a short function to do the checking).
>
>
> What would be the simplest way of doing this? If there is no way of
> doing this directly, should I take some generating set for GL(n,p),
> and describe the action explicitly on V in some way? Or can one use
> the natural action of GL(n,p) to make this faster/simpler?
>
> Thanks for any advice you might have.
>
> Arturo Magidin
> magidin at member.ams.org
>
> _______________________________________________
> Forum mailing list
> Forum at mail.gap-system.org
> http://mail.gap-system.org/mailman/listinfo/forum
--
Dima Pasechnik
http://www.ntu.edu.sg/home/dima/
More information about the Forum
mailing list