Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/GAP/pkg/difsets/lib/   (GAP Algebra Version 4.15.1©)  Datei vom 14.8.2019 mit Größe 4 kB image not shown  

Quelle  precompute.gi   Sprache: Shell

 

#############################################################################
##
#W  precompute.gi            DifSets Package                     Dylan Peifer
##
##  Functions compute group operations needed by other functions in the
##  package and store them in a table for quick access.
##

#############################################################################
##
#F  ProductTable( <G> )
##
InstallGlobalFunction( ProductTable, function (G)
    local v, e, table, i, j;

    v := Size(G);
    e := Elements(G);
    table := NullMat(v, v); # will store products

    for i in [1..v] do
    for j in [1..v] do

        table[i][j] := Position(e, e[i]*e[j]);

    od;
    od;

    return table;
end );

#############################################################################
##
#F  DifferenceTable( <G> )
##
InstallGlobalFunction( DifferenceTable, function (G)
    local v, e, table, i, j;

    v := Size(G);
    e := Elements(G);
    table := NullMat(v,v); # will store differences

    for i in [1..v] do
    for j in [1..v] do

        table[i][j] := Position(e, e[i]*e[j]^(-1));

    od;
    od;

    return table;
end );

#############################################################################
##
#F  CosetsTable( <G>, <N> )
##
InstallGlobalFunction( CosetsTable, function (G, N)
    local v, w, theta, eg, eh, cosets, i;

    v := Size(G);
    w := Size(N);
    theta := NaturalHomomorphismByNormalSubgroup(G, N);
    eg := Elements(G);
    eh := Elements(Image(theta));
    cosets := List([1..v/w], x->[]); # will store cosets of G/N

    for i in [1..v] do
        Add(cosets[Position(eh, eg[i]^theta)], i);
    od;

    return cosets;
end );

#############################################################################
##
#F  CosetsToCosetsTable( <G>, <N1>, <N2> )
##
InstallGlobalFunction( CosetsToCosetsTable, function (G, N1, N2)
    local v, w1, w2, theta1, theta2, eh1, eh2, cosets, i, coset;

    v := Size(G);
    w1 := Size(N1);
    w2 := Size(N2);
    theta1 := NaturalHomomorphismByNormalSubgroup(G, N1);
    theta2 := NaturalHomomorphismByNormalSubgroup(G, N2);
    eh1 := Elements(Image(theta1));
    eh2 := Elements(Image(theta2));
    cosets := List([1..v/w1], x->[]); # will store cosets of G/N1

    for i in [1..v/w2] do
        # find which coset in G/N1 each element of G/N2 is in
        coset := PreImagesRepresentative(theta2, eh2[i])^theta1;
        Add(cosets[Position(eh1, coset)], i);
    od;

    return cosets;
end );
 
#############################################################################
##
#F  AutomorphismTable( <G>, <phi> )
##
InstallGlobalFunction( AutomorphismTable, function (G, phi)
    local v, e;

    v := Size(G);
    e := Elements(G);

    return List([1..v], x->Position(e, e[x]^phi));
end );

#############################################################################
##
#F  AutomorphismsTable( <G> )
##
InstallGlobalFunction( AutomorphismsTable, function (G)
    local v, e, table, phi;

    v := Size(G);
    e := Elements(G);
    table := []; # will store all automorphisms

    for phi in AutomorphismGroup(G) do
        Add(table, List([1..v], x->Position(e, e[x]^phi)));
    od;

    return table;
end );

#############################################################################
##
#F  InducedAutomorphismsTable( <G>, <N> )
##
InstallGlobalFunction( InducedAutomorphismsTable, function (G, N)
    local v, w, theta, e, table, phi, rho, aut;

    # quotients of elementary abelian groups have all automorphisms induced
    if IsElementaryAbelian(G) then return AutomorphismsTable(G/N); fi;

    v := Size(G);
    w := Size(N);
    theta := NaturalHomomorphismByNormalSubgroup(G, N);
    e := Elements(Image(theta));
    table := Set([]); # will store all induced automorphisms

    for phi in AutomorphismGroup(G) do
        if Image(phi, N) = N then
            rho := InducedAutomorphism(theta, phi);
            aut := Immutable(List([1..v/w], x->Position(e, e[x]^rho)));
            AddSet(table, aut);
        fi;
    od;

    return table;
end );

#############################################################################
##
#E


Messung
CHZG
879610094

¤ Dauer der Verarbeitung: 0.1 Sekunden  (vorverarbeitet am  2026-11-04) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover


Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.