## 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

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

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

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 [ ]: