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