#The functions tritangents(d) computes the number of tritangents in a pencil of degree d plane curves, using the SAGE package: # # Chow by Lehn Sorger, https://www.math.sciences.univ-nantes.fr/~sorger/chow/html/en/reference/chow/sage/schemes/chow/readme.html # # #The answer is given by the polynomial (d^2+3d-2)(d-3)(d-4)(d-5) # # #sage: for d in range(6,16): #....: d, tritangents(d) #....: #(6, 312) #(7, 1632) #(8, 5160) #(9, 12720) #(10, 26880) #(11, 51072) #(12, 89712) #(13, 148320) #(14, 233640) #(15, 353760) # from chow.all import * G=Grass(2,3, chern_class='z', name='G') z=G.gen() U=G.sheaves["universal_sub"] E=ProjBundle( U.symm(3) , 't', name='E') t=E.gen() PP=Proj(1, "y") y=PP.gen() Y = E*PP UY=Bundle(Y, 2, U.chern_classes()) X=ProjBundle( UY.dual(), 'h', name='X') #family of lines over Y h=X.gen() OZ=Bundle(X, 1, [1,2*t + 6*h]) O=Bundle(X,1, [1,0]) Z=Bundle(X,1, [1,0]) - OZ**(-1) f=X.base_morphism() @cached_function def tritangents(d): L=Bundle(X, 1, [1,d*h + y]) LL=f.lowerstar( L*Z ) print LL return LL.chern_classes()[6].integral() #Result x=var('x') P=(x**2 + 3*x - 2)*(x - 3)*(x - 4)*(x - 5)