The abelian category of coherent sheaves on $\mathbb{P}^1$.

In [1]:
using CapAndHomalg
CapAndHomalg v1.0.0
Imported OSCAR's components GAP and Singular_jll
Type: ?CapAndHomalg for more information
In [2]:
LoadPackage( "GradedModulePresentationsForCAP" )
In [3]:
 = HomalgFieldOfRationalsInSingular()
Out[3]:
GAP: Q
In [4]:
S = GradedRing( ["x,y"] )
Out[4]:
GAP: Q[x,y]
(weights: yet unset)

The category $S$-grmod of finitely presented graded modules over $S=\mathbb{Q}[x,y]$:

In [5]:
Sgrmod = GradedLeftPresentations( S )
Out[5]:
GAP: The category of graded left f.p. modules over Q[x,y] (with weights [ 1, 1 ])
In [6]:
InfoOfInstalledOperationsOfCategory( Sgrmod )
40 primitive operations were used to derive 179 operations for this category which
* IsAbCategory
* IsMonoidalCategory
* IsAbelianCategoryWithEnoughProjectives
In [7]:
#ListPrimitivelyInstalledOperationsOfCategory( Sgrmod )

Create two objects:

In [8]:
M = GradedFreeLeftPresentation( 2, S, @gap([ 1, 1 ]) )
Out[8]:
GAP: <An object in The category of graded left f.p. modules over Q[x,y] (with weights [ 1, 1 ])>
In [9]:
N = GradedFreeLeftPresentation( 1, S, @gap([ 0 ]) )
Out[9]:
GAP: <An object in The category of graded left f.p. modules over Q[x,y] (with weights [ 1, 1 ])>

Create a morphism:

In [10]:
mat = HomalgMatrix( "[x,y]", 2, 1, S )
Out[10]:
GAP: <A 2 x 1 matrix over a graded ring>
In [11]:
Display( mat )
x,
y 
(over a graded ring)
In [12]:
ϕ = GradedPresentationMorphism( M, mat, N )
Out[12]:
GAP: <A morphism in The category of graded left f.p. modules over Q[x,y] (with weights [ 1, 1 ])>
In [13]:
IsWellDefined( ϕ )
Out[13]:
true
In [14]:
IsMonomorphism( ϕ )
Out[14]:
false
In [15]:
IsEpimorphism( ϕ )
Out[15]:
false
In [16]:
ι = ImageEmbedding( ϕ )
Out[16]:
GAP: <A monomorphism in The category of graded left f.p. modules over Q[x,y] (with weights [ 1, 1 ])>
In [17]:
IsMonomorphism( ι )
Out[17]:
true
In [18]:
IsIsomorphism( ι )
Out[18]:
false
In [19]:
coker_mod = CokernelObject( ϕ )
Out[19]:
GAP: <An object in The category of graded left f.p. modules over Q[x,y] (with weights [ 1, 1 ])>
In [20]:
Display( coker_mod )
x,
y 
(over a graded ring)

An object in The category of graded left f.p. modules over Q[x,y] (with weights [ 1, 1 ])

(graded, degree of generator:[ 0 ])
In [21]:
IsZero( coker_mod )
Out[21]:
false

The Serre subcategory of modules supported on the irrelevant locus, i.e., the finite length modules:

In [22]:
is_artinian = julia_to_gap( M -> AffineDimension( M ) <= 0 );
In [23]:
SetNameFunction( is_artinian, g"is_artinian" )
In [24]:
C = FullSubcategoryByMembershipFunction( Sgrmod, is_artinian )
Out[24]:
GAP: <Subcategory of The category of graded left f.p. modules over Q[x,y] (with weights [ 1, 1 ]) by is_artinian>

The Serre quotient of a constructive abelian category modulo a Serre category with decidable membership is again constructive abelian [BLH14,Gut17]

In [25]:
CohP1 = Sgrmod / C
Out[25]:
GAP: The Serre quotient category of The category of graded left f.p. modules over Q[x,y] (with weights [ 1, 1 ]) by test function with name: is_artinian
In [26]:
InfoOfInstalledOperationsOfCategory( CohP1 )
21 primitive operations were used to derive 144 operations for this category which
* IsAbCategory
* IsAbelianCategory

The sheafification functor:

In [27]:
Sh = CanonicalProjection( CohP1 )
Out[27]:
GAP: Localization functor of The Serre quotient category of The category of graded left f.p. modules over Q[x,y] (with weights [ 1, 1 ]) by test function with name: is_artinian
In [28]:
InstallFunctor( Sh, g"Sheafification" )

Interpret $\phi$ as a morphism $\psi$ of sheaves:

In [29]:
ψ = ApplyFunctor( Sh, ϕ )
Out[29]:
GAP: <A morphism in The Serre quotient category of The category of graded left f.p. modules over Q[x,y] (with weights [ 1, 1 ]) by test function with name: is_artinian>
In [30]:
IsMonomorphism( ψ )
Out[30]:
false
In [31]:
IsEpimorphism( ψ )
Out[31]:
true
In [32]:
coker_shv = CokernelObject( ψ )
Out[32]:
GAP: <A zero object in The Serre quotient category of The category of graded left f.p. modules over Q[x,y] (with weights [ 1, 1 ]) by test function with name: is_artinian>
In [33]:
IsZero( coker_shv )
Out[33]:
true
In [34]:
ϵ = ApplyFunctor( Sh, ι )
Out[34]:
GAP: <A morphism in The Serre quotient category of The category of graded left f.p. modules over Q[x,y] (with weights [ 1, 1 ]) by test function with name: is_artinian>
In [35]:
IsIsomorphism( ϵ )
Out[35]:
true
In [ ]: