File: resSL2Z.gi

package info (click to toggle)
gap-hap 1.66%2Bds-1
  • links: PTS
  • area: main
  • in suites: trixie
  • size: 55,348 kB
  • sloc: xml: 15,368; sh: 216; javascript: 155; makefile: 126; ansic: 57; perl: 36
file content (62 lines) | stat: -rw-r--r-- 1,497 bytes parent folder | download | duplicates (2)
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#(C) Graham Ellis and Bui Anh Tuan

################################################
################################################
InstallGlobalFunction(ResolutionSL2Z,
function(pp,n)

local C, p, Rsl, Rsl2, RH, G, H, sl, sl2, 
      Hhomsl, Hhomsl2, RHRsl, RHRsl2, D, K; 

p:=Product(SSortedList(Factors(pp)));

if not IsPrime(p) and not p=1 then
return SL2ZResolution(p,n);
fi;

##################################
C:=ContractibleGcomplex("SL(2,Z)");
Rsl:=ResolutionGTree(C,n);
Rsl!.group:=SL(2,Integers);
sl:=Rsl!.group;
##################################

if p=1 then return
ResolutionGTree(C,n);
fi;

##################################
H:=CongruenceSubgroupGamma0(p);
SetName(H,"Gamma");
RH:=ResolutionFiniteSubgroup(Rsl,H);
RH:=HAPTietzeReduction_Inf(RH,infinity);
RH!.group:=H;
##################################


###################################
sl2:=SL2Z(p);
G:=SL2Z(1/p);
Rsl2:=ConjugatedResolution(Rsl,[[1,0],[0,p]]);
Rsl2!.group:=sl2;
##################################


###################################
Hhomsl:=GroupHomomorphismByFunction(H,sl,x->x);
RHRsl:=EquivariantChainMap(RH,Rsl,Hhomsl);
Hhomsl2:=GroupHomomorphismByFunction(H,sl2,x->x);
RHRsl2:=EquivariantChainMap(RH,Rsl2,Hhomsl2);
D:=[Rsl,Rsl2,[RHRsl,RHRsl2]];
K:=TreeOfResolutionsToContractibleGcomplex(D,G);
###################################

return FreeGResolution(K,n);

end);

###############################################################
###############################################################