# Morphisms of projective schemes

Let $Q = B[y_0, \dots, y_n]/J$ and $P = A[x_0,\dots,x_m]/I$ be graded affine algebras over base_rings A and B, respectively. A morphism $\varphi : \mathrm{Proj}(Q) \to \mathrm{Proj}(P)$ is modeled via a morphism of graded algebras $\varphi^* : P \to Q$. In the case of A != B, this involves a non-trivial morphism of rings $A \to B$.

## Abstract types and basic interface

At the moment we have no abstract type for such morphisms and no interface spelled out.

## Types

ProjectiveSchemeMorType
ProjectiveSchemeMor

A morphism of projective schemes

     ℙˢ(B)     ℙʳ(A)
∪         ∪
P    →    Q
↓         ↓
Spec(B) → Spec(A)

given by means of a commutative diagram of homomorphisms of graded rings

    A[v₀,…,vᵣ] → B[u₀,…,uₛ]
↑            ↑
A      →     B

If no morphism A → B of the base rings is specified, then both $P$ and $Q$ are assumed to be defined in relative projective space over the same ring with the identity on the base.

source

## Constructors

morphismMethod
morphism(P::AbsProjectiveScheme, Q::AbsProjectiveScheme, f::Map; check::Bool=true )

Given a morphism $f : T → S$ of the homogeneous_coordinate_rings of Q and P, respectively, construct the associated morphism of projective schemes.

source
morphismMethod
morphism(P::AbsProjectiveScheme, Q::AbsProjectiveScheme, f::Map, h::SchemeMor; check::Bool=true )

Suppose $P ⊂ ℙʳ_A$ and $Q ⊂ ℙˢ_B$ are projective schemes, $h : Spec(A) → Spec(B)$ is a morphism of their base_schemes, and $f : T → S$ a morphism of the homogeneous_coordinate_rings of Q and P over $h^* : B → A$. This constructs the associated morphism of projective schemes.

source
morphismMethod
morphism(X::AbsProjectiveScheme, Y::AbsProjectiveScheme, a::Vector{<:RingElem})

Suppose $X ⊂ ℙʳ$ and $Y ⊂ ℙˢ$ are projective schemes over the same base_scheme. Construct the morphism of projective schemes associated to the morphism of graded rings which takes the generators of the homogeneous_coordinate_ring of $Y$ to the elements in a of the homogeneous_coordinate_ring of $X$.

source

## Attributes

As every instance of Map, a morphism of projective schemes can be asked for its (co-)domain:

domain(phi::ProjectiveSchemeMor)
codomain(phi::ProjectiveSchemeMor)

Moreover, we provide getters for the associated morphisms of rings:

pullbackMethod
pullback(phi::ProjectiveSchemeMor)

For a morphism phi of projective schemes, this returns the associated morphism of graded affine algebras.

source
base_ring_morphismMethod
base_ring_morphism(phi::ProjectiveSchemeMor)

For a morphism phi : P → Q of relative projective spaces over psi : Spec(A) → Spec(B) this returns the associated map B → A.

source
base_mapMethod
base_map(phi::ProjectiveSchemeMor)

For a morphism phi : P → Q of relative projective spaces over psi : Spec(A) → Spec(B) this returns psi.

source
map_on_affine_conesMethod
map_on_affine_cones(phi::ProjectiveSchemeMor)

For a morphism phi : X → Y this returns the associated morphism of the affine_cones $C(X) → C(Y)$.

source

## Methods

covered_scheme_morphismMethod
covered_scheme_morphism(f::AbsProjectiveSchemeMorphism)

Given a morphism of ProjectiveSchemes $f : X → Y$, construct and return the same morphism as a CoveredSchemeMorphism of the covered_schemes of $X$ and $Y$, respectively.

Examples

julia> P, (x, y, z) = graded_polynomial_ring(QQ, [:x, :y, :z]);

julia> I = ideal([x^3-y^2*z]);

julia> Y = proj(P, I);

julia> f = identity_map(Y)
Projective scheme morphism
from projective scheme in IP^2 over QQ
to projective scheme in IP^2 over QQ

julia> fcov = covered_scheme_morphism(f);

julia> codomain(fcov)
Scheme
over rational field
with default covering
described by patches
1: scheme(-(y//x)^2*(z//x) + 1)
2: scheme((x//y)^3 - (z//y))
3: scheme((x//z)^3 - (y//z)^2)
in the coordinate(s)
1: [(y//x), (z//x)]
2: [(x//y), (z//y)]
3: [(x//z), (y//z)]
source