Projekt:Computeralgebra-Berechnungen/Symmetrische Hilbert-Kunz Theorie/SymSyzCokerPolyring

Aus Wikiversity

Syntax: SymSyzCokerPolyring(L,N);

L ist Liste von Polynomen, N ist natuerliche Zahl.

Dasselbe wie Projekt:CoCoA-Berechnungen/Symmetrische_Hilbert-Kunz_Theorie/SymSyzCoker, aber im Polynomring statt in R/(F).

-- Cokern der globalen Auswertung von 0->S^N(Syz)->S^N(O^K)>S^(N-1)(O^K)->0 
-- fuer Liste L von Polynomen im Poly.ring
-- CurrentRing() muss der richtige Poly.ring sein
Define SymSyzCokerPolyring(L,N)
	K:=Len(L);
	IndexSetDomain:=SymIndexRecursive(K,N);
	IndexSetRange:=SymIndexRecursive(K,N-1);
	DimDomain:=Len(IndexSetDomain);
	DimRange:=Len(IndexSetRange); 	
	  BigMatrix:=Transposed(SymSyzMatrix(L,N));
-- d.h. Liste der Spalten der Abb-Matrix (DimDomain Stueck der Laenge DimRange); = Basis vom Bild im Poly.ring
      Gens:=[];
      For I:=1 To DimDomain Do Append(Gens, Vector(BigMatrix[I])) EndFor;
	  DivideBy:=Module(Gens);
	  CokerBasis:=NormalBasisM(DivideBy);
	  Return Len(CokerBasis);
EndDefine;