11 votos

Red de subgrupos modulares en GAP

Quiero saber si se puede pedir a GAP que decida si la red de subgrupos de un grupo finito específico $G$ es modular, a través de un simple comando.

Muchas gracias.

Actualización: Ballester-Bolinches, Cosme-Llópez y Esteban-Romero han abordado las cuestiones pertinentes aquí . Desarrollaron un Paquete GAP PERMUT que ahora se redistribuye con GAP como paquete aceptado (el sistema de arbitraje de paquetes para GAP se describe aquí ). El manual del paquete PERMUT también se incluye en la distribución, o puede encontrarse en línea aquí .

7voto

Alexander Konovalov Puntos 3430

Gracias, es una pregunta interesante. No tengo constancia de que esa funcionalidad esté disponible en ningún sitio, pero si miramos la bibliografía (véanse las referencias en los comentarios del código GAP más abajo), parece que puede haber al menos tres enfoques posibles:

1) Calcular la red de subgrupos y comprobar que no contiene una red isomorfo a la red "pentágono".

2) Dado que los grupos con retícula de subgrupos modulares (también llamados grupos M) están clasificados, se puede intentar aplicar los criterios conocidos para que un grupo finito sea un grupo M.

3) Cálculo sencillo de los subgrupos del grupo y posterior comprobación de que la ley modular se cumple la ley modular.

He implementado (3) en GAP de la siguiente manera:

IsMGroup:=function(G)
#
# References: 
# 1) R. Schmidt, Subgroup lattices of groups. Expositions in Mathematics, 14. 
#    Walter de Gruyter, Berlin, 1994. 
# 2) P.P. Pálfy, Groups and lattices. Groups St. Andrews 2001 in Oxford. 
#    Vol. II, 428–454, London Math. Soc. Lecture Note Ser., 305, Cambridge 
#    Univ. Press, Cambridge, 2003.
# 3) A. Ballester-Bolinches, R. Esteban-Romero, M. Asaad, Products of finite 
#    groups. Expositions in Mathematics, 53. Walter de Gruyter, Berlin, 2010.
#
local ccg, ccz, cg, cz, x, y, z, c; 
# Easy cases first 
# Abelian groups are M-groups
if IsAbelian(G) then
  return true;
fi;
# Every finite M-group is metabelian 
if not IsAbelian( DerivedSubgroup(G) ) then
  return false;
fi;
# Now do some work
ccg:=ConjugacyClassesSubgroups(G);
# The lattice of normal subgroups is modular. Since we already 
# know conjugacy classes, let's check if this may be the case.
if ForAll(ccg, c -> Size(c)=1) then
  return true;
fi;  
#
# Check the modular law: x<=z => x v ( y ^ z ) = (x v y) ^ z
#
for cg in ccg do
  # z runs over representatives of conjugacy classes of subgroups G
  z:=Representative(cg);
  if Size(z)<>1 and Size(z)<>Size(G) then
    ccz:=ConjugacyClassesSubgroups(z);
    for cz in ccz do
      # x runs over representatives of conjugacy classes of subgroups of z
      x:=Representative(cz);
      if Size(x) <> 1 then
        for cg in ccg do
          # y runs over all subgroups of G 
          for y in cg do
            if Size(y) <> 1 then
              if not ClosureGroup(x,Intersection(y,z)) = 
                     Intersection(ClosureGroup(x,y),z) then
                return false;
              fi;
            fi;    
          od;  
        od;
      fi;
    od;
  fi;    
od;
return true;
end;

Por ejemplo, utilizando esta función podemos encontrar que hay 11 grupos M de orden 32:

gap> l:=AllSmallGroups(Size,32,IsMGroup,true);;time;Length(l);
40420
11

En el caso de los grupos más grandes, puede llevar un tiempo realizar la comprobación, especialmente si el grupo es un grupo M. Para evitar gastar más tiempo en comprobaciones repetitivas del mismo grupo, se puede declarar una propiedad IsMGroup y luego instalar la función anterior como un método para esa propiedad. Para más instrucciones, introduzca ?DeclareProperty y ?InstallMethod en GAP, y también el capítulo "Ejemplos de ampliación del sistema" del manual de referencia de GAP (introduzca ?Adding new concepts para ver la sección del manual particularmente relevante que, por coincidencia, también añade una propiedad "IsMGroup", pero para otra noción).

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X