No, el ejemplo de @ahulpke aquí es un contraejemplo:
En primer lugar, el programa IsNormalIntermediate es la siguiente:
IsNormalIntermediate:=function(G,H,K)
local D1,D2,s,i,j,E1,E2,c;
D1:=DoubleCosets(G,H,K);
s:=Size(DoubleCosets(G,H,K));
c:=0;
if s=Size(DoubleCosets(G,K,K)) then
return true;
else
D2:=DoubleCosets(G,K,H);
for i in [1..s] do
for j in [1..s] do
E1:=Elements(D1[i]);
E2:=Elements(D2[j]);
if Size(E1)=Size(E2) then
if E1=E2 then
c:=c+1;
fi;
fi;
od;
od;
fi;
return c=s;
end;;
A continuación, el couterexample de @ahulpke es:
gap> G:=AlternatingGroup(8);
Alt( [ 1 .. 8 ] )
gap> H:=TransitiveGroup(8,29);
E(8):D_8=[2^3]D(4)
int:=IntermediateSubgroups(G,H);;
debido a que el entramado es equivalente a $B_3$:
gap> int.inclusions;
[ [ 0, 1 ], [ 0, 2 ], [ 0, 3 ], [ 1, 4 ], [ 1, 6 ], [ 2, 4 ], [ 2, 5 ], [ 3, 5 ], [ 3, 6 ], [ 4, 7 ], [ 5, 7 ], [ 6, 7 ] ]
y el $K_i$ $(i=1,2,3)$ no son normales intermedio:
gap> K1:=int.subgroups[1];; K2:=int.subgroups[2];; K3:=int.subgroups[3];;
gap> IsNormalIntermediate(G,H,K1) or IsNormalIntermediate(G,H,K2) or IsNormalIntermediate(G,H,K3);
false
Nota: Los demás intermedio subgrupos no son normales intermedio:
gap> K4:=int.subgroups[4];; K5:=int.subgroups[5];; K6:=int.subgroups[6];;
gap> IsNormalIntermediate(G,H,K4) or IsNormalIntermediate(G,H,K5) or IsNormalIntermediate(G,H,K6);
false