File: partakefirst2.g

package info (click to toggle)
gap-io 4.9.3%2Bds-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 776 kB
  • sloc: xml: 2,885; ansic: 2,709; makefile: 48; sh: 8
file content (46 lines) | stat: -rw-r--r-- 1,342 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
LoadPackage("io");

# f an FpGroup:

TryFinite := function(f)
  local ct;
  ct := CosetTable(f,TrivialSubgroup(f):silent);
  if ct <> fail then
      return Length(ct[1]);
  fi;
  Print("Finite: looping\n");
  while true do ct := ct; od;
end;

TryInfinite := function(f)
  local ab,h,l;
  ab := AbelianInvariants(f);
  if 0 in ab then return infinity; fi;
  l := LowIndexSubgroupsFpGroupIterator(f,40);
  while not(IsDoneIterator(l)) do
      h := NextIterator(l);
      ab := AbelianInvariants(h);
      if 0 in ab then return infinity; fi;
  od;
  Print("Infinite: looping\n");
  while true do ab := ab; od;
end;

f := FreeGroup(2);

Print(ParTakeFirstResultByFork([TryFinite,TryInfinite],[[f],[f]],
          rec( TimeOut := rec( tv_sec := 60, tv_usec := 0 ) )),"\n");

f := FreeGroup("a","b");
a := f.a;
b := f.b;
rels := [ a^2, b^3, a*b*a*b*a*b*a*b*a*b*a*b*a*b*a*b*a*b*a*b*a*b,
a^-1*b^-1*a*b*a^-1*b^-1*a*b*a^-1*b^-1*a*b*a^-1*b^-1*a*b*a^-1*b^-1*a*b*a^
-1*b^-1*a*b, a*b*a*b*a*b^-1*a*b*a*b*a*b^-1*a*b*a*b*a*b^-1*a*b*a*b*a*b^
-1*a*b*a*b*a*b^-1*a*b*a*b*a*b^-1, a*b*a*b*a*b^-1*a*b^-1*a*b*a*b*a*b^
-1*a*b^-1*a*b*a*b*a*b^-1*a*b^-1*a*b*a*b*a*b^-1*a*b^-1*a*b*a*b*a*b^-1*a*b^-1 ];
g := f/rels;   # this is M12

Print(ParTakeFirstResultByFork([TryFinite,TryInfinite],[[g],[g]],
          rec( TimeOut := rec( tv_sec := 60, tv_usec := 0 ) )),"\n");