load "Subgroups/functions.txt";
labs:=["1","4","4^*","6","14","20","20^*"];

G:=PSU(4,2);
Irr:=OrderByDimension(StripDuplicates(CompositionFactors(PermutationModule(G,GF(4)))));
Irr:=AppendWithoutDuplicates(Irr,CompositionFactors(TensorProduct(Irr[2],Irr[4])));
Append(~Irr,Dual(Irr[6]));


A1:=BuildLargestModule(Irr[5],[Irr[i]:i in [1,4,5,6,7]]);
A2:=Dual(A1); E,rho:=Ext(A2,Irr[3]); A2:=Dual(MaximalExtension(A2,Irr[3],E,rho));
A3:=BuildLargestModule(A2,[Irr[i]:i in [1,4,5,6,7]]);
A4:=Dual(A3); E,rho:=Ext(A4,Irr[2]); A4:=Dual(MaximalExtension(A4,Irr[2],E,rho));
A5:=BuildLargestModule(A4,[Irr[i]:i in [1,4,5,6,7]]);
DescribeLayers(A5,Irr,labs);
Dimension(Fix(Dual(A5))) eq 1;

// Now do P(4)+P(14).

B1:=BuildLargestModule(Irr[2],[Irr[i]:i in [1,4,5,6,7]]);
B2a:=Dual(A5); B2b:=RemoveFromTop(B2a,Irr,Irr,[1,4,5,6,7]);
B2:=Dual(B2a/B2b);

DescribeLayers(B1,Irr,labs); DescribeLayers(B2,Irr,labs);

B3:=BuildLargestModule(Irr[5],[Irr[i]:i in [1,2,3,4,6,7]]);
B3a:=Dual(B3); E,rho:=Ext(B3a,Irr[5]); B3a:=Dual(MaximalExtension(B3a,Irr[5],E,rho));
B3b:=RemoveFromTop(B3a,Irr,Irr,[1,2,3,4,6,7]);
DescribeLayers(B3b,Irr,labs);

B4:=RemoveFromTop(B3b,Irr,Irr,[2,3,4,5,6,7]);
DescribeLayers(B4,Irr,labs);