{ "cells": [ { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## The abelian category of coherent sheaves on $\\mathbb{P}^1$." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CapAndHomalg v\u001b[32m1.4.15\u001b[39m\n", "Imported OSCAR's components GAP and Singular_jll\n", "Type: ?CapAndHomalg for more information\n" ] } ], "source": [ "using CapAndHomalg" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "LoadPackage( \"GradedModulePresentationsForCAP\" )" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "data": { "text/plain": [ "GAP: Q" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ℚ = HomalgFieldOfRationalsInSingular()" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "GAP: Q[x,y]\n", "(weights: yet unset)" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "S = GradedRing( ℚ[\"x,y\"] )" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### The category $S$-grmod of finitely presented graded modules over $S=\\mathbb{Q}[x,y]$:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "text/plain": [ "GAP: The category of graded left f.p. modules over Q[x,y] (with weights [ 1, 1 ])" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Sgrmod = GradedLeftPresentations( S )" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "40 primitive operations were used to derive 327 operations for this category which algorithmically\n", "* IsMonoidalCategory\n", "* IsAbelianCategoryWithEnoughProjectives\n", "and furthermore mathematically\n", "* IsSymmetricClosedMonoidalCategory (but not yet algorithmically)\n" ] } ], "source": [ "InfoOfInstalledOperationsOfCategory( Sgrmod )" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [], "source": [ "#ListPrimitivelyInstalledOperationsOfCategory( Sgrmod )" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Create two objects:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "GAP: " ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M = GradedFreeLeftPresentation( 2, S, @gap([ 1, 1 ]) )" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "GAP: " ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "N = GradedFreeLeftPresentation( 1, S, @gap([ 0 ]) )" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Create a morphism:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "GAP: " ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mat = HomalgMatrix( \"[x,y]\", 2, 1, S )" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "x,\n", "y \n", "(over a graded ring)\n" ] } ], "source": [ "Display( mat )" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "GAP: " ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ϕ = GradedPresentationMorphism( M, mat, N )" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "data": { "text/plain": [ "true" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "IsWellDefined( ϕ )" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "false" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "IsMonomorphism( ϕ )" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "false" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "IsEpimorphism( ϕ )" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "GAP: " ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ι = ImageEmbedding( ϕ )" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "true" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "IsMonomorphism( ι )" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "false" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "IsIsomorphism( ι )" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "data": { "text/plain": [ "GAP: " ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "coker_mod = CokernelObject( ϕ )" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "x,\n", "y \n", "(over a graded ring)\n", "\n", "An object in The category of graded left f.p. modules over Q[x,y] (with weights [ 1, 1 ])\n", "\n", "(graded, degree of generator:[ 0 ])\n" ] } ], "source": [ "Display( coker_mod )" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "false" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "IsZero( coker_mod )" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### The Serre subcategory of modules supported on the irrelevant locus, i.e., the finite length modules:" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "is_artinian = GapObj( M -> AffineDimension( M ) <= 0 );" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [], "source": [ "SetNameFunction( is_artinian, g\"is_artinian\" )" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "text/plain": [ "GAP: " ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "C = FullSubcategoryByMembershipFunction( Sgrmod, is_artinian )" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### The Serre quotient of a constructive abelian category modulo a Serre category with decidable membership is again constructive abelian [[BLH14](https://arxiv.org/abs/1409.2028),[Gut17](http://dokumentix.ub.uni-siegen.de/opus/volltexte/2017/1241/)]" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "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" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "CohP1 = Sgrmod / C" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "21 primitive operations were used to derive 280 operations for this category which algorithmically\n", "* IsAbelianCategory\n" ] } ], "source": [ "InfoOfInstalledOperationsOfCategory( CohP1 )" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### The sheafification functor:" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "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" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Sh = CanonicalProjection( CohP1 )" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [], "source": [ "InstallFunctor( Sh, g\"Sheafification\" )" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Interpret $\\phi$ as a morphism $\\psi$ of sheaves:" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "GAP: " ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ψ = ApplyFunctor( Sh, ϕ )" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "false" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "IsMonomorphism( ψ )" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "true" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "IsEpimorphism( ψ )" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "data": { "text/plain": [ "GAP: " ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "coker_shv = CokernelObject( ψ )" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "true" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "IsZero( coker_shv )" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "GAP: " ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ϵ = ApplyFunctor( Sh, ι )" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "true" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "IsIsomorphism( ϵ )" ] } ], "metadata": { "@webio": { "lastCommId": null, "lastKernelId": null }, "celltoolbar": "Slideshow", "kernelspec": { "display_name": "Julia 1.8.5", "language": "julia", "name": "julia-1.8" }, "language_info": { "file_extension": ".jl", "mimetype": "application/julia", "name": "julia", "version": "1.8.5" } }, "nbformat": 4, "nbformat_minor": 2 }