Sheaves on covered schemes

Oscar supports modeling sheaves by means of a covering by affine charts.

Presheaves

AbsPreSheafType
AbsPreSheaf{SpaceType, OpenType, OutputType, RestrictionType}

Abstract type for a sheaf ℱ on a space X.

  • SpaceType is a parameter for the type of the space $X$ on which $ℱ$ is defined.

  • OpenType is a type (most probably abstract!) for the open sets $U ⊂ X$ which are admissible as input for $ℱ(U)$.

  • OutputType is a type (most probably abstract!) for the values that $ℱ$ takes on admissible open sets $U$.

  • RestrictionType is a parameter for the type of the restriction maps $ℱ(V) → ℱ(U)$ for $U ⊂ V ⊂ X$ open.

For any instance F of AbsPreSheaf on a topological space X the following methods are implemented:

  • F(U) for admissible open subsets $U ⊂ X$: This returns the value $ℱ(U)$ of the sheaf F on U. Note that due to technical limitations, not every type of open subset might be admissible.

  • restriction_map(F, U, V) for admissible open subsets $V ⊂ U ⊂ X$: This returns the restriction map $ρ : ℱ(U) → ℱ(V)$.

source
PreSheafOnSchemeType
PreSheafOnScheme

A basic minimal implementation of the interface for AbsPreSheaf; to be used internally.

source

Structure sheaves

StructureSheafOfRingsType
StructureSheafOfRings <: AbsPreSheaf

On an AbsCoveredScheme $X$ this returns the sheaf $𝒪$ of rings of regular functions on $X$.

Note that due to technical reasons, the admissible open subsets are restricted to the following:

  • U::AbsAffineScheme among the basic_patches of the default_covering of X;
  • U::PrincipalOpenSubset with ambient_scheme(U) in the basic_patches of the default_covering of X;
  • W::AffineSchemeOpenSubscheme with ambient_scheme(W) in the basic_patches of the default_covering of X.

One can call the restriction maps of $𝒪$ across charts, implicitly using the identifications given by the gluings in the default_covering.

source

Ideal sheaves

AbsIdealSheafType
AbsIdealSheaf <: AbsPreSheaf

A sheaf of ideals $I$ on an AbsCoveredScheme $X$.

For an affine open subset $U ⊂ X$ call $I(U)$ to obtain an ideal in OO(U) representing I.

source
IdealSheafType
IdealSheaf <: AbsIdealSheaf

A sheaf of ideals $ℐ$ on an AbsCoveredScheme $X$ which is specified by a collection of concrete ideals on some open covering of $X$.

source
PrimeIdealSheafFromChartType

raw PrimeIdealSheafFromChart

Type for sheaves of prime ideals $P$ on a covered scheme $X$ constructed from a prime ideal of the coordinate ring of a chart. Essentially this is a scheme theoretic point.

For $U$ an affine chart of $X$, the ideal $P(U)$ is computed using the gluings. The implementation is lazy.

source

Coherent sheaves of modules

SheafOfModulesType
SheafOfModules <: AbsPreSheaf

A sheaf of modules $ℳ$ on an AbsCoveredScheme $X$.

Note that due to technical reasons, the admissible open subsets are restricted to the following:

  • U::AbsAffineScheme among the basic_patches of the default_covering of X;
  • U::PrincipalOpenSubset with ambient_scheme(U) in the basic_patches of the default_covering of X.

One can call the restriction maps of $ℳ$ across charts implicitly using the identifications given by the gluings in the default_covering.

source
twisting_sheafMethod
twisting_sheaf(IP::AbsProjectiveScheme{<:Field}, d::Int)

For a ProjectiveScheme $ℙ$ return the $d$-th twisting sheaf $𝒪(d)$ as a CoherentSheaf on $ℙ$.

Examples

julia> P = projective_space(QQ,3)
Projective space of dimension 3
  over rational field
with homogeneous coordinates [s0, s1, s2, s3]

julia> twisting_sheaf(P, 4)
Coherent sheaf of modules
  on scheme over QQ covered with 4 patches
    1: [(s1//s0), (s2//s0), (s3//s0)]   affine 3-space
    2: [(s0//s1), (s2//s1), (s3//s1)]   affine 3-space
    3: [(s0//s2), (s1//s2), (s3//s2)]   affine 3-space
    4: [(s0//s3), (s1//s3), (s2//s3)]   affine 3-space
with restrictions
  1: free module of rank 1 over Multivariate polynomial ring in 3 variables over QQ
  2: free module of rank 1 over Multivariate polynomial ring in 3 variables over QQ
  3: free module of rank 1 over Multivariate polynomial ring in 3 variables over QQ
  4: free module of rank 1 over Multivariate polynomial ring in 3 variables over QQ
source
tautological_bundleMethod
tautological_bundle(IP::AbsProjectiveScheme{<:Field})

For a ProjectiveScheme $ℙ$ return the sheaf $𝒪(-1)$ as a CoherentSheaf on $ℙ$.

Examples

julia> P = projective_space(QQ,3)
Projective space of dimension 3
  over rational field
with homogeneous coordinates [s0, s1, s2, s3]

julia> tautological_bundle(P)
Coherent sheaf of modules
  on scheme over QQ covered with 4 patches
    1: [(s1//s0), (s2//s0), (s3//s0)]   affine 3-space
    2: [(s0//s1), (s2//s1), (s3//s1)]   affine 3-space
    3: [(s0//s2), (s1//s2), (s3//s2)]   affine 3-space
    4: [(s0//s3), (s1//s3), (s2//s3)]   affine 3-space
with restrictions
  1: free module of rank 1 over Multivariate polynomial ring in 3 variables over QQ
  2: free module of rank 1 over Multivariate polynomial ring in 3 variables over QQ
  3: free module of rank 1 over Multivariate polynomial ring in 3 variables over QQ
  4: free module of rank 1 over Multivariate polynomial ring in 3 variables over QQ
source
cotangent_sheafMethod
cotangent_sheaf(X::AbsCoveredScheme)

For an AbsCoveredScheme $X$, return the sheaf $Ω¹(X)$ of Kaehler-differentials on $X$ as a CoherentSheaf.

source
free_moduleMethod
free_module(R::StructureSheafOfRings, n::Int)

Return the sheaf of free $𝒪$-modules $𝒪ⁿ$ for a structure sheaf of rings $𝒪 = R$.

source
projectivizationMethod
projectivization(E::AbsCoherentSheaf;
    var_names::Vector{String}=Vector{String}(),
    check::Bool=true
  )

For a locally free sheaf $E$ on an AbsCoveredScheme $X$ this produces the associated projectivization $ℙ (E) → X$ as a CoveredProjectiveScheme.

A list of names for the variables of the relative homogeneous coordinate rings can be provided with var_names.

!!! note: The sheaf $E$ needs to be locally free so that a trivializing_covering can be computed. The check for this can be turned off by setting check=false.

source