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

Quelle  ckforms.gi   Sprache: Shell

 

#############################################################################
##
#W  ckforms.gi                  NoCK Package                  
##
##  Installation file for functions of the NoCK package.
##

InstallGlobalFunction( AllZeroDH, function(arg)
local G, typeG, rankG, idRealFormG, A, rankRG, dimG, dimPG, K, dimK, rankK, pi, qi, permPi, t, Pt, j, i, List1, List2, List3,List4,ListD,deg,isOK,Coeff;
    typeG:=arg[1];
    rankG:=arg[2];
    idRealFormG:=arg[3];
    G:=RealFormById(typeG,rankG,idRealFormG);
    A:=CartanSubspace(G);
    rankRG:=Dimension(A);
    dimG:=Dimension(G);
    K:=CartanDecomposition( G ).K;
    dimK:= Dimension(K);
    rankK:= Dimension(CartanSubalgebra(K));
    pi:=PCoefficients(typeG,rankG);
    if typeG="A" then
        if rankG=1 and idRealFormG=2 then
            qi:=PCoefficients("A",0);
        elif idRealFormG=2 then
            qi:=PCoefficients("A",rankG-idRealFormG+1);
            Append(qi,[1]);
        elif RemInt(rankG,2)=0 then
            if idRealFormG>2 and idRealFormG<=rankG/2+1 then 
                qi:=PCoefficients("A",idRealFormG-2);
                Append(qi,PCoefficients("A",rankG-idRealFormG+1));
                Append(qi,[1]);
            elif idRealFormG=rankG/2+2 then
                qi:=PCoefficients("B",rankG/2);
            fi;
        else 
            if idRealFormG>2 and idRealFormG<=(rankG+3)/2 then 
                qi:=PCoefficients("A",idRealFormG-2);
                Append(qi,PCoefficients("A",rankG-idRealFormG+1));
                Append(qi,[1]);
            elif idRealFormG=(rankG+5)/2 then
                qi:=PCoefficients("C",(rankG+1)/2);
            elif idRealFormG=(rankG+7)/2 then
                qi:=PCoefficients("D",(rankG+1)/2);
            fi; 
        fi;
    elif typeG="B" then
        qi:=PCoefficients("D",idRealFormG-1);
        if idRealFormG<=rankG then
            Append(qi,PCoefficients("B",rankG-idRealFormG+1));
        fi;
    elif typeG="C" then
        if RemInt(rankG,2)=0 then
            if idRealFormG>=2 and idRealFormG<=rankG/2+1 then
                qi:=PCoefficients("C",idRealFormG-1);
                Append(qi,PCoefficients("C",rankG-idRealFormG+1));
            elif idRealFormG=rankG/2+2 then
                qi:=PCoefficients("A",rankG-1);
                Append(qi,[1]);
            fi;
        else
            if idRealFormG>=2 and idRealFormG<=(rankG+1)/2 then 
                qi:=PCoefficients("C",idRealFormG-1);
                Append(qi,PCoefficients("C",rankG-idRealFormG+1));
            elif idRealFormG=(rankG+3)/2 then
                qi:=PCoefficients("A",rankG-1);
                Append(qi,[1]);
            fi;
        fi;
    elif typeG="D" then
        if rankG=4 then
            if idRealFormG=2 then
                qi:=PCoefficients("A",3);
                Append(qi,[1]);
            elif idRealFormG=3 then
                qi:=PCoefficients("D",2);
                Append(qi,PCoefficients("D",2)); 
            elif idRealFormG=4 then
                qi:=PCoefficients("B",1);
                Append(qi,PCoefficients("B",2));
            elif idRealFormG=5 then
                qi:=PCoefficients("B",3);
            fi;
        elif RemInt(rankG,2)=0 then
            if idRealFormG>=2 and idRealFormG<=rankG/2+1 then
                qi:=PCoefficients("D",idRealFormG-1);
                Append(qi,PCoefficients("D",rankG+1-idRealFormG));
            elif idRealFormG=rankG/2+2 then
                qi:=PCoefficients("A",rankG-1);
                Append(qi,[1]);
            elif idRealFormG=rankG/2+3 then
                qi:=PCoefficients("B",rankG-1);
            elif idRealFormG>=rankG/2+4 and idRealFormG<=rankG+2 then
                qi:=PCoefficients("B",idRealFormG-rankG/2-3);
                Append(qi,PCoefficients("B",3*rankG/2+2-idRealFormG));
            fi;
        else
            if idRealFormG>=2 and idRealFormG<=(rankG+1)/2 then
                qi:=PCoefficients("D",idRealFormG-1);
                Append(qi,PCoefficients("D",rankG+1-idRealFormG));
            elif idRealFormG=(rankG+3)/2 then
                qi:=PCoefficients("A",rankG-1);
                Append(qi,[1]);
            elif idRealFormG=(rankG+5)/2 then
                qi:=PCoefficients("B",rankG-1);
            elif idRealFormG>=(rankG+7)/2 and idRealFormG<=rankG+2 then
                qi:=PCoefficients("B",idRealFormG-(rankG-1)/2-3);
                Append(qi,PCoefficients("B",3*(rankG-1)/2+3-idRealFormG));
            fi;
        fi;
    elif typeG="E" then
        if rankG=6 then
            if idRealFormG=2 then
                qi:=PCoefficients("C",4);
            elif idRealFormG=3 then
                qi:=PCoefficients("A",1);
                Append(qi,PCoefficients("A",5));
            elif idRealFormG=4 then
                qi:=PCoefficients("D",5);
                Append(qi,[1]);
            elif idRealFormG=5 then
                qi:=PCoefficients("F",4);
            fi;
        elif rankG=7 then
            if idRealFormG=2 then
                qi:=PCoefficients("A",7);
            elif idRealFormG=3 then
                qi:=PCoefficients("E",6);
                Append(qi,[1]);
            elif idRealFormG=4 then
                qi:=PCoefficients("A",1);
                Append(qi,PCoefficients("D",6));
            fi;
        elif rankG=8 then
            if idRealFormG=2 then 
                qi:=PCoefficients("D",8);
            elif idRealFormG=3 then
                qi:=PCoefficients("A",1);
                Append(qi,PCoefficients("E",7));
            fi;
        fi;
    elif typeG="F" then
        if idRealFormG=2 then
            qi:=PCoefficients("A",1);
            Append(qi,PCoefficients("C",3));
        elif idRealFormG=3 then
            qi:=PCoefficients("B",4);
        fi;
    elif typeG="G" then
        qi:=PCoefficients("B",1);
        Append(qi,PCoefficients("B",1));
    fi;
    permPi:=List(SymmetricGroup(rankG), p -> Permuted(pi, p));
    t:=Indeterminate(Rationals,"t");
    List1:=List(permPi, i -> PCalculate(i,qi));
    List2:=List(List1, i -> IsPolynomial(i));
    List3:=[];
    for i in [1..Length(List1)] do
        if List2[i]=true then
            Add(List3,List1[i]);
        fi;
    od;
    deg:=DegreeOfLaurentPolynomial(List3[1]);
    ListD:=[];
    isOK:=true;
    for i in [1..deg] do
        isOK:=true;
        for j in [1..Length(List3)] do
            Coeff:=CoefficientsOfUnivariatePolynomial(List3[j]);
            if Coeff[i+1] <> 0 then
                isOK:=false;
            fi;
        od;
        if isOK=true then
            Add(ListD,i);
        fi;
    od;
    return ListD;
end);

###############################################################################
InstallGlobalFunction( PCoefficients, function(arg)
local typeG, rankG, pi, i;
    typeG:=arg[1];
    rankG:=arg[2];
    if typeG = "A" then
        pi:=[0];
        for i in [1..rankG] do
            pi[i]:= i+1;    
        od;
        if rankG=0 then
            pi:=[1];
        fi;
        return pi;
    elif typeG = "B" then
        pi:=[0];
        for i in [1..rankG] do
            pi[i]:= 2*i;    
        od;
        return pi;
    elif typeG = "C" then
        pi:=[0];
        for i in [1..rankG] do
            pi[i]:= 2*i;    
        od;
        return pi;
    elif typeG = "D" then
        pi:=[0];
        for i in [1..rankG-1] do
            pi[i]:= 2*i;    
        od;
        pi[rankG]:=rankG;
        return pi;
    elif typeG = "E" then
        if rankG=6 then
            return [2, 5, 6, 8, 9, 12];
        elif rankG=7 then
            return [2, 6, 8, 10, 12, 14, 18];
        elif rankG=8 then
            return [2, 8, 12, 14, 18, 20, 24, 30];
        fi;
    elif typeG = "F" and rankG=4 then
            return [2, 6, 8, 12];
    elif typeG = "G" and rankG=2 then
            return [2, 6];
    fi;
end);

###############################################################################
InstallGlobalFunction( PCalculate, function(arg)
local pi,qi, Pt , t, i, j;
    t:=Indeterminate(Rationals,"t");
    Pt:=1;
    pi:=arg[1];
    qi:=arg[2];
    for j in [Length(qi)+1..Length(pi)] do
        Pt:=Pt*(1+t^(2*pi[j]-1));
    od;
    for i in [1..Length(qi)] do
        Pt:=Pt*(1-t^(2*pi[i]))/(1-t^(2*qi[i]));
    od;
    return Pt;
end);

###############################################################################
InstallGlobalFunction( NonCompactDimension, function(arg)
local G, dimG, K, dimK, dG;
    G:=arg[1];
    dimG:=Dimension(G);
    K:=CartanDecomposition( G ).K;
    dimK:= Dimension(K);
    dG:=dimG-dimK;
    return dG;
end);

#E  ckforms.gi  . . . . . . . . . . . . . . . . . . . . . . . . . . . ends here

Messung
CHZG
899910096

¤ 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.