The blowup of a ChowScheme Y along a ChowScheme X

Suppose given two projective non singular varieties \(X\) and \(Y\) and a morphism of ChowSchemes \(f:X\rightarrow Y\). Then the Blowup computes the Blowup of \(Y\) along \(X\).

EXAMPLE (the Veronese embedding):

sage: P2.<h> = Proj(2, 'h')
sage: P5.<k> = Proj(5, 'k')
sage: f = P2.hom([2*h], P5)
sage: g = Blowup(f)

Note that Blowup returns a morphism as follows:

\[\begin{split} \begin{array}{ccc} \widetilde{X}&\xrightarrow{g}&\widetilde{Y}\\ \downarrow&&\downarrow\scriptstyle{\sigma}{}\\ X & \xrightarrow{f} & Y \end{array}\end{split}\]

Hence in order to get \(B = \widetilde{Y}\) and to check for example for generators, relations, tangent bundle or betti numbers of the Blowup use the codomain of \(g\):

sage: B = Blowup(f).codomain()

In this particular example we expect an additional divisor e:

sage: B.chowring().gens()
(e, k)
sage: B.chowring().rels()
[k^6, e*k^3, e^3 - 9/2*e^2*k + 15/2*e*k^2 - 4*k^3]

The tangent bundle on \(B\) is equally computed:

sage: TB = B.tangent_bundle()
sage: TB.chern_classes()
[1, -2*e + 6*k, -15/2*e*k + 15*k^2, 9/2*e^2*k - 93/4*e*k^2 + 28*k^3, 27/4*e^2*k^2 + 27*k^4, 12*k^5]

as well as the usual topological invariants:

sage: B.betti_numbers()
[1, 2, 3, 3, 2, 1]
sage: B.euler_number()
12
sage: B.euler_number() == TB.chern_classes()[5].integral()
True

Finally one can answer the classical problem of finding the smooth plane conics tangent to five given general conics. As each tangency is a degree 6 condition on the \(\mathbb{P}^5\) of all (not necessarily smooth) conics, containing the double lines, one may compute as follows:

sage: (e, k) = B.chowring().gens()
sage: ((6*k - 2*e)^5).integral()
3264

There is no restriction on the number of generators of the Chow ring of the exceptional divisor:

sage: P2xP2 = Proj(2, 'h') * Proj(2, 'k')
sage: P8 = Proj(8, 'l')
sage: f = P2xP2.hom(['h+k'], P8)  # Segre map P2xP2 -> P8
sage: g = Blowup(f)
sage: B = g.codomain()
sage: B.gens()
(e1, e2, e3, l)
sage: B.betti_numbers()
[1, 2, 4, 7, 8, 7, 4, 2, 1]

AUTHORS:

  • Manfred Lehn (2013)
  • Christoph Sorger (2013)
class sage.schemes.chow.blowup.Blowup(f, var_name='e', proj_var_name='z', verbose=False, domain_name=None, codomain_name=None, latex_domain_name=None, latex_codomain_name=None)

Bases: sage.schemes.chow.morphism.ChowSchemeMorphism

Construct the blowup of a ChowSchemeMorphism representing an embedding of smooth projective varieties:

EXAMPLE:

sage: X.<w> = Proj(1, 'w', name='X')
sage: Y.<h> = Proj(3, 'h', name='Y')
sage: i = X.hom([3*w], Y)
sage: g = Blowup(i)
sage: XX, YY = g.domain(), g.codomain()
sage: XX.chowring().gens()  # XX is a ProjBundle hence the generator z
(z, w)
sage: YY.chowring().gens()  # YY is the Blowup hence the class e
(e, h)
sage: YY.chowring().basis()
[h^3, h^2, e*h, h, e, 1]
sage: YY.chowring().intersection_matrix()
[ 0  0  0  0  0  1]
[ 0  0  0  1  0  0]
[ 0  0  0  0 -3  0]
[ 0  1  0  0  0  0]
[ 0  0 -3  0  0  0]
[ 1  0  0  0  0  0]