|
LoadPackage("recog");
Read("downsp.g");
d := 100;
q := 8;
g := Sp(d,q);
x := constructppd2(g,d,q);
h := Group(x,x^PseudoRandom(g));
mov := RECOG.MovedSpace(h);
hh := RECOG.LinearAction(mov,GF(q),h);
ri := RecogniseGroup(hh);
SetInfoLevel(InfoRecog,3);
h := Group(x,x^PseudoRandom(g));
mov := RECOG.MovedSpace(h);
hh := RECOG.LinearAction(mov,GF(q),h);
ri := RecogniseGroup(hh);
h := Group(x,x^PseudoRandom(g));
mov := RECOG.MovedSpace(h);
hh := RECOG.LinearAction(mov,GF(q),h);
ri := RecogniseGroup(hh);
# we found an L2(8)xL2(x), before we only saw L2(64)
gens := GeneratorsOfGroup(hh);
o := Orb(hh,gens[1],OnPoints,rec(report := 1000,lookingfor := [gens[2]], schreier := true));
Enumerate(o);
word := TraceSchreierTreeForward(o,o!.found);
gensbig := GeneratorsOfGroup(h);
NamesOfComponents(g);
g!.PseudoRandomSeed;
y := First(g!.PseudoRandomSeed,u->biggens[1]^u=biggens[2]);
y := First(g!.PseudoRandomSeed,u->gensbig[1]^u=gensbig[2]);
u;
y := First(g!.PseudoRandomSeed[1],u->gensbig[1]^u=gensbig[2]);
y := PseudoRandom(g);
h := Group(x,y);
mov := RECOG.MovedSpace(h);
hh := RECOG.LinearAction(mov,GF(q),h);
ri := RecogniseGroup(hh);
y := PseudoRandom(g);
h := Group(x,y);
mov := RECOG.MovedSpace(h);
x;
Order(x);
h := Group(x,x^y);
mov := RECOG.MovedSpace(h);
hh := RECOG.LinearAction(mov,GF(q),h);
ri := RecogniseGroup(hh);
y := PseudoRandom(g);
h := Group(x,x^y);
mov := RECOG.MovedSpace(h);
hh := RECOG.LinearAction(mov,GF(q),h);
ri := RecogniseGroup(hh);
y := PseudoRandom(g);
h := Group(x,x^y);
mov := RECOG.MovedSpace(h);
hh := RECOG.LinearAction(mov,GF(q),h);
ri := RecogniseGroup(hh);
# finally got L2(8)xL2(8) again, this time remembering y
gens := GeneratorsOfGroup(hh);
o := Orb(hh,gens[1],OnPoints,rec(report := 1000,lookingfor := [gens[2]], schreier := true));
Enumerate(o);
word := TraceSchreierTreeForward(o,o!.found);
gensbig := GeneratorsOfGroup(h);
z := Product(gensbig{word});
x^z=x^y;
x^(y*z^-1)=x;
cent1 := y*z^-1;
Display(cent1);
y1 := y;
y := PseudoRandom(g);
h := Group(x,x^y);
mov := RECOG.MovedSpace(h);
hh := RECOG.LinearAction(mov,GF(q),h);
ri := RecogniseGroup(hh);
Size(ri);
h := Group(x,x^y);
y := PseudoRandom(g);
h := Group(x,x^y);
mov := RECOG.MovedSpace(h);
hh := RECOG.LinearAction(mov,GF(q),h);
ri := RecogniseGroup(hh);
y := PseudoRandom(g);
h := Group(x,x^y);
mov := RECOG.MovedSpace(h);
hh := RECOG.LinearAction(mov,GF(q),h);
ri := RecogniseGroup(hh);
gens := GeneratorsOfGroup(hh);
o := Orb(hh,gens[1],OnPoints,rec(report := 1000,lookingfor := [gens[2]], schreier := true));
Enumerate(o);
word := TraceSchreierTreeForward(o,o!.found);
gensbig := GeneratorsOfGroup(h);
z := Product(gensbig{word});
x^z=x^y;
x^(y*z^-1)=x;
cent2 := y*z^-1;
a := PseudoRandom(g);
b := PseudoRandom(g);
h := Group(x,x^a,x^b);
mov := RECOG.MovedSpace(h);
hh := RECOG.LinearAction(mov,GF(q),h);
ri := RecogniseGroup(hh);
DisplayCompositionSeries(SL(4,8));
# we got an O+(6,8)
mov2 := RECOG.MovedSpace(Group(x));
s := StabMC(h,mov2[1],OnRight);
# s is an Sp(4,8) abstractly, however acting in 5 dimensions
mov2[1]*cent1=mov2[1];
mov2[1]*cent2=mov2[1];
s := StabMC(h,mov2[2],OnRight);
V := VectorSpace(GF(8),mov2);
e := Enumerator(V);
v := NextIterator(e);
Length(e);
e[1];
IsZero(e[1]);
i := 2;
repeat
s := StabMC(h,e[i],OnRight);
i := i + 1;
Print(".\c"); until s.size <> 1056706560;
hh;
ri := RecogniseGroup(hh);
V := GF(8)^6;
v := Random(V);
s := StabMC(hh,v,OnRight);
v := Random(V);
s := StabMC(hh,v,OnRight);
v := Random(V);
s := StabMC(hh,v,OnRight);
Factors(1040449536);
ri2 := RecogniseGroup(s.stab);
Size(ri2);
ri2;
v;
w := v*mov;
ss := StabMC(h,w,OnRight);
r := RecogniseClassical(hh);
qu := r.QuadraticForm;
NamesOfComponents(qu);
qu!.matrix;
Display(qu!.matrix);
HELP("QuadraticForm");
EvaluateForm(qu,v);
mov;
bas := Basis(VectorSpace(GF(8),mov),mov);
vv := Coefficients(bas,mov2[1]);
ww := Coefficients(bas,mov2[2]);
EvaluateForm(qu,vv);
EvaluateForm(qu,ww);
V := VectorSpace(GF(8),[vv,ww]);
e := Enumerator(V);
List(e,v->EvaluateForm(qu,v));
Positions(last,0*Z(2));
[ Dauer der Verarbeitung: 0.19 Sekunden
(vorverarbeitet)
]
|