# SPDX-License-Identifier: GPL-2.0-or-later # LocalizeRingForHomalg: A Package for Localization of Polynomial Rings # # Implementations #
## Implementations for Mora basis related computations of local rings.
#################################### # # methods for operations: # ####################################
##
InstallMethod( AffineDegree, "for matrices over homalg local rings",
[ IsHomalgLocalMatrixRep ],
function( mat )
return AffineDegree( Numerator( mat ) );
end );
##
InstallMethod( ConstantTermOfHilbertPolynomial, "for matrices over homalg local rings",
[ IsHomalgLocalMatrixRep ],
function( mat )
return ConstantTermOfHilbertPolynomial( Numerator( mat ) );
end );
## <#GAPDoc Label="LocalizePolynomialRingAtZeroWithMora"> ## <ManSection> ## <Oper Arg="R" Name="LocalizePolynomialRingAtZeroWithMora" Label= "constructor for homalg localized rings using Mora's algorithm"/> ## <Returns>a local ring</Returns> ## <Description> ## This method localizes the ring <A>R</A> at zero and this localized ring is returned. The ring table uses Mora's algorithm as implemented &Singular; for low level computations. ## </Description> ## </ManSection> ## <#/GAPDoc> ##
InstallMethod( LocalizePolynomialRingAtZeroWithMora, "for homalg rings",
[ IsHomalgRing and IsFreePolynomialRing ], function( R )
local var, Rloc, S, v, RP, c, n_gens, gens;
## the following call will invoke RingsForHomalg
RP := CreateHomalgTableForLocalizedRingsWithMora( R );
Rloc := _LocalizePolynomialRingAtZeroWithMora( R );
Rloc!.asserts.BasisOfRowsCoeff := function( arg ) return true; end;
Rloc!.asserts.BasisOfColumnsCoeff := function( arg ) return true; end;
Rloc!.asserts.DecideZeroRowsEffectively := function( arg ) return true; end;
Rloc!.asserts.DecideZeroColumnsEffectively := function( arg ) return true; end;
var := IndeterminatesOfPolynomialRing( R );
S := CreateHomalgRing( Rloc, [ TheTypeHomalgLocalRing, TheTypeHomalgLocalMatrix ], HomalgLocalRingElement, RP ); ## for the view methods: ## <A local (Mora) ring> ## <A matrix over a local (Mora) ring>
S!.description := " local (Mora)";
S!.AssociatedGlobalRing := R;
S!.AssociatedComputationRing := Rloc;
SetIsLocal( S, true );
n_gens := Length( var );
gens := Rloc * HomalgMatrix( var, n_gens, 1, R );
SetGeneratorsOfMaximalLeftIdeal( S, gens );
gens := Rloc * HomalgMatrix( var, 1, n_gens, R );
SetGeneratorsOfMaximalRightIdeal( S, gens );
SetRingProperties( S );
return S;
end );
##
InstallMethod( CreateHomalgTableForLocalizedRingsWithMora, "for Singular rings",
[ IsHomalgRing and IsCommutative and IsFreePolynomialRing ],
function( globalR )
local globalRP, RP;
if LoadPackage( "RingsForHomalg" ) <> true then
Error( "the package RingsForHomalg failed to load\n" ); fi;
if not ValueGlobal( "IsHomalgExternalRingInSingularRep" )( globalR ) then
TryNextMethod( ); fi;
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.