GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it
#############################################################################
##
## ToricVariety.gd ToricVarieties package Sebastian Gutsche
##
## Copyright 2011 Lehrstuhl B für Mathematik, RWTH Aachen
##
## The Category of toric Varieties
##
#############################################################################
#################################
##
## Global Variable
##
#################################
DeclareGlobalVariable( "TORIC_VARIETIES" );
#################################
##
## Categorys
##
#################################
## <#GAPDoc Label="IsToricVariety">
## <ManSection>
## <Filt Type="Category" Arg="M" Name="IsToricVariety"/>
## <Returns><C>true</C> or <C>false</C></Returns>
## <Description>
## The &GAP; category of a toric variety.
## </Description>
## </ManSection>
## <#/GAPDoc>
##
DeclareCategory( "IsToricVariety",
IsObject );
DeclareCategory( "IsCategoryOfToricVarieties",
IsHomalgCategory );
## <#GAPDoc Label="twitter">
## <ManSection>
## <Attr Arg="vari" Name="twitter"/>
## <Returns>a ring</Returns>
## <Description>
## This is a dummy to get immediate methods triggered at some times.
## It never has a value.
## </Description>
## </ManSection>
## <#/GAPDoc>
##
DeclareAttribute( "twitter",
IsToricVariety );
#################################
##
## Properties
##
#################################
## <#GAPDoc Label="IsNormalVariety">
## <ManSection>
## <Prop Arg="vari" Name="IsNormalVariety"/>
## <Returns><C>true</C> or <C>false</C></Returns>
## <Description>
## Checks if the toric variety <A>vari</A> is a normal variety.
## </Description>
## </ManSection>
## <#/GAPDoc>
##
DeclareProperty( "IsNormalVariety",
IsToricVariety );
## <#GAPDoc Label="IsAffine">
## <ManSection>
## <Prop Arg="vari" Name="IsAffine"/>
## <Returns><C>true</C> or <C>false</C></Returns>
## <Description>
## Checks if the toric variety <A>vari</A> is an affine variety.
## </Description>
## </ManSection>
## <#/GAPDoc>
##
DeclareProperty( "IsAffine",
IsToricVariety );
## <#GAPDoc Label="IsProjective">
## <ManSection>
## <Prop Arg="vari" Name="IsProjective"/>
## <Returns><C>true</C> or <C>false</C></Returns>
## <Description>
## Checks if the toric variety <A>vari</A> is a projective variety.
## </Description>
## </ManSection>
## <#/GAPDoc>
##
DeclareProperty( "IsProjective",
IsToricVariety );
## <#GAPDoc Label="IsSmooth">
## <ManSection>
## <Prop Arg="vari" Name="IsSmooth"/>
## <Returns><C>true</C> or <C>false</C></Returns>
## <Description>
## Checks if the toric variety <A>vari</A> is a smooth variety.
## </Description>
## </ManSection>
## <#/GAPDoc>
##
DeclareProperty( "IsSmooth",
IsToricVariety );
## <#GAPDoc Label="IsComplete">
## <ManSection>
## <Prop Arg="vari" Name="IsComplete"/>
## <Returns><C>true</C> or <C>false</C></Returns>
## <Description>
## Checks if the toric variety <A>vari</A> is a complete variety.
## </Description>
## </ManSection>
## <#/GAPDoc>
##
DeclareProperty( "IsComplete",
IsToricVariety );
## <#GAPDoc Label="HasTorusfactor">
## <ManSection>
## <Prop Arg="vari" Name="HasTorusfactor"/>
## <Returns><C>true</C> or <C>false</C></Returns>
## <Description>
## Checks if the toric variety <A>vari</A> has a torus factor.
## </Description>
## </ManSection>
## <#/GAPDoc>
##
DeclareProperty( "HasTorusfactor",
IsToricVariety );
## <#GAPDoc Label="HasNoTorusfactor">
## <ManSection>
## <Prop Arg="vari" Name="HasNoTorusfactor"/>
## <Returns><C>true</C> or <C>false</C></Returns>
## <Description>
## Checks if the toric variety <A>vari</A> has no torus factor.
## </Description>
## </ManSection>
## <#/GAPDoc>
##
DeclareProperty( "HasNoTorusfactor",
IsToricVariety );
## <#GAPDoc Label="IsOrbifold">
## <ManSection>
## <Prop Arg="vari" Name="IsOrbifold"/>
## <Returns><C>true</C> or <C>false</C></Returns>
## <Description>
## Checks if the toric variety <A>vari</A> has an orbifold, which is, in the toric case, equivalent
## to the simpliciality of the fan.
## </Description>
## </ManSection>
## <#/GAPDoc>
##
DeclareProperty( "IsOrbifold",
IsToricVariety );
#################################
##
## Attributes
##
#################################
## <#GAPDoc Label="AffineOpenCovering">
## <ManSection>
## <Attr Arg="vari" Name="AffineOpenCovering"/>
## <Returns>a list</Returns>
## <Description>
## Returns a torus invariant affine open covering of the variety <A>vari</A>.
## The affine open cover is computed out of the cones of the fan.
## </Description>
## </ManSection>
## <#/GAPDoc>
##
DeclareAttribute( "AffineOpenCovering",
IsToricVariety );
## <#GAPDoc Label="CoxRing">
## <ManSection>
## <Attr Arg="vari" Name="CoxRing"/>
## <Returns>a ring</Returns>
## <Description>
## Returns the Cox ring of the variety <A>vari</A>. The actual method requires
## a string with a name for the variables. A method for computing the Cox ring without
## a variable given is not implemented. You will get an error.
## </Description>
## </ManSection>
## <#/GAPDoc>
##
DeclareAttribute( "CoxRing",
IsToricVariety );
## <#GAPDoc Label="ListOfVariablesOfCoxRing">
## <ManSection>
## <Attr Arg="vari" Name="ListOfVariablesOfCoxRing"/>
## <Returns>a list</Returns>
## <Description>
## Returns a list of the variables of the cox ring of the variety <A>vari</A>.
## </Description>
## </ManSection>
## <#/GAPDoc>
##
DeclareAttribute( "ListOfVariablesOfCoxRing",
IsToricVariety );
## <#GAPDoc Label="ClassGroup">
## <ManSection>
## <Attr Arg="vari" Name="ClassGroup"/>
## <Returns>a module</Returns>
## <Description>
## Returns the class group of the variety <A>vari</A> as factor of a free module.
## </Description>
## </ManSection>
## <#/GAPDoc>
##
DeclareAttribute( "ClassGroup",
IsToricVariety );
## <#GAPDoc Label="TorusInvariantDivisorGroup">
## <ManSection>
## <Attr Arg="vari" Name="TorusInvariantDivisorGroup"/>
## <Returns>a module</Returns>
## <Description>
## Returns the subgroup of the Weil divisor group of the variety <A>vari</A> generated by the torus invariant prime divisors.
## This is always a finitely generated free module over the integers.
## </Description>
## </ManSection>
## <#/GAPDoc>
##
DeclareAttribute( "TorusInvariantDivisorGroup",
IsToricVariety );
## <#GAPDoc Label="MapFromCharacterToPrincipalDivisor">
## <ManSection>
## <Attr Arg="vari" Name="MapFromCharacterToPrincipalDivisor"/>
## <Returns>a morphism</Returns>
## <Description>
## Returns a map which maps an element of the character group into the torus invariant Weil group of the variety <A>vari</A>.
## This has to viewn as an help method to compute divisor classes.
## </Description>
## </ManSection>
## <#/GAPDoc>
##
DeclareAttribute( "MapFromCharacterToPrincipalDivisor",
IsToricVariety );
## <#GAPDoc Label="Dimension">
## <ManSection>
## <Attr Arg="vari" Name="Dimension"/>
## <Returns>an integer</Returns>
## <Description>
## Returns the dimension of the variety <A>vari</A>.
## </Description>
## </ManSection>
## <#/GAPDoc>
##
DeclareAttribute( "Dimension",
IsToricVariety );
## <#GAPDoc Label="DimensionOfTorusfactor">
## <ManSection>
## <Attr Arg="vari" Name="DimensionOfTorusfactor"/>
## <Returns>an integer</Returns>
## <Description>
## Returns the dimension of the torus factor of the variety <A>vari</A>.
## </Description>
## </ManSection>
## <#/GAPDoc>
##
DeclareAttribute( "DimensionOfTorusfactor",
IsToricVariety );
## <#GAPDoc Label="CoordinateRingOfTorus">
## <ManSection>
## <Attr Arg="vari" Name="CoordinateRingOfTorus"/>
## <Returns>a ring</Returns>
## <Description>
## Returns the coordinate ring of the torus of the variety <A>vari</A>.
## This method is not implemented, you need to call it with a second argument, which is a list of strings for the variables of the ring.
## </Description>
## </ManSection>
## <#/GAPDoc>
##
DeclareAttribute( "CoordinateRingOfTorus",
IsToricVariety );
DeclareAttribute( "ListOfVariablesOfCoordinateRingOfTorus",
IsToricVariety );
## <#GAPDoc Label="IsProductOf">
## <ManSection>
## <Attr Arg="vari" Name="IsProductOf"/>
## <Returns>a list</Returns>
## <Description>
## If the variety <A>vari</A> is a product of 2 or more varieties, the list contain those varieties.
## If it is not a product or at least not generated as a product, the list only contains the variety itself.
## </Description>
## </ManSection>
## <#/GAPDoc>
##
DeclareAttribute( "IsProductOf",
IsToricVariety );
## <#GAPDoc Label="CharacterGrid">
## <ManSection>
## <Attr Arg="vari" Name="CharacterLattice"/>
## <Returns>a module</Returns>
## <Description>
## The method returns the character lattice of the variety <A>vari</A>, computed as the containing grid of the underlying convex object, if it exists.
## </Description>
## </ManSection>
## <#/GAPDoc>
##
DeclareAttribute( "CharacterLattice",
IsToricVariety );
## <#GAPDoc Label="TorusInvariantPrimeDivisors">
## <ManSection>
## <Attr Arg="vari" Name="TorusInvariantPrimeDivisors"/>
## <Returns>a list</Returns>
## <Description>
## The method returns a list of the torus invariant prime divisors of the variety <A>vari</A>.
## </Description>
## </ManSection>
## <#/GAPDoc>
##
DeclareAttribute( "TorusInvariantPrimeDivisors",
IsToricVariety );
## <#GAPDoc Label="IrrelevantIdeal">
## <ManSection>
## <Attr Arg="vari" Name="IrrelevantIdeal"/>
## <Returns>an ideal</Returns>
## <Description>
## Returns the irrelevant ideal of the cox ring of the variety <A>vari</A>.
## </Description>
## </ManSection>
## <#/GAPDoc>
##
DeclareAttribute( "IrrelevantIdeal",
IsToricVariety );
## <#GAPDoc Label="MorphismFromCoxVariety">
## <ManSection>
## <Attr Arg="vari" Name="MorphismFromCoxVariety"/>
## <Returns>a morphism</Returns>
## <Description>
## The method returns the quotient morphism from the variety of the Cox ring to the variety <A>vari</A>.
## </Description>
## </ManSection>
## <#/GAPDoc>
##
DeclareAttribute( "MorphismFromCoxVariety",
IsToricVariety );
## <#GAPDoc Label="CoxVariety">
## <ManSection>
## <Attr Arg="vari" Name="CoxVariety"/>
## <Returns>a variety</Returns>
## <Description>
## The method returns the Cox variety of the variety <A>vari</A>.
## </Description>
## </ManSection>
## <#/GAPDoc>
##
DeclareAttribute( "CoxVariety",
IsToricVariety );
## <#GAPDoc Label="FanOfVariety">
## <ManSection>
## <Attr Arg="vari" Name="FanOfVariety"/>
## <Returns>a fan</Returns>
## <Description>
## Returns the fan of the variety <A>vari</A>. This is set by default.
## </Description>
## </ManSection>
## <#/GAPDoc>
##
DeclareAttribute( "FanOfVariety",
IsToricVariety );
## <#GAPDoc Label="CartierTorusInvariantDivisorGroup">
## <ManSection>
## <Attr Arg="vari" Name="CartierTorusInvariantDivisorGroup"/>
## <Returns>a module</Returns>
## <Description>
## Returns the the group of Cartier divisors of the variety <A>vari</A> as a subgroup of the divisor group.
## </Description>
## </ManSection>
## <#/GAPDoc>
##
DeclareAttribute( "CartierTorusInvariantDivisorGroup",
IsToricVariety );
## <#GAPDoc Label="PicardGroup">
## <ManSection>
## <Attr Arg="vari" Name="PicardGroup"/>
## <Returns>a module</Returns>
## <Description>
## Returns the Picard group of the variety <A>vari</A> as factor of a free module.
## </Description>
## </ManSection>
## <#/GAPDoc>
##
DeclareAttribute( "PicardGroup",
IsToricVariety );
## <#GAPDoc Label="NameOfVariety">
## <ManSection>
## <Attr Arg="vari" Name="NameOfVariety"/>
## <Returns>a string</Returns>
## <Description>
## Returns the name of the variety <A>vari</A> if it has one and it is known or can be computed.
## </Description>
## </ManSection>
## <#/GAPDoc>
##
DeclareAttribute( "NameOfVariety",
IsToricVariety );
DeclareAttribute( "ZariskiCotangentSheaf",
IsToricVariety );
DeclareAttribute( "CotangentSheaf",
IsToricVariety );
#################################
##
## Methods
##
#################################
## <#GAPDoc Label="UnderlyingSheaf">
## <ManSection>
## <Oper Arg="vari" Name="UnderlyingSheaf"/>
## <Returns>a sheaf</Returns>
## <Description>
## The method returns the underlying sheaf of the variety <A>vari</A>.
## </Description>
## </ManSection>
## <#/GAPDoc>
##
DeclareOperation( "UnderlyingSheaf",
[ IsToricVariety ] );
## <#GAPDoc Label="CoordinateRingOfTorus2">
## <ManSection>
## <Oper Arg="vari,vars" Name="CoordinateRingOfTorus" Label="for a variety and a list of variables"/>
## <Returns>a ring</Returns>
## <Description>
## Computes the coordinate ring of the torus of the variety <A>vari</A> with the variables <A>vars</A>. The argument <A>vars</A> need to be a
## list of strings with length dimension or two times dimension.
## </Description>
## </ManSection>
## <#/GAPDoc>
##
DeclareOperation( "CoordinateRingOfTorus",
[ IsToricVariety, IsList ] );
DeclareOperation( "CoordinateRingOfTorus",
[ IsToricVariety, IsStringRep ] );
## <#GAPDoc Label="PROD">
## <ManSection>
## <Oper Arg="vari1,vari2" Name="\*"/>
## <Returns>a variety</Returns>
## <Description>
## Computes the categorial product of the varieties <A>vari1</A> and <A>vari2</A>.
## </Description>
## </ManSection>
## <#/GAPDoc>
##
DeclareOperation( "\*",
[ IsToricVariety, IsToricVariety ] );
## <#GAPDoc Label="CharacterToRationalFunction">
## <ManSection>
## <Oper Arg="elem,vari" Name="CharacterToRationalFunction"/>
## <Returns>a homalg element</Returns>
## <Description>
## Computes the rational function corresponding to the character grid element <A>elem</A> or to the list of integers <A>elem</A>.
## To compute rational functions you first need to compute to coordinate ring of the torus of the variety <A>vari</A>.
## </Description>
## </ManSection>
## <#/GAPDoc>
##
DeclareOperation( "CharacterToRationalFunction",
[ IsHomalgElement, IsToricVariety ] );
DeclareOperation( "CharacterToRationalFunction",
[ IsList, IsToricVariety ] );
## <#GAPDoc Label="CoxRing2">
## <ManSection>
## <Oper Arg="vari,vars" Name="CoxRing" Label="for a variety and a string of variables"/>
## <Returns>a ring</Returns>
## <Description>
## Computes the Cox ring of the variety <A>vari</A>. <A>vars</A> needs to be a string containing one variable,
## which will be numbered by the method.
## </Description>
## </ManSection>
## <#/GAPDoc>
##
DeclareOperation( "CoxRing",
[ IsToricVariety, IsString ] );
## <#GAPDoc Label="WeilDivisorsOfVariety">
## <ManSection>
## <Oper Arg="vari" Name="WeilDivisorsOfVariety"/>
## <Returns>a list</Returns>
## <Description>
## Returns a list of the currently defined Divisors of the toric variety.
## </Description>
## </ManSection>
## <#/GAPDoc>
##
DeclareOperation( "WeilDivisorsOfVariety",
[ IsToricVariety ] );
## <#GAPDoc Label="FanMethod">
## <ManSection>
## <Oper Arg="vari" Name="Fan"/>
## <Returns>a fan</Returns>
## <Description>
## Returns the fan of the variety <A>vari</A>. This is a rename for FanOfVariety.
## </Description>
## </ManSection>
## <#/GAPDoc>
##
DeclareOperation( "Fan",
[ IsToricVariety ] );
DeclareOperation( "Factors",
[ IsToricVariety ] );
DeclareOperation( "BlowUpOnIthMinimalTorusOrbit",
[ IsToricVariety, IsInt ] );
DeclareGlobalFunction( "ZariskiCotangentSheafViaEulerSequence" );
DeclareGlobalFunction( "ZariskiCotangentSheafViaPoincareResidueMap" );
#################################
##
## Constructors
##
#################################
DeclareOperation( "ToricVariety",
[ IsToricVariety ] );
## <#GAPDoc Label="ToricVarietyConst">
## <ManSection>
## <Oper Arg="conv" Name="ToricVariety"/>
## <Returns>a ring</Returns>
## <Description>
## Creates a toric variety out of the convex object <A>conv</A>.
## </Description>
## </ManSection>
## <#/GAPDoc>
##
DeclareOperation( "ToricVariety",
[ IsConvexObject ] );