Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/GAP/pkg/hap/lib/LieAlgebras/   (Algebra von RWTH Aachen Version 4.15.1©)  Datei vom 19.6.2025 mit Größe 1 kB image not shown  

Quelle  isLieHom.gi   Sprache: unbekannt

 
#######################################################
InstallGlobalFunction(IsLieAlgebraHomomorphism,
function(f)

local 
BasSour,BasRan,i,j,k,m,n,l,a,b,DimSour,DimRan,Vector1,Vector2,TabSour,TabRan,count,Vec;

if not IsMapping(f) then return false; fi;
if not IsLieAlgebra(Source(f)) then  return false; fi;
if not IsLieAlgebra(Range(f)) then  return false; fi;

BasSour:=Basis(Source(f));
BasRan:=Basis(Range(f));
DimSour:=Length(BasSour);
DimRan:=Length(Basis(Range(f)));
TabSour:=StructureConstantsTable(BasSour);
TabRan:=StructureConstantsTable(BasRan);


if not IsLeftModuleHomomorphism(f) then
 return false;
else
 count:=0;
 for i in [1..DimSour-1] do
 for j in [i+1..DimSour] do
  Vector1:=0*BasSour[1];
  Vector2:=List([1..DimRan], r->0);
  for k in [1..Length(TabSour[i][j][1])] do
   Vector1:=Vector1+BasSour[TabSour[i][j][1][k]]*TabSour[i][j][2][k];
  od;
  Vector1:=Image(f,Vector1);
  Vector1:=Coefficients(BasRan,Vector1);

  a:=Coefficients(BasRan,Image(f,BasSour[i]));
  b:=Coefficients(BasRan,Image(f,BasSour[j]));
  for m in [1..DimRan] do
  for n in [1..DimRan] do
   Vec:=List([1..DimRan], r->0);
   for l in [1..Length(TabRan[m][n][1])] do
    Vec[TabRan[m][n][1][l]]:=TabRan[m][n][2][l];
   od;
   Vector2:=Vector2+a[m]*b[n]*Vec;
  od;od;
  if not Vector1=Vector2 then
   count:=1;
  fi;
 od;od;
 if count=1 then
  return false;
 else
  return true;
 fi;
fi;

end);
#######################################################

[ Dauer der Verarbeitung: 0.20 Sekunden  (vorverarbeitet)  ]